Skip to content

Commit

Permalink
tools/kvm_stat: fix handling of invalid paths in debugfs provider
Browse files Browse the repository at this point in the history
[ Upstream commit 617c66b ]

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 <[email protected]>
Signed-off-by: Radim Krčmář <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
Stefan-Raspl authored and gregkh committed Oct 10, 2018
1 parent 52614f7 commit 3b83a52
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tools/kvm/kvm_stat/kvm_stat
Original file line number Diff line number Diff line change
Expand Up @@ -731,6 +731,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'.
Expand All @@ -745,6 +752,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:
Expand Down

0 comments on commit 3b83a52

Please sign in to comment.