Re: [PATCH] x86/i386: Check PSE bit before using PAGE_KERNEL_LARGE.

From: Konrad Rzeszutek Wilk
Date: Thu May 31 2012 - 16:43:30 EST


On Thu, May 31, 2012 at 01:21:02PM -0700, H. Peter Anvin wrote:
> On 05/31/2012 12:40 PM, Konrad Rzeszutek Wilk wrote:
> > During bootup we would unconditionally do this on any
> > machine that was built with CONFIG_NUMA=y on i386:
> >
> > setup_arch
> > \-initmem_init
> > \-x86_numa_init (with dummy_init as callback)
> > \- init_alloc_remap
> > \- set_pmd_pfn (with PAGE_PSE)
> >
> > without checking to see if the CPU supports PSE. This
> > patch adds that and also allows the init_alloc_remap function
> > to properly work by falling back on PTEs.
> >
>
> Well, the code looks like it is PAE-specific, and PAE implies PSE.

I have to double check - but I think a kernel built with CONFIG_HIGHMEM64=y
and CONFIG_NUMA=y would boot on a Pentium II which can't do PAE.

But perhaps there are some other checks that would halt the kernel
before it even got there?

>
> Xen breaks that, but that is a divergence of Xen from x86.

It certainly does <sigh>. And that is how I spotted this - b/c the
PMD would fail (with tons of mutlicalls warnings) - and the PTE's
would still point to the old PFNs.
--
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/