perfcounters: use hw_event.disable flag
authorIngo Molnar <mingo@elte.hu>
Tue, 16 Dec 2008 23:43:10 +0000 (00:43 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 17 Dec 2008 00:02:21 +0000 (01:02 +0100)
Impact: implement default-off counters

Make sure that counters that are created with counter.hw_event.disabled=1,
get created in disabled state.

They can be enabled via:

        prctl(PR_TASK_PERF_COUNTERS_ENABLE);

Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/perf_counter.c

index 16396e9..5431e79 100644 (file)
@@ -1093,6 +1093,9 @@ perf_counter_alloc(struct perf_counter_hw_event *hw_event,
        counter->group_leader           = group_leader;
        counter->hw_ops                 = NULL;
 
+       if (hw_event->disabled)
+               counter->state = PERF_COUNTER_STATE_OFF;
+
        hw_ops = NULL;
        if (!hw_event->raw && hw_event->type < 0)
                hw_ops = sw_perf_counter_init(counter);