On Mon, 2011-04-25 at 13:28 -0700, Scott James Remnant wrote: > perf was being executed via a shell, this means that the pid in > self._process.pid will be the pid of the shell and the actual pid > of perf will be a child of that process. > > This would be fine in practice except that the signal being used > to stop perf is SIGINT, and this is being sent to the shell. The > shell won't necessarily deliver this to its child process (no > controlling tty) so what happens is that the shell ignores the > signal and we get stuck in self._process.wait() > > There's no reason to keep the intermediate shell around, so prefix > the command with "exec" so that the shell replaces itself with perf > and the pid we know is perf, and SIGINT is sent to perf.
Ok, LGTM, applied: http://autotest.kernel.org/changeset/5325 Thanks! > Change-Id: I37ca0ac22a2bb64897ddda88592c08dbff85a02e > Signed-off-by: Scott James Remnant <[email protected]> > --- > client/profilers/perf/perf.py | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/client/profilers/perf/perf.py b/client/profilers/perf/perf.py > index e6f9bb7..663fe0a 100644 > --- a/client/profilers/perf/perf.py > +++ b/client/profilers/perf/perf.py > @@ -34,7 +34,7 @@ class perf(profiler.profiler): > > def start(self, test): > self.logfile = os.path.join(test.profdir, "perf") > - cmd = ("%s record -a -o %s" % > + cmd = ("exec %s record -a -o %s" % > (self.perf_bin, self.logfile)) > for event in self.events: > cmd += " -e %s" % event _______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
