1
0
Fork 0
alistair23-linux/kernel/events
Peter Zijlstra 9886167d20 perf: Fix perf_pmu_migrate_context
While auditing the list_entry usage due to a trinity bug I found that
perf_pmu_migrate_context violates the rules for
perf_event::event_entry.

The problem is that perf_event::event_entry is a RCU list element, and
hence we must wait for a full RCU grace period before re-using the
element after deletion.

Therefore the usage in perf_pmu_migrate_context() which re-uses the
entry immediately is broken. For now introduce another list_head into
perf_event for this specific usage.

This doesn't actually fix the trinity report because that never goes
through this code.

Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/n/tip-mkj72lxagw1z8fvjm648iznw@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2013-10-04 09:58:53 +02:00
..
Makefile uprobes: Move to kernel/events/ 2012-02-22 11:08:00 +01:00
callchain.c perf: Roll back callchain buffer refcount under the callchain mutex 2013-08-16 17:55:50 +02:00
core.c perf: Fix perf_pmu_migrate_context 2013-10-04 09:58:53 +02:00
hw_breakpoint.c hw_breakpoint: Introduce "struct bp_cpuinfo" 2013-06-20 17:58:57 +02:00
internal.h perf: Fix mmap() accounting hole 2013-06-19 12:44:13 +02:00
ring_buffer.c perf: Fix vmalloc ring buffer pages handling 2013-05-01 12:34:46 +02:00
uprobes.c uprobes: Fix utask->depth accounting in handle_trampoline() 2013-09-12 08:00:55 +02:00