forked from Minki/linux
tools/kvm_stat: fix handling of invalid paths in debugfs provider
When filtering by guest, kvm_stat displays garbage when the guest is destroyed - see sample output below. We add code to remove the invalid paths from the providers, so at least no more garbage is displayed. Here's a sample output to illustrate: kvm statistics - pid 13986 (foo) Event Total %Total CurAvg/s diagnose_258 -2 0.0 0 deliver_program_interruption -3 0.0 0 diagnose_308 -4 0.0 0 halt_poll_invalid -91 0.0 -6 deliver_service_signal -244 0.0 -16 halt_successful_poll -250 0.1 -17 exit_pei -285 0.1 -19 exit_external_request -312 0.1 -21 diagnose_9c -328 0.1 -22 userspace_handled -713 0.1 -47 halt_attempted_poll -939 0.2 -62 deliver_emergency_signal -3126 0.6 -208 halt_wakeup -7199 1.5 -481 exit_wait_state -7379 1.5 -493 diagnose_500 -56499 11.5 -3757 exit_null -85491 17.4 -5685 diagnose_44 -133300 27.1 -8874 exit_instruction -195898 39.8 -13037 Total -492063 Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com> Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
This commit is contained in:
parent
58f33cfe73
commit
617c66b9f2
@ -766,6 +766,13 @@ class DebugfsProvider(Provider):
|
||||
self.do_read = True
|
||||
self.reset()
|
||||
|
||||
def _verify_paths(self):
|
||||
"""Remove invalid paths"""
|
||||
for path in self.paths:
|
||||
if not os.path.exists(os.path.join(PATH_DEBUGFS_KVM, path)):
|
||||
self.paths.remove(path)
|
||||
continue
|
||||
|
||||
def read(self, reset=0, by_guest=0):
|
||||
"""Returns a dict with format:'file name / field -> current value'.
|
||||
|
||||
@ -780,6 +787,7 @@ class DebugfsProvider(Provider):
|
||||
# If no debugfs filtering support is available, then don't read.
|
||||
if not self.do_read:
|
||||
return results
|
||||
self._verify_paths()
|
||||
|
||||
paths = self.paths
|
||||
if self._pid == 0:
|
||||
|
Loading…
Reference in New Issue
Block a user