perf: Fix exit() vs PERF_FORMAT_GROUP
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Thu, 6 May 2010 15:31:38 +0000 (17:31 +0200)
committerIngo Molnar <mingo@elte.hu>
Fri, 7 May 2010 09:30:17 +0000 (11:30 +0200)
commit4fd38e4595e2f6c9d27732c042a0e16b2753049c
treebb18024a183691b81062f97fbc3de4938a1d6086
parent722154e4cacf015161efe60009ae9be23d492296
perf: Fix exit() vs PERF_FORMAT_GROUP

Both Stephane and Corey reported that PERF_FORMAT_GROUP didn't work
as expected if the task the counters were attached to quit before
the read() call.

The cause is that we unconditionally destroy the grouping when we
remove counters from their context. Fix this by only doing this when
we free the counter itself.

Reported-by: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Reported-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1273160566.5605.404.camel@twins>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
include/linux/perf_event.h
kernel/perf_event.c