Entry conditions for perf_event_do_pending?

From: Paul Mackerras
Date: Tue Jan 12 2010 - 23:19:24 EST

We're seeing some perf-related crashes on powerpc related to having
irqs in an inconsistent state (soft-enable vs. hard-enable
vs. trace-irqs state) when entering perf_event_do_pending().
We're fixing that, but along the way we have struck a question about
what conditions are required on entry to perf_event_do_pending.

Its use of __get_cpu_var implies that it at least needs to be called
with either interrupts or preemption disabled. Does it in fact need
to be called with irqs off? Do we need to call irq_enter()/irq_exit()
around it? Are there any other requirements that people can think of?

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/