x86: don't use large pages to map the first 2/4MB of memory
authorAndi Kleen <andi@firstfloor.org>
Wed, 12 Mar 2008 02:53:30 +0000 (03:53 +0100)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Apr 2008 15:41:30 +0000 (17:41 +0200)
commitf5c24a7fd0798d636af184cc7032e7e0cb149112
tree398edfb6ebff645c3e7f84848c6d84eeb0d2d02d
parentc9caa02c529d5e113e40cbc77254558fcdfa4215
x86: don't use large pages to map the first 2/4MB of memory

Intel recommends to not use large pages for the first 1MB
of the physical memory because there are fixed size MTRRs there
which cause splitups in the TLBs.

On AMD doing so is also a good idea.

The implementation is a little different between 32bit and 64bit.
On 32bit I just taught the initial page table set up about this
because it was very simple to do. This also has the advantage
that the risk of a prefetch ever seeing the page even
if it only exists for a short time is minimized.

On 64bit that is not quite possible, so use set_memory_4k() a little
later (in check_bugs) instead.

Signed-off-by: Andi Kleen <ak@suse.de>
Acked-by: andreas.herrmann3@amd.com
Cc: mingo@elte.hu
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/bugs_64.c
arch/x86/mm/init_32.c