Blame SOURCES/kvm-tools-kvm_stat-add-new-interactive-command-h.patch

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