Re: pgd_none_or_clear_bad strangeness?

From: Nick Piggin
Date: Wed Oct 03 2007 - 07:25:41 EST


On Tue, Oct 02, 2007 at 05:20:03PM -0500, Matt Mackall wrote:
> In lib/pagewalk.c, I've been using the various forms of
> {pgd,pud,pmd}_none_or_clear_bad while walking page tables as that
> seemed the canonical way to do things. Lately (eg with -rc7-mm1),
> these have been triggering messages like "bad pgd 0x01e3" and causing
> nasty double faults. It appears this is actually triggered at the pmd
> level (mm/memory.c:116), though it appears to produce the wrong
> message.
>
> Has something changed here? I'm pretty sure this used to work! Is this
> not a kosher thing to do? Does it make any sense I'd repeatedly run
> into a bad pmd in the middle of bash's page table right after boot?
> The simple _none variant seems to work, but I worry that it's papering
> over a real problem.

No, I think that should be the right thing to do for userspace pages.
You're not walking into a hugetlb area or a kernel mapping are you?
(the bad pgd: line could be important... 0x01e3 would be a linear kernel
mapping I think?).

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