]> git.baikalelectronics.ru Git - kernel.git/commit
perf evlist: Enhance perf_evlist__start_workload()
authorNamhyung Kim <namhyung.kim@lge.com>
Wed, 26 Jun 2013 07:14:15 +0000 (16:14 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 8 Jul 2013 20:38:30 +0000 (17:38 -0300)
commit378fd185a33234ad9f891180d646538cc1c4cdd9
treeda2034b1ccc9f8fce8e830085bc35a1d9655cccb
parent653c972e13e717acee6817a1ea5d9d24c9dbd3d5
perf evlist: Enhance perf_evlist__start_workload()

When perf tries to start a workload, it relies on a pipe which the
workload was blocked for reading.  After closing the pipe on the parent,
the workload (child) can start the actual work via exec().

However, if another process was forked after creating a workload, this
mechanism cannot work since the other process (child) also inherits the
pipe, so that closing the pipe in parent cannot unblock the workload.
Fix it by using explicit write call can then closing it.

For similar reason, the pipe fd on parent should be marked as CLOEXEC so
that it can be closed after another child exec'ed.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1372230862-15861-13-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/evlist.c