Re: [PATCH] oprofile add Pentium Mobile support

From: Mikael Pettersson
Date: Mon Feb 16 2004 - 09:21:48 EST


Will Cohen writes:
> Mikael Pettersson wrote:
> > Philippe Elie writes:
> > > From: Will Cohen <wcohen@xxxxxxxxxx>
> > >
> > > Add oprofile support for Pentium Mobile (P6 core). Pentium Mobile needs
> > > to unmask LVPTC vector, since it doesn't hurt other P6 core based cpus
> > > we do it unconditionally for all these.
> >
> > [Patch talking about the Pentium-M.]
> >
> > I can find no support in Intel's documentation (IA32 Volume 3,
> > 25366813.pdf) that Pentium-M:s need to unmask LVTPC.
> >
> > How certain are you of this? Is this an undocumented hardware
> > quirk? If it is documented, please indicate where.
>
> I have tested it on a Pentium M machine. Without the unmask LVTPC the
> nmi handler collected precisely one interrupt. With the LVTPC unmask the
> OProfile data collection worked normally.
>
> > It's my theory that P4 added the auto-masking to help PEBS
> > buffer overflow situations, but since P-M doesn't have PEBS,
> > they shouldn't have had to change this on P-M as well.
> > OTOH, it's certainly possible they changed it by accident.
>
> My theory is that the Pentium M uses same bus interface and local apic
> as the Pentium M. Thus, the Pentium M shares the Pentium 4 need to
> unmask LVTPC.

Sounds reasonable and is consistent with other P-M vs P6 changes.

> > One way of testing this would be to run a P-M with
> > nmi_watchdog=2. If the NMI counter keeps ticking, then
> > LVTPC does not need unmasking.
>
> Yes, I tested the nmi watchdog and it currently does not work on the
> Pentium M. It doesn't get the later interrupts and states it is stuck.

That confirms the "undocumented HW quirk" theory. Thanks. I'll fix
the (in-kernel) NMI watchdog and (out-of-kernel) perfctr drivers.

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