diff options
Diffstat (limited to 'tools/perf')
| -rw-r--r-- | tools/perf/builtin-report.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index daee082ab42..00b358ff135 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c | |||
| @@ -269,6 +269,13 @@ static struct perf_event_ops event_ops = { | |||
| 269 | .read = process_read_event, | 269 | .read = process_read_event, |
| 270 | }; | 270 | }; |
| 271 | 271 | ||
| 272 | extern volatile int session_done; | ||
| 273 | |||
| 274 | static void sig_handler(int sig __attribute__((__unused__))) | ||
| 275 | { | ||
| 276 | session_done = 1; | ||
| 277 | } | ||
| 278 | |||
| 272 | static int __cmd_report(void) | 279 | static int __cmd_report(void) |
| 273 | { | 280 | { |
| 274 | int ret = -EINVAL; | 281 | int ret = -EINVAL; |
| @@ -276,6 +283,8 @@ static int __cmd_report(void) | |||
| 276 | struct rb_node *next; | 283 | struct rb_node *next; |
| 277 | const char *help = "For a higher level overview, try: perf report --sort comm,dso"; | 284 | const char *help = "For a higher level overview, try: perf report --sort comm,dso"; |
| 278 | 285 | ||
| 286 | signal(SIGINT, sig_handler); | ||
| 287 | |||
| 279 | session = perf_session__new(input_name, O_RDONLY, force); | 288 | session = perf_session__new(input_name, O_RDONLY, force); |
| 280 | if (session == NULL) | 289 | if (session == NULL) |
| 281 | return -ENOMEM; | 290 | return -ENOMEM; |
| @@ -465,7 +474,8 @@ int cmd_report(int argc, const char **argv, const char *prefix __used) | |||
| 465 | { | 474 | { |
| 466 | argc = parse_options(argc, argv, options, report_usage, 0); | 475 | argc = parse_options(argc, argv, options, report_usage, 0); |
| 467 | 476 | ||
| 468 | setup_browser(); | 477 | if (strcmp(input_name, "-") != 0) |
| 478 | setup_browser(); | ||
| 469 | 479 | ||
| 470 | if (symbol__init() < 0) | 480 | if (symbol__init() < 0) |
| 471 | return -1; | 481 | return -1; |
