diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/builtin-record.c | 3 | ||||
-rw-r--r-- | tools/perf/builtin-sched.c | 1 | ||||
-rw-r--r-- | tools/perf/util/event.c | 13 |
3 files changed, 6 insertions, 11 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 9bc89050e6f8..dc3435e18bde 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c | |||
@@ -503,7 +503,6 @@ static int __cmd_record(int argc, const char **argv) | |||
503 | { | 503 | { |
504 | int i, counter; | 504 | int i, counter; |
505 | struct stat st; | 505 | struct stat st; |
506 | pid_t pid = 0; | ||
507 | int flags; | 506 | int flags; |
508 | int err; | 507 | int err; |
509 | unsigned long waking = 0; | 508 | unsigned long waking = 0; |
@@ -572,7 +571,7 @@ static int __cmd_record(int argc, const char **argv) | |||
572 | 571 | ||
573 | if (forks) { | 572 | if (forks) { |
574 | child_pid = fork(); | 573 | child_pid = fork(); |
575 | if (pid < 0) { | 574 | if (child_pid < 0) { |
576 | perror("failed to fork"); | 575 | perror("failed to fork"); |
577 | exit(-1); | 576 | exit(-1); |
578 | } | 577 | } |
diff --git a/tools/perf/builtin-sched.c b/tools/perf/builtin-sched.c index f67bce2a83b4..55f3b5dcc731 100644 --- a/tools/perf/builtin-sched.c +++ b/tools/perf/builtin-sched.c | |||
@@ -1645,6 +1645,7 @@ static struct perf_event_ops event_ops = { | |||
1645 | .sample = process_sample_event, | 1645 | .sample = process_sample_event, |
1646 | .comm = event__process_comm, | 1646 | .comm = event__process_comm, |
1647 | .lost = event__process_lost, | 1647 | .lost = event__process_lost, |
1648 | .fork = event__process_task, | ||
1648 | .ordered_samples = true, | 1649 | .ordered_samples = true, |
1649 | }; | 1650 | }; |
1650 | 1651 | ||
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index 50771b5813ee..1f08f008d289 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c | |||
@@ -370,9 +370,9 @@ static int thread__set_comm_adjust(struct thread *self, const char *comm) | |||
370 | 370 | ||
371 | int event__process_comm(event_t *self, struct perf_session *session) | 371 | int event__process_comm(event_t *self, struct perf_session *session) |
372 | { | 372 | { |
373 | struct thread *thread = perf_session__findnew(session, self->comm.pid); | 373 | struct thread *thread = perf_session__findnew(session, self->comm.tid); |
374 | 374 | ||
375 | dump_printf(": %s:%d\n", self->comm.comm, self->comm.pid); | 375 | dump_printf(": %s:%d\n", self->comm.comm, self->comm.tid); |
376 | 376 | ||
377 | if (thread == NULL || thread__set_comm_adjust(thread, self->comm.comm)) { | 377 | if (thread == NULL || thread__set_comm_adjust(thread, self->comm.comm)) { |
378 | dump_printf("problem processing PERF_RECORD_COMM, skipping event.\n"); | 378 | dump_printf("problem processing PERF_RECORD_COMM, skipping event.\n"); |
@@ -532,16 +532,11 @@ out_problem: | |||
532 | 532 | ||
533 | int event__process_task(event_t *self, struct perf_session *session) | 533 | int event__process_task(event_t *self, struct perf_session *session) |
534 | { | 534 | { |
535 | struct thread *thread = perf_session__findnew(session, self->fork.pid); | 535 | struct thread *thread = perf_session__findnew(session, self->fork.tid); |
536 | struct thread *parent = perf_session__findnew(session, self->fork.ppid); | 536 | struct thread *parent = perf_session__findnew(session, self->fork.ptid); |
537 | 537 | ||
538 | dump_printf("(%d:%d):(%d:%d)\n", self->fork.pid, self->fork.tid, | 538 | dump_printf("(%d:%d):(%d:%d)\n", self->fork.pid, self->fork.tid, |
539 | self->fork.ppid, self->fork.ptid); | 539 | self->fork.ppid, self->fork.ptid); |
540 | /* | ||
541 | * A thread clone will have the same PID for both parent and child. | ||
542 | */ | ||
543 | if (thread == parent) | ||
544 | return 0; | ||
545 | 540 | ||
546 | if (self->header.type == PERF_RECORD_EXIT) | 541 | if (self->header.type == PERF_RECORD_EXIT) |
547 | return 0; | 542 | return 0; |