Re: pud_bad vs pud_bad

From: wli
Date: Thu Feb 05 2009 - 15:01:46 EST


* Hugh Dickins <hugh@xxxxxxxxxxx> wrote:
>> Simpler and more compact, but not as strict: in particular, a value of
>> 0 or 1 is identified as bad by that 64-bit test, but not by the 32-bit.

On Thu, Feb 05, 2009 at 08:49:32PM +0100, Ingo Molnar wrote:
> yes, indeed you are right - the 64-bit test does not allow the KERNPG_TABLE
> bits to go zero.
> Those are the present, rw, accessed and dirty bits. Do they really matter
> that much? If a toplevel entry goes !present or readonly, we notice that
> _fast_, without any checks. If it goes !access or !dirty - does that matter?
> These checks are done all the time, and even a single instruction can count.
> The bits that are checked are enough to notice random memory corruption.
> ( albeit these days with large RAM sizes pagetable corruption is quite rare
> and only happens if it's specifically corrupting the pagetable - and then
> it's not just a single bit. Most of the memory corruption goes into the
> pagecache. )

The RW bit needs to be allowed to become read-only for hugetlb COW.
Changing it over to the 32-bit method is a bugfix by that token.


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