perf_counter: Put whole group on when enabling group leader
authorPaul Mackerras <paulus@samba.org>
Mon, 11 May 2009 02:08:02 +0000 (12:08 +1000)
committerIngo Molnar <mingo@elte.hu>
Mon, 11 May 2009 10:10:53 +0000 (12:10 +0200)
commit6751b71ea2c7ab8c0d65f01973a3fc8ea16992f4
treed4342bd89a10391caf648828ddea7550de6fc82d
parent8823392360dc4992f87bf4c623834d315f297493
perf_counter: Put whole group on when enabling group leader

Currently, if you have a group where the leader is disabled and there
are siblings that are enabled, and then you enable the leader, we only
put the leader on the PMU, and not its enabled siblings.  This is
incorrect, since the enabled group members should be all on or all off
at any given point.

This fixes it by adding a call to group_sched_in in
__perf_counter_enable in the case where we're enabling a group leader.

To avoid the need for a forward declaration this also moves
group_sched_in up before __perf_counter_enable.  The actual content of
group_sched_in is unchanged by this patch.

[ Impact: fix bug in counter enable code ]

Signed-off-by: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
LKML-Reference: <18951.34946.451546.691693@drongo.ozlabs.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/perf_counter.c