summaryrefslogtreecommitdiffstats
path: root/tools/kvm/kvm_stat
diff options
context:
space:
mode:
authorStefan Raspl <stefan.raspl@de.ibm.com>2017-12-11 12:25:23 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2017-12-14 09:25:44 +0100
commitfff8c9eb48aa58259071b5df0e6d4c1c0bc1ba51 (patch)
tree019cb2507b30b417d9b50dfa3a21aa0547cee834 /tools/kvm/kvm_stat
parentb74faa930deb2e37ed5caa0abfc687c8c532e946 (diff)
downloadlinux-stable-fff8c9eb48aa58259071b5df0e6d4c1c0bc1ba51.tar.gz
linux-stable-fff8c9eb48aa58259071b5df0e6d4c1c0bc1ba51.tar.bz2
linux-stable-fff8c9eb48aa58259071b5df0e6d4c1c0bc1ba51.zip
tools/kvm_stat: fix child trace events accounting
Child trace events were included in calculation of the overall total, which is used for calculation of the percentages of the '%Total' column. However, the parent trace envents' stats summarize the child trace events, hence we'd incorrectly account for them twice, leading to slightly wrong stats. With this fix, we use the correct total. Consequently, the sum of the child trace events' '%Total' column values is identical to the respective value of the respective parent event. However, this also means that the sum of the '%Total' column values will aggregate to more than 100 percent. Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'tools/kvm/kvm_stat')
-rwxr-xr-xtools/kvm/kvm_stat/kvm_stat6
-rw-r--r--tools/kvm/kvm_stat/kvm_stat.txt2
2 files changed, 5 insertions, 3 deletions
diff --git a/tools/kvm/kvm_stat/kvm_stat b/tools/kvm/kvm_stat/kvm_stat
index 4faf9f85a00e..90f0445d7808 100755
--- a/tools/kvm/kvm_stat/kvm_stat
+++ b/tools/kvm/kvm_stat/kvm_stat
@@ -1092,14 +1092,14 @@ class Tui(object):
# sort by totals
return (0, -stats[x][0])
total = 0.
- for val in stats.values():
- total += val[0]
+ for key in stats.keys():
+ if key.find('(') is -1:
+ total += stats[key][0]
if self._sorting == SORT_DEFAULT:
sortkey = sortCurAvg
else:
sortkey = sortTotal
for key in sorted(stats.keys(), key=sortkey):
-
if row >= self.screen.getmaxyx()[0]:
break
values = stats[key]
diff --git a/tools/kvm/kvm_stat/kvm_stat.txt b/tools/kvm/kvm_stat/kvm_stat.txt
index e5cf836be8a1..75368a3c285f 100644
--- a/tools/kvm/kvm_stat/kvm_stat.txt
+++ b/tools/kvm/kvm_stat/kvm_stat.txt
@@ -50,6 +50,8 @@ INTERACTIVE COMMANDS
*s*:: set update interval
*x*:: toggle reporting of stats for child trace events
+ :: *Note*: The stats for the parents summarize the respective child trace
+ events
Press any other key to refresh statistics immediately.