Re: [Autotest] [PATCH] Update sar command and handle OSError error.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, Lucas

Thanks very much!


----- "Lucas Meneghel Rodrigues" <lmr@xxxxxxxxxx> wrote:

> From: "Lucas Meneghel Rodrigues" <lmr@xxxxxxxxxx>
> To: "Feng Yang" <fyang@xxxxxxxxxx>
> Cc: autotest@xxxxxxxxxxxxxxx, kvm@xxxxxxxxxxxxxxx
> Sent: Thursday, April 1, 2010 9:27:44 AM GMT +08:00 Beijing / Chongqing / Hong Kong / Urumqi
> Subject: Re: [Autotest] [PATCH] Update sar command and handle OSError error.
>
> On Tue, Mar 30, 2010 at 2:24 AM, Feng Yang <fyang@xxxxxxxxxx> wrote:
> > This patch do following things:
> > 1. Update sar command in start function in /profilers/sar/sar.py,
> > because when i manual run '/usr/bin/sar -o %s %d 0' command, help
> > message is show up. Sames count number could not be 0, so use
> default
> > count.
> 
> The problem here is that the sar command changed its behavior: if you
> check man pages for older versions of sar (see
> http://linux.die.net/man/1/sar), you'll see:
> 
> "The default value for the count parameter is 1. If its value is set
> to zero, then reports are generated continuously."
> 
> For newer versions of sar like the ones shipped in recent Fedoras,
> the
> behavior is conflicting. From the man page:
> 
> "If the interval parameter is specified without the count parameter,
> then reports are generated continuously."
> 
> So, it's clear here that we have to handle the differences, otherwise
> the profiler won't work on older systems.
> 
> > 2. Put os.kill in sar.py into try block to avoid traceback.
> > Sometimes it tried to kill an already terminated process which can
> > cause a traceback.
> 
> It just occurred to me that since we're using subprocess, we can use
> the terminate() method of the subprocess object, that doesn't raise
> exceptions when the process already returned, instead of just picking
> the PID and sending a sigterm on that PID. I just sent a version of
> this patch that does things the way I explained, and plan on change
> the subprocess part for the kvm_stat test profiler as well.
> 
> > Signed-off-by: Feng Yang <fyang@xxxxxxxxxx>
> > ---
> >  client/profilers/sar/sar.py |    7 +++++--
> >  1 files changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/client/profilers/sar/sar.py
> b/client/profilers/sar/sar.py
> > index fbe0639..e10156f 100644
> > --- a/client/profilers/sar/sar.py
> > +++ b/client/profilers/sar/sar.py
> > @@ -21,14 +21,17 @@ class sar(profiler.profiler):
> >         logfile = open(os.path.join(test.profdir, "sar"), 'w')
> >         # Save the sar data as binary, convert to text after the
> test.
> >         raw = os.path.join(test.profdir, "sar.raw")
> > -        cmd = "/usr/bin/sar -o %s %d 0" % (raw, self.interval)
> > +        cmd = "/usr/bin/sar -o %s %d " % (raw, self.interval)
> >         p = subprocess.Popen(cmd, shell=True, stdout=logfile, \
> >                              stderr=subprocess.STDOUT)
> >         self.pid = p.pid
> >
> >
> >     def stop(self, test):
> > -        os.kill(self.pid, 15)
> > +        try:
> > +            os.kill(self.pid, 15)
> > +        except OSError:
> > +            pass
> >
> >
> >     def report(self, test):
> > --
> > 1.5.5.6
> >
> > _______________________________________________
> > Autotest mailing list
> > Autotest@xxxxxxxxxxxxxxx
> > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
> >
> 
> 
> 
> -- 
> Lucas
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux