linux/arch/i386
Jeremy Fitzhardinge f4f97b3ea9 xen: Complete pagetable pinning
Xen requires all active pagetables to be marked read-only.  When the
base of the pagetable is loaded into %cr3, the hypervisor validates
the entire pagetable and only allows the load to proceed if it all
checks out.

This is pretty slow, so to mitigate this cost Xen has a notion of
pinned pagetables.  Pinned pagetables are pagetables which are
considered to be active even if no processor's cr3 is pointing to is.
This means that it must remain read-only and all updates are validated
by the hypervisor.  This makes context switches much cheaper, because
the hypervisor doesn't need to revalidate the pagetable each time.

This also adds a new paravirt hook which is called during setup once
the zones and memory allocator have been initialized.  When the
init_mm pagetable is first built, the struct page array does not yet
exist, and so there's nowhere to put he init_mm pagetable's PG_pinned
flags.  Once the zones are initialized and the struct page array
exists, we can set the PG_pinned flags for those pages.

This patch also adds the Xen support for pte pages allocated out of
highmem (highpte) by implementing xen_kmap_atomic_pte.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Cc: Zach Amsden <zach@vmware.com>
2007-07-18 08:47:43 -07:00
..
boot Remove old i386 setup code 2007-07-12 10:55:56 -07:00
crypto
kernel xen: Core Xen implementation 2007-07-18 08:47:42 -07:00
lib i386: Add safe variants of rdmsr_on_cpu and wrmsr_on_cpu 2007-05-08 17:22:01 +02:00
mach-default Add IRQF_IRQPOLL flag on i386 2007-05-08 11:15:22 -07:00
mach-es7000 i386: es7000 build breakage fix 2007-07-06 10:23:43 -07:00
mach-generic i386 bigsmp: section mismatch fixes 2007-05-23 20:14:15 -07:00
mach-visws PCI: i386: traps, change VENDOR to DEVICE 2007-07-11 16:02:10 -07:00
mach-voyager usermodehelper: Tidy up waiting 2007-07-18 08:47:40 -07:00
math-emu potential parse error in ifdef part 3 2007-06-08 17:23:33 -07:00
mm paravirt: export __supported_pte_mask 2007-07-18 08:47:41 -07:00
oprofile x86: fix oprofile double free 2007-06-01 08:18:28 -07:00
pci PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
power
video fbcon: allow fbcon to use the primary display driver 2007-07-17 10:23:11 -07:00
xen xen: Complete pagetable pinning 2007-07-18 08:47:43 -07:00
defconfig i386: Update defconfig 2007-05-21 09:56:56 -07:00
Kconfig xen: configuration 2007-07-18 08:47:43 -07:00
Kconfig.cpu x86 Kconfig: change X86_MINIMUM_CPU_MODEL to X86_MINIMUM_CPU_FAMILY 2007-07-12 10:55:54 -07:00
Kconfig.debug Allow DEBUG_RODATA and KPROBES to co-exist 2007-06-21 16:02:50 -07:00
Makefile xen: Core Xen implementation 2007-07-18 08:47:42 -07:00
Makefile.cpu