Commit 124c2fc9 authored by Stefan Raspl's avatar Stefan Raspl Committed by Paolo Bonzini
Browse files

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: default avatarStefan Raspl <raspl@linux.vnet.ibm.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 773bffee
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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()

@@ -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()