Skip to content

Commit

Permalink
tools/kvm_stat: fix event counts display for interrupted intervals
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
  • Loading branch information
Stefan Raspl authored and bonzini committed Jun 8, 2017
1 parent 773bffe commit 124c2fc
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions tools/kvm/kvm_stat/kvm_stat
Original file line number Diff line number Diff line change
Expand Up @@ -1009,7 +1009,8 @@ class Tui(object):
self.screen.addstr(row, col, '%7.1f' % (values[0] * 100 / total,))
col += 7
if values[1] is not None:
self.screen.addstr(row, col, '%8d' % (values[1] / sleeptime,))
self.screen.addstr(row, col, '%8d' %
round(values[1] / sleeptime))
row += 1
self.screen.refresh()

Expand Down Expand Up @@ -1130,9 +1131,11 @@ class Tui(object):
"""Refreshes the screen and processes user input."""
sleeptime = DELAY_INITIAL
self.refresh_header()
start = 0.0 # result based on init value never appears on screen
while True:
self.refresh_body(sleeptime)
self.refresh_body(time.time() - start)
curses.halfdelay(int(sleeptime * 10))
start = time.time()
sleeptime = DELAY_REGULAR
try:
char = self.screen.getkey()
Expand Down

0 comments on commit 124c2fc

Please sign in to comment.