Re: [PATCH 0/2 x86] fix some page faults in nmi if kmemcheck isenabled

From: Peter Zijlstra
Date: Tue Feb 21 2012 - 05:17:39 EST


On Tue, 2012-02-21 at 09:42 +0800, Li Zhong wrote:

> > Hell no, these are some of the ugliest patches I've seen in a while. Not
> > to mention that their changelogs are utter crap since they don't even
> > explain why they're doing what they're doing.
> >
> Hi Peter,
>
> I agree that the fix is ugly. I'm willing to change if there are some
> better ways.

There are always better ways..

> The problem here is:
> 1. It seems x86 doesn't allow page faults in nmi, and there are checks
> in the code, like WARN_ON_ONCE(in_nmi()).

I bet that's not x86 only..

> 2. If CONFIG_KMEMCHECK is enabled, the pages allocated through slab will
> be marked as non-present, to capture uninitialized memory access. More
> information in Documentation/kmemcheck.txt .

So then kmemcheck is buggy, since the nmiaction structure is initialized
in register_nmi_handler(), so it should most definitely not be marked
non-present.

> 3. From the log, there are some memories accessed in nmi, which are in
> pages marked as non-present by kmemcheck, as they are allocated by
> something like kmalloc().

So figure out why and fix that instead of writing ugly ass patches that
seemingly work around the problem without actually thinking about it.
--
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/