perf tools: Use same signal handling strategy as 'record'
authorArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 11 Dec 2015 19:43:57 +0000 (16:43 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 14 Dec 2015 15:08:55 +0000 (12:08 -0300)
I.e. don't exit with the signal number, instead set the signal handler
to the default one and then raise it again.

Noticed while trying to dump the stack at segfaults in the 'perf test'
forked process used to run each test, that inspects signal info at
each test.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-5x5r176wnoqxi5p6id05wv9w@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/util.c

index 07da970a62a3c6371e998280ac7e33792fa6052f..aff0cfd836622a7f47240e4a36305e16ca2a1b48 100644 (file)
@@ -352,7 +352,8 @@ void sighandler_dump_stack(int sig)
 {
        psignal(sig, "perf");
        dump_stack();
-       exit(sig);
+       signal(sig, SIG_DFL);
+       raise(sig);
 }
 
 int parse_nsec_time(const char *str, u64 *ptime)