diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2014-01-03 14:56:49 -0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2014-01-13 10:06:21 -0300 |
commit | 735f7e0bbebe755d707182188c4a5e88c581fc1c (patch) | |
tree | f77574a5093cc1966004dd6ec81d9606d67631f2 /tools/perf/builtin-stat.c | |
parent | f33cbe72e6166b97d6fa2400cb00a885b47999d7 (diff) | |
download | lwn-735f7e0bbebe755d707182188c4a5e88c581fc1c.tar.gz lwn-735f7e0bbebe755d707182188c4a5e88c581fc1c.zip |
perf evlist: Move the SIGUSR1 error reporting logic to prepare_workload
So that we have the boilerplate in the preparation method, instead of
open coded in tools wanting the reporting when the exec fails.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-purbdzcphdveskh7wwmnm4t7@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-stat.c')
-rw-r--r-- | tools/perf/builtin-stat.c | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 9d0d52d55ee6..f8456cad656d 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -58,7 +58,6 @@ #include "util/thread.h" #include "util/thread_map.h" -#include <signal.h> #include <stdlib.h> #include <sys/prctl.h> #include <locale.h> @@ -542,8 +541,8 @@ static int __run_perf_stat(int argc, const char **argv) } if (forks) { - if (perf_evlist__prepare_workload(evsel_list, &target, argv, - false, true) < 0) { + if (perf_evlist__prepare_workload(evsel_list, &target, argv, false, + workload_exec_failed_signal) < 0) { perror("failed to prepare workload"); return -1; } @@ -598,18 +597,6 @@ static int __run_perf_stat(int argc, const char **argv) clock_gettime(CLOCK_MONOTONIC, &ref_time); if (forks) { - struct sigaction act = { - .sa_flags = SA_SIGINFO, - .sa_sigaction = workload_exec_failed_signal, - }; - /* - * perf_evlist__prepare_workload will, after we call - * perf_evlist__start_Workload, send a SIGUSR1 if the exec call - * fails, that we will catch in workload_signal to flip - * workload_exec_errno. - */ - sigaction(SIGUSR1, &act, NULL); - perf_evlist__start_workload(evsel_list); handle_initial_delay(); |