kernel_optimize_test/arch/x86
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
..
boot x86: unify arch/x86/boot/compressed/misc_??.c 2008-01-30 13:33:38 +01:00
configs x86: Set CFQ as default in 32-bit defconfig 2008-01-30 13:32:49 +01:00
crypto [CRYPTO] twofish: Merge common glue code 2008-01-14 17:07:57 +11:00
ia32 x86: remove unneded casts 2008-01-30 13:33:23 +01:00
kernel x86: fixes some bugs about EFI memory map handling 2008-01-30 13:34:10 +01:00
lguest x86: remove depends on X86_32 from PARAVIRT & PARAVIRT_GUEST 2008-01-30 13:33:32 +01:00
lib x86: fix usage of .section .sched.text in assembler code 2008-01-30 13:33:37 +01:00
mach-default spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
mach-es7000 i386: es7000 minor cleanups 2007-10-17 20:16:15 +02:00
mach-generic spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
mach-rdc321x x86: add support for the RDC R-321x SoC 2008-01-30 13:33:36 +01:00
mach-visws x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-voyager x86: convert TSC disabling to generic cpuid disable bitmap 2008-01-30 13:33:20 +01:00
math-emu x86: arch/x86/math-emu/errors.c: fix printk warnings 2008-01-30 13:32:13 +01:00
mm x86: don't special-case pmd allocations as much 2008-01-30 13:34:11 +01:00
oprofile x86: rename stack_pointer to kernel_trap_sp 2008-01-30 13:33:16 +01:00
pci x86: serverworks: IRQ routing needs no _p 2008-01-30 13:33:14 +01:00
power x86: make __{save,restore}_processor_state static 2008-01-30 13:31:23 +01:00
vdso x86: add vdso32-int80-syms.lds to .gitignore 2008-01-30 13:33:24 +01:00
video i386: move video 2007-10-11 11:16:56 +02:00
xen x86: return the page table level in lookup_address() 2008-01-30 13:33:43 +01:00
Kconfig x86: replace boot_ioremap() with enhanced bt_ioremap() - remove boot_ioremap() 2008-01-30 13:33:44 +01:00
Kconfig.cpu x86: reduce CONFIG_X86_PPRO_FENCE bloat 2008-01-30 13:32:31 +01:00
Kconfig.debug x86: cpa: fix the self-test 2008-01-30 13:34:09 +01:00
Makefile x86: add support for the RDC R-321x SoC 2008-01-30 13:33:36 +01:00
Makefile_32.cpu x86: move i386 and x86_64 Makefiles to arch/x86 2007-10-25 22:27:34 +02:00