aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-top.c
diff options
context:
space:
mode:
authorMike Galbraith <efault@gmx.de>2009-07-21 04:30:36 -0400
committerPeter Zijlstra <a.p.zijlstra@chello.nl>2009-07-22 12:05:58 -0400
commit0fdc7e67dd312986e30b861adff48732bd33eb3f (patch)
tree5d5133f36e3f20d174f0754defca47d244224e7c /tools/perf/builtin-top.c
parentd20ff6bd6bba2e7e6681fa17565347b410c46ab3 (diff)
perf_counter tools: Give perf top inherit option
Currently, perf top -p only tracks the pid provided, which isn't very useful for watching forky loads, so give it an inherit option. Signed-off-by: Mike Galbraith <efault@gmx.de> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> LKML-Reference: <1248165036.9795.10.camel@marge.simson.net>
Diffstat (limited to 'tools/perf/builtin-top.c')
-rw-r--r--tools/perf/builtin-top.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 95d5c0ae375a..c0a423004e15 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -58,6 +58,7 @@ static u64 count_filter = 5;
58static int print_entries = 15; 58static int print_entries = 15;
59 59
60static int target_pid = -1; 60static int target_pid = -1;
61static int inherit = 0;
61static int profile_cpu = -1; 62static int profile_cpu = -1;
62static int nr_cpus = 0; 63static int nr_cpus = 0;
63static unsigned int realtime_prio = 0; 64static unsigned int realtime_prio = 0;
@@ -549,7 +550,7 @@ int group_fd;
549static void start_counter(int i, int counter) 550static void start_counter(int i, int counter)
550{ 551{
551 struct perf_counter_attr *attr; 552 struct perf_counter_attr *attr;
552 unsigned int cpu; 553 int cpu;
553 554
554 cpu = profile_cpu; 555 cpu = profile_cpu;
555 if (target_pid == -1 && profile_cpu == -1) 556 if (target_pid == -1 && profile_cpu == -1)
@@ -559,6 +560,7 @@ static void start_counter(int i, int counter)
559 560
560 attr->sample_type = PERF_SAMPLE_IP | PERF_SAMPLE_TID; 561 attr->sample_type = PERF_SAMPLE_IP | PERF_SAMPLE_TID;
561 attr->freq = freq; 562 attr->freq = freq;
563 attr->inherit = (cpu < 0) && inherit;
562 564
563try_again: 565try_again:
564 fd[i][counter] = sys_perf_counter_open(attr, target_pid, cpu, group_fd, 0); 566 fd[i][counter] = sys_perf_counter_open(attr, target_pid, cpu, group_fd, 0);
@@ -685,6 +687,8 @@ static const struct option options[] = {
685 "only display functions with more events than this"), 687 "only display functions with more events than this"),
686 OPT_BOOLEAN('g', "group", &group, 688 OPT_BOOLEAN('g', "group", &group,
687 "put the counters into a counter group"), 689 "put the counters into a counter group"),
690 OPT_BOOLEAN('i', "inherit", &inherit,
691 "child tasks inherit counters"),
688 OPT_STRING('s', "sym-filter", &sym_filter, "pattern", 692 OPT_STRING('s', "sym-filter", &sym_filter, "pattern",
689 "only display symbols matchig this pattern"), 693 "only display symbols matchig this pattern"),
690 OPT_BOOLEAN('z', "zero", &zero, 694 OPT_BOOLEAN('z', "zero", &zero,