diff options
author | Paul Mackerras <paulus@samba.org> | 2009-06-30 02:07:19 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-06-30 06:00:16 -0400 |
commit | 57e7986ed142417498155ebcd5eaf617ac37136d (patch) | |
tree | 81ce9acd79ee7e6383dfd5cdadc4e016a012990e /tools/perf | |
parent | 051ae7f7344f453616b6b10332d4d8e1d40ed823 (diff) |
perf_counter: Provide a way to enable counters on exec
This provides a way to mark a counter to be enabled on the next
exec. This is useful for measuring the total activity of a
program without including overhead from the process that
launches it.
This also changes the perf stat command to use this new
facility.
Signed-off-by: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <19017.43927.838745.689203@cargo.ozlabs.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/builtin-stat.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index 201ef2367dcb..2e03524a1de0 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c | |||
@@ -116,8 +116,9 @@ static void create_perf_stat_counter(int counter, int pid) | |||
116 | fd[cpu][counter], strerror(errno)); | 116 | fd[cpu][counter], strerror(errno)); |
117 | } | 117 | } |
118 | } else { | 118 | } else { |
119 | attr->inherit = inherit; | 119 | attr->inherit = inherit; |
120 | attr->disabled = 1; | 120 | attr->disabled = 1; |
121 | attr->enable_on_exec = 1; | ||
121 | 122 | ||
122 | fd[0][counter] = sys_perf_counter_open(attr, pid, -1, -1, 0); | 123 | fd[0][counter] = sys_perf_counter_open(attr, pid, -1, -1, 0); |
123 | if (fd[0][counter] < 0 && verbose) | 124 | if (fd[0][counter] < 0 && verbose) |
@@ -262,7 +263,6 @@ static int run_perf_stat(int argc, const char **argv) | |||
262 | * Enable counters and exec the command: | 263 | * Enable counters and exec the command: |
263 | */ | 264 | */ |
264 | t0 = rdclock(); | 265 | t0 = rdclock(); |
265 | prctl(PR_TASK_PERF_COUNTERS_ENABLE); | ||
266 | 266 | ||
267 | close(go_pipe[1]); | 267 | close(go_pipe[1]); |
268 | wait(&status); | 268 | wait(&status); |