summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Raspl <raspl@linux.vnet.ibm.com>2017-06-07 15:08:26 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2017-06-08 12:13:23 -0400
commit124c2fc9fdf5fb1d9cea4707d7e5471e317ba3bf (patch)
treee2551445b4cd606a2446835a0d37300eec96f212
parent773bffeeb2f1fca7739516d0a5a814dd14a5cc83 (diff)
tools/kvm_stat: fix event counts display for interrupted intervals
When an update interval is interrupted via key press (e.g. space), the 'Current' column value is calculated using the full interval length instead of the elapsed time, which leads to lower than actual numbers. Furthermore, the value should be rounded, not truncated. This is fixed by using the actual elapsed time for the calculation. Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rwxr-xr-xtools/kvm/kvm_stat/kvm_stat7
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/kvm/kvm_stat/kvm_stat b/tools/kvm/kvm_stat/kvm_stat
index 904eb6214602..b571584419ae 100755
--- a/tools/kvm/kvm_stat/kvm_stat
+++ b/tools/kvm/kvm_stat/kvm_stat
@@ -1009,7 +1009,8 @@ class Tui(object):
1009 self.screen.addstr(row, col, '%7.1f' % (values[0] * 100 / total,)) 1009 self.screen.addstr(row, col, '%7.1f' % (values[0] * 100 / total,))
1010 col += 7 1010 col += 7
1011 if values[1] is not None: 1011 if values[1] is not None:
1012 self.screen.addstr(row, col, '%8d' % (values[1] / sleeptime,)) 1012 self.screen.addstr(row, col, '%8d' %
1013 round(values[1] / sleeptime))
1013 row += 1 1014 row += 1
1014 self.screen.refresh() 1015 self.screen.refresh()
1015 1016
@@ -1130,9 +1131,11 @@ class Tui(object):
1130 """Refreshes the screen and processes user input.""" 1131 """Refreshes the screen and processes user input."""
1131 sleeptime = DELAY_INITIAL 1132 sleeptime = DELAY_INITIAL
1132 self.refresh_header() 1133 self.refresh_header()
1134 start = 0.0 # result based on init value never appears on screen
1133 while True: 1135 while True:
1134 self.refresh_body(sleeptime) 1136 self.refresh_body(time.time() - start)
1135 curses.halfdelay(int(sleeptime * 10)) 1137 curses.halfdelay(int(sleeptime * 10))
1138 start = time.time()
1136 sleeptime = DELAY_REGULAR 1139 sleeptime = DELAY_REGULAR
1137 try: 1140 try:
1138 char = self.screen.getkey() 1141 char = self.screen.getkey()