|
@@ -69,7 +69,8 @@ static int run_idx = 0;
|
|
|
static int run_count = 1;
|
|
|
static int inherit = 1;
|
|
|
static int scale = 1;
|
|
|
-static int target_pid = -1;
|
|
|
+static pid_t target_pid = -1;
|
|
|
+static pid_t child_pid = -1;
|
|
|
static int null_run = 0;
|
|
|
|
|
|
static int fd[MAX_NR_CPUS][MAX_COUNTERS];
|
|
@@ -285,6 +286,8 @@ static int run_perf_stat(int argc __used, const char **argv)
|
|
|
exit(-1);
|
|
|
}
|
|
|
|
|
|
+ child_pid = pid;
|
|
|
+
|
|
|
/*
|
|
|
* Wait for the child to be ready to exec.
|
|
|
*/
|
|
@@ -433,6 +436,9 @@ static void skip_signal(int signo)
|
|
|
|
|
|
static void sig_atexit(void)
|
|
|
{
|
|
|
+ if (child_pid != -1)
|
|
|
+ kill(child_pid, SIGTERM);
|
|
|
+
|
|
|
if (signr == -1)
|
|
|
return;
|
|
|
|