Re: [patch 05/24] perfmon: X86 generic code (x86)

From: Thomas Gleixner
Date: Wed Nov 26 2008 - 17:55:24 EST


On Wed, 26 Nov 2008, Andi Kleen wrote:
> On Wed, Nov 26, 2008 at 02:35:18PM +0100, Thomas Gleixner wrote:
> > > + */
> > > + pfm_arch_resend_irq(ctx);
> >
> > Do we really need this whole NMI business ?
>
> Without it you cannot profile interrupts off regions well.

Fair enough, but I doubt that this is a real solution.

There is not even an attempt to avoid the obvious wrmrsl races, while
there are several comments which explain how expensive wrmrsl is. In
the NMI handler we enable the NMI right away. This might cause
multiple NMIs for nothing when the NMIs hit between the manipulations
of the counters. Not likely but can happen depending on the counter
settings.

Sending an self-IPI from NMI simply sucks: For every NMI we get an
extra local interrupt and we have an extra of 2 * NR_ACTIVE_COUNTERS
accesses to MSRs.

Designing that code to use lockless buffers instead is not really
rocket science.

This code sucks performance wise in all aspects I have looked at so
far.

Thanks,

tglx
--
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/