[PATCHv2 1/2] ARM: perf_event: allow platform-specific interrupt handler

Will Deacon will.deacon at arm.com
Fri Feb 18 06:34:18 EST 2011


> On Thu, Feb 17, 2011 at 22:03, Will Deacon <will.deacon at arm.com> wrote:
> >> I gave this a try, along with the modifications to enable IRQ_PER_CPU
> >> and have the pmu code use the appropriate flags and set the affinity.
> >> Didn't work though; it always ends up triggering the spurious IRQ check.
> >
> > Hmm, that doesn't sound right. Did you have any synchronisation to ensure
> > that the CPU without the overflow didn't return IRQ_NONE until the handling
> > CPU had returned IRQ_HANDLED?
> 
> No.  What kind of synchronization do you mean?

Well my guess is that the CPU returning IRQ_NONE is perpetually taking the
same interrupt until the other CPU has poked the PMU to stop it asserting
the line (otherwise I can't see how the spurious check would trip). You could
have a lock in the driver to synchronise between the two CPUs so that if you
don't have an overflow, you wait for the other CPU to clear the interrupt before
returning.

This has quickly started to become horrible but I was just curious as to whether
it provides better results than the affinity-setting approach (which is certainly
less invasive).

Cheers,

Will







More information about the linux-arm-kernel mailing list