IBM has requested that we package the kvm_stat tool from the
kernel source tree. This is a python script and thus is not
kernel-version specific. Because of this, and in order to avoid
adding a python dependency, this tool is not added to any
existing tools package.
Instead, create a new linux-tools-host package to contain tools
useful on VM hosts which will currently only contain kvm_stat.
Don't build this package unless specified in the architecture
rules file; it should only be built in the master kernel and in
a single architecture for any given series.
$ python3 tools/kvm/kvm_stat/kvm_stat
Traceback (most recent call last):
File "tools/kvm/kvm_stat/kvm_stat", line 1668, in <module>
main()
File "tools/kvm/kvm_stat/kvm_stat", line 1639, in main
assign_globals()
File "tools/kvm/kvm_stat/kvm_stat", line 1618, in assign_globals
for line in file('/proc/mounts'):
NameError: name 'file' is not defined
open() is the python3 way, and works on python2.6+
The 'Total' line looks a bit weird when we have a single event only. This
can happen e.g. due to filters. Therefore suppress when there's only a
single event in the output.
Signed-off-by: Stefan Raspl <email address hidden>
Signed-off-by: Paolo Bonzini <email address hidden>
(cherry picked from commit 6789af030a462708f937137e05eb12ea009fb348)
Signed-off-by: Seth Forshee <email address hidden>
We keep the current logic that sorts all events (parent and child), but
re-shuffle the events afterwards, grouping the children after the
respective parent. Note that the percentage column for child events
gives the percentage of the parent's total.
Since we rework the logic anyway, we modify the total average
calculation to use the raw numbers instead of the (rounded) averages.
Note that this can result in differing numbers (between total average
and the sum of the individual averages) due to rounding errors.
Signed-off-by: Stefan Raspl <email address hidden>
Signed-off-by: Paolo Bonzini <email address hidden>
(cherry picked from commit df72ecfc790fa01de1c41f836ff51d12f9c40318)
Signed-off-by: Seth Forshee <email address hidden>
Drilldown (i.e. toggle display of child trace events) was implemented by
overriding the fields filter. This resulted in inconsistencies: E.g. when
drilldown was not active, adding a filter that also matches child trace
events would not only filter fields according to the filter, but also add
in the child trace events matching the filter. E.g. on x86, setting
'kvm_userspace_exit' as the fields filter after startup would result in
display of kvm_userspace_exit(DCR), although that wasn't previously
present - not exactly what one would expect from a filter.
This patch addresses the issue by keeping drilldown and fields filter
separate. While at it, we also fix a PEP8 issue by adding a blank line
at one place (since we're in the area...).
We implement this by adding a framework that also allows to define a
taxonomy among the debugfs events to identify child trace events. I.e.
drilldown using 'x' can now also work with debugfs. A respective parent-
child relationship is only known for S390 at the moment, but could be
added adjusting other platforms' ARCH.dbg_is_child() methods
accordingly.
Signed-off-by: Stefan Raspl <email address hidden>
Signed-off-by: Paolo Bonzini <email address hidden>
(cherry picked from commit 18e8f4100ef14f924514fbd91eb67bd5fa5396b7)
Signed-off-by: Seth Forshee <email address hidden>
We can do with a single dialog that takes both, pids and guest names.
Note that we keep both interactive commands, 'p' and 'g' for now, to
avoid confusion among users used to a specific key.
While at it, we improve on some minor glitches regarding curses usage,
e.g. cursor still visible when not supposed to be.
Signed-off-by: Stefan Raspl <email address hidden>
Signed-off-by: Paolo Bonzini <email address hidden>
(cherry picked from commit 516f1190a1e0cce12128a6446e6438745c8de62a)
Signed-off-by: Seth Forshee <email address hidden>