|
|
4a2fec |
From 95b5c46145b2ac79dd4b0f5621baec07e488ff3e Mon Sep 17 00:00:00 2001
|
|
|
4a2fec |
From: David Hildenbrand <david@redhat.com>
|
|
|
4a2fec |
Date: Tue, 17 Oct 2017 19:15:57 +0200
|
|
|
4a2fec |
Subject: [PATCH 52/69] tools/kvm_stat: add new interactive command 'h'
|
|
|
4a2fec |
|
|
|
4a2fec |
RH-Author: David Hildenbrand <david@redhat.com>
|
|
|
4a2fec |
Message-id: <20171017191605.2378-32-david@redhat.com>
|
|
|
4a2fec |
Patchwork-id: 77339
|
|
|
4a2fec |
O-Subject: [RHEL-7.5 qemu-kvm-rhev PATCH 31/39] tools/kvm_stat: add new interactive command 'h'
|
|
|
4a2fec |
Bugzilla: 1497137
|
|
|
4a2fec |
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
4a2fec |
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
|
|
4a2fec |
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
4a2fec |
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
|
|
4a2fec |
|
|
|
4a2fec |
Upstream-status: linux.git 1fdea7b2893045e5258a13937c3d78c425fd7aa0
|
|
|
4a2fec |
|
|
|
4a2fec |
Convertion of documentation (for man page generation) to texi.
|
|
|
4a2fec |
|
|
|
4a2fec |
commit 1fdea7b2893045e5258a13937c3d78c425fd7aa0
|
|
|
4a2fec |
Author: Stefan Raspl <raspl@linux.vnet.ibm.com>
|
|
|
4a2fec |
Date: Wed Jun 7 21:08:38 2017 +0200
|
|
|
4a2fec |
|
|
|
4a2fec |
tools/kvm_stat: add new interactive command 'h'
|
|
|
4a2fec |
|
|
|
4a2fec |
Display interactive commands reference on 'h'.
|
|
|
4a2fec |
While at it, sort interactive commands alphabetically in various places.
|
|
|
4a2fec |
|
|
|
4a2fec |
Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com>
|
|
|
4a2fec |
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
4a2fec |
|
|
|
4a2fec |
Signed-off-by: David Hildenbrand <david@redhat.com>
|
|
|
4a2fec |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
4a2fec |
---
|
|
|
4a2fec |
scripts/kvm/kvm_stat | 37 ++++++++++++++++++++++++++++++++-----
|
|
|
4a2fec |
scripts/kvm/kvm_stat.texi | 3 +++
|
|
|
4a2fec |
2 files changed, 35 insertions(+), 5 deletions(-)
|
|
|
4a2fec |
|
|
|
4a2fec |
diff --git a/scripts/kvm/kvm_stat b/scripts/kvm/kvm_stat
|
|
|
4a2fec |
index a9e7ea6..6838de3 100755
|
|
|
4a2fec |
--- a/scripts/kvm/kvm_stat
|
|
|
4a2fec |
+++ b/scripts/kvm/kvm_stat
|
|
|
4a2fec |
@@ -1018,6 +1018,30 @@ class Tui(object):
|
|
|
4a2fec |
self.screen.addstr(4, 1, 'No matching events reported yet')
|
|
|
4a2fec |
self.screen.refresh()
|
|
|
4a2fec |
|
|
|
4a2fec |
+ def show_help_interactive(self):
|
|
|
4a2fec |
+ """Display help with list of interactive commands"""
|
|
|
4a2fec |
+ msg = (' c clear filter',
|
|
|
4a2fec |
+ ' f filter by regular expression',
|
|
|
4a2fec |
+ ' g filter by guest name',
|
|
|
4a2fec |
+ ' h display interactive commands reference',
|
|
|
4a2fec |
+ ' p filter by PID',
|
|
|
4a2fec |
+ ' q quit',
|
|
|
4a2fec |
+ ' r reset stats',
|
|
|
4a2fec |
+ ' x toggle reporting of stats for individual child trace'
|
|
|
4a2fec |
+ ' events',
|
|
|
4a2fec |
+ 'Any other key refreshes statistics immediately')
|
|
|
4a2fec |
+ curses.cbreak()
|
|
|
4a2fec |
+ self.screen.erase()
|
|
|
4a2fec |
+ self.screen.addstr(0, 0, "Interactive commands reference",
|
|
|
4a2fec |
+ curses.A_BOLD)
|
|
|
4a2fec |
+ self.screen.addstr(2, 0, "Press any key to exit", curses.A_STANDOUT)
|
|
|
4a2fec |
+ row = 4
|
|
|
4a2fec |
+ for line in msg:
|
|
|
4a2fec |
+ self.screen.addstr(row, 0, line)
|
|
|
4a2fec |
+ row += 1
|
|
|
4a2fec |
+ self.screen.getkey()
|
|
|
4a2fec |
+ self.refresh_header()
|
|
|
4a2fec |
+
|
|
|
4a2fec |
def show_filter_selection(self):
|
|
|
4a2fec |
"""Draws filter selection mask.
|
|
|
4a2fec |
|
|
|
4a2fec |
@@ -1142,10 +1166,6 @@ class Tui(object):
|
|
|
4a2fec |
sleeptime = DELAY_REGULAR
|
|
|
4a2fec |
try:
|
|
|
4a2fec |
char = self.screen.getkey()
|
|
|
4a2fec |
- if char == 'x':
|
|
|
4a2fec |
- self.update_drilldown()
|
|
|
4a2fec |
- if char == 'q':
|
|
|
4a2fec |
- break
|
|
|
4a2fec |
if char == 'c':
|
|
|
4a2fec |
self.stats.fields_filter = DEFAULT_REGEX
|
|
|
4a2fec |
self.refresh_header(0)
|
|
|
4a2fec |
@@ -1160,13 +1180,19 @@ class Tui(object):
|
|
|
4a2fec |
self.show_vm_selection_by_guest_name()
|
|
|
4a2fec |
curses.curs_set(0)
|
|
|
4a2fec |
sleeptime = DELAY_INITIAL
|
|
|
4a2fec |
+ if char == 'h':
|
|
|
4a2fec |
+ self.show_help_interactive()
|
|
|
4a2fec |
if char == 'p':
|
|
|
4a2fec |
curses.curs_set(1)
|
|
|
4a2fec |
self.show_vm_selection_by_pid()
|
|
|
4a2fec |
curses.curs_set(0)
|
|
|
4a2fec |
sleeptime = DELAY_INITIAL
|
|
|
4a2fec |
+ if char == 'q':
|
|
|
4a2fec |
+ break
|
|
|
4a2fec |
if char == 'r':
|
|
|
4a2fec |
self.stats.reset()
|
|
|
4a2fec |
+ if char == 'x':
|
|
|
4a2fec |
+ self.update_drilldown()
|
|
|
4a2fec |
except KeyboardInterrupt:
|
|
|
4a2fec |
break
|
|
|
4a2fec |
except curses.error:
|
|
|
4a2fec |
@@ -1237,10 +1263,11 @@ Interactive Commands:
|
|
|
4a2fec |
c clear filter
|
|
|
4a2fec |
f filter by regular expression
|
|
|
4a2fec |
g filter by guest name
|
|
|
4a2fec |
+ h display interactive commands reference
|
|
|
4a2fec |
p filter by PID
|
|
|
4a2fec |
q quit
|
|
|
4a2fec |
- x toggle reporting of stats for individual child trace events
|
|
|
4a2fec |
r reset stats
|
|
|
4a2fec |
+ x toggle reporting of stats for individual child trace events
|
|
|
4a2fec |
Press any other key to refresh statistics immediately.
|
|
|
4a2fec |
"""
|
|
|
4a2fec |
|
|
|
4a2fec |
diff --git a/scripts/kvm/kvm_stat.texi b/scripts/kvm/kvm_stat.texi
|
|
|
4a2fec |
index c0cb7bc..4dfcd8f 100644
|
|
|
4a2fec |
--- a/scripts/kvm/kvm_stat.texi
|
|
|
4a2fec |
+++ b/scripts/kvm/kvm_stat.texi
|
|
|
4a2fec |
@@ -33,6 +33,9 @@ filter by regular expression
|
|
|
4a2fec |
@item g
|
|
|
4a2fec |
@kindex g
|
|
|
4a2fec |
filter by guest name
|
|
|
4a2fec |
+@item h
|
|
|
4a2fec |
+@kindex h
|
|
|
4a2fec |
+display interactive commands reference
|
|
|
4a2fec |
@item p
|
|
|
4a2fec |
@kindex p
|
|
|
4a2fec |
filter by PID
|
|
|
4a2fec |
--
|
|
|
4a2fec |
1.8.3.1
|
|
|
4a2fec |
|