Re: [PATCH -tip] perf, x86: fix unknown NMIs on a Pentium4 box

From: Cyrill Gorcunov
Date: Thu Apr 14 2011 - 16:05:18 EST


On 04/14/2011 11:57 PM, Don Zickus wrote:
> On Thu, Apr 14, 2011 at 11:43:25PM +0400, Cyrill Gorcunov wrote:
>> On 04/14/2011 10:46 PM, Ingo Molnar wrote:
>>>
>>> btw., the bug went away once i removed your patch so it's 100% sure caused by
>>> this change.
>>>
>>> Thanks,
>>>
>>> Ingo
>>
>> Ingo if you have a chance mind to give this patch a shot please? Seems we might miss unmasking
>> for inflight nmis.
>
> I don't think this patch will work. It would make sense if the unmasking
> happened _after_ the "if (!handled)" path, but that is not the path Ingo
> wanted for v1.

This thing happened if inflight nmi reaches the system and note that inflight
NMI comes from perf and masks lvt entry, it has nothing to do with "handled" but
rather the _fact_ that NMI reached apic via LVTPC and as result -- masked it.
Don, I might be missin something, brain is slowly going to sleep :)

>
> Cheers,
> Don
>
>> - apic_write(APIC_LVTPC, APIC_DM_NMI);
>>
>> handled = x86_pmu.handle_irq(args->regs);
>> + apic_write(APIC_LVTPC, APIC_DM_NMI);
>
> ^^^^ all handled/unhandled NMIs hit that apic_write
>> if (!handled)
>> return NOTIFY_DONE;
>>

yeah, Ingo asked to make it this way -- ie like in your former
patch, the conditional unmasking is left to be tested in further
kernel series.

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