linux-hardened/arch/x86/mm
Jeremy Fitzhardinge 6194ba6ff6 x86: don't special-case pmd allocations as much
In x86 PAE mode, stop treating pmds as a special case.  Previously
they were always allocated and freed with the pgd.  The modifies the
code to be the same as 64-bit mode, where they are allocated on
demand.

This is a step on the way to unifying 32/64-bit pagetable allocation
as much as possible.

There is a complicating wart, however.  When you install a new
reference to a pmd in the pgd, the processor isn't guaranteed to see
it unless you reload cr3.  Since reloading cr3 also has the
side-effect of flushing the tlb, this is an expense that we want to
avoid whereever possible.

This patch simply avoids reloading cr3 unless the update is to the
current pagetable.  Later patches will optimise this further.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: Andi Kleen <ak@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: William Irwin <wli@holomorphy.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-01-30 13:34:11 +01:00
..
discontig_32.c x86: make NUMA work on 32-bit 2008-01-30 13:33:25 +01:00
extable.c x86: unify extable_{32|64}.c 2008-01-30 13:31:41 +01:00
fault.c x86: shrink some ifdefs in fault.c 2008-01-30 13:34:11 +01:00
highmem_32.c x86: kmap_atomic() debugging 2008-01-30 13:30:47 +01:00
hugetlbpage.c x86: demacro asm-x86/pgalloc_32.h 2008-01-30 13:33:39 +01:00
init_32.c x86: don't special-case pmd allocations as much 2008-01-30 13:34:11 +01:00
init_64.c x86: arch/x86/mm/init_64.c printk fixes 2008-01-30 13:34:10 +01:00
ioremap.c x86: ioremap KERN_INFO 2008-01-30 13:34:08 +01:00
k8topology_64.c x86: clean up k8topology.c 2008-01-30 13:32:36 +01:00
Makefile x86_64: move mm 2007-10-11 11:17:18 +02:00
Makefile_32 x86: unify fault_32|64.c 2008-01-30 13:34:11 +01:00
Makefile_64 x86: unify fault_32|64.c 2008-01-30 13:34:11 +01:00
mmap.c x86: unify mmap_{32|64}.c 2008-01-30 13:31:10 +01:00
numa_64.c x86: early cpu_to_node fix in numa_64.c 2008-01-30 13:33:33 +01:00
pageattr-test.c x86: cpa: fix the self-test 2008-01-30 13:34:09 +01:00
pageattr.c x86: cpa cleanup the 64-bit alias math 2008-01-30 13:34:09 +01:00
pgtable_32.c x86: don't special-case pmd allocations as much 2008-01-30 13:34:11 +01:00
srat_64.c x86: fix section mismatch warning in srat_64.c 2008-01-30 13:33:37 +01:00