lkml.org 
[lkml]   [2018]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.18 41/76] tools/kvm_stat: fix updates for dead guests
    Date
    From: Stefan Raspl <stefan.raspl@de.ibm.com>

    [ Upstream commit 710ab11ad9329d2d4b044405e328c994b19a2aa9 ]

    With pid filtering active, when a guest is removed e.g. via virsh shutdown,
    successive updates produce garbage.
    Therefore, we add code to detect this case and prevent further body updates.
    Note that when displaying the help dialog via 'h' in this case, once we exit
    we're stuck with the 'Collecting data...' message till we remove the filter.

    Signed-off-by: Stefan Raspl <raspl@linux.ibm.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    tools/kvm/kvm_stat/kvm_stat | 11 ++++++++++-
    1 file changed, 10 insertions(+), 1 deletion(-)

    diff --git a/tools/kvm/kvm_stat/kvm_stat b/tools/kvm/kvm_stat/kvm_stat
    index b9e8d0def1ab..7c92545931e3 100755
    --- a/tools/kvm/kvm_stat/kvm_stat
    +++ b/tools/kvm/kvm_stat/kvm_stat
    @@ -1170,6 +1170,9 @@ class Tui(object):

    return sorted_items

    + if not self._is_running_guest(self.stats.pid_filter):
    + # leave final data on screen
    + return
    row = 3
    self.screen.move(row, 0)
    self.screen.clrtobot()
    @@ -1327,6 +1330,12 @@ class Tui(object):
    msg = '"' + str(val) + '": Invalid value'
    self._refresh_header()

    + def _is_running_guest(self, pid):
    + """Check if pid is still a running process."""
    + if not pid:
    + return True
    + return os.path.isdir(os.path.join('/proc/', str(pid)))
    +
    def _show_vm_selection_by_guest(self):
    """Draws guest selection mask.

    @@ -1354,7 +1363,7 @@ class Tui(object):
    if not guest or guest == '0':
    break
    if guest.isdigit():
    - if not os.path.isdir(os.path.join('/proc/', guest)):
    + if not self._is_running_guest(guest):
    msg = '"' + guest + '": Not a running process'
    continue
    pid = int(guest)
    --
    2.17.1
    \
     
     \ /
      Last update: 2018-09-24 17:08    [W:3.401 / U:0.340 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site