1
linux/arch
Jeremy Fitzhardinge 4f9c11dd49 x86, 64-bit: adjust mapping of physical pagetables to work with Xen
This makes a few of changes to the construction of the initial
pagetables to work better with paravirt_ops/Xen.  The main areas
are:

 1. Support non-PSE mapping of memory, since Xen doesn't currently
    allow 2M pages to be mapped in guests.

 2. Make sure that the ioremap alias of all pages are dropped before
    attaching the new page to the pagetable.  This avoids having
    writable aliases of pagetable pages.

 3. Preserve existing pagetable entries, rather than overwriting.  Its
    possible that a fair amount of pagetable has already been constructed,
    so reuse what's already in place rather than ignoring and overwriting it.

The algorithm relies on the invariant that any page which is part of
the kernel pagetable is itself mapped in the linear memory area.  This
way, it can avoid using ioremap on a pagetable page.

The invariant holds because it maps memory from low to high addresses,
and also allocates memory from low to high.  Each allocated page can
map at least 2M of address space, so the mapped area will always
progress much faster than the allocated area.  It relies on the early
boot code mapping enough pages to get started.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: xen-devel <xen-devel@lists.xensource.com>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Mark McLoughlin <markmc@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-07-08 13:11:07 +02:00
..
alpha Alpha Linux kernel fails with inconsistent kallsyms data 2008-07-04 10:40:09 -07:00
arm [ARM] 5131/1: Annotate platform_secondary_init with trace_hardirqs_off 2008-06-30 19:08:53 +01:00
avr32 avr32: Fix cpufreq oops when ondemand governor is default 2008-05-27 09:37:42 +02:00
blackfin Blackfin arch: fix up section mismatch warning 2008-06-25 12:41:51 +08:00
cris [PATCH] take init_files to fs/file.c 2008-05-16 17:22:20 -04:00
frv Fix various old email addresses for dwmw2 2008-06-06 11:29:10 -07:00
h8300 [PATCH] take init_files to fs/file.c 2008-05-16 17:22:20 -04:00
ia64 [IA64] export account_system_vtime 2008-06-30 15:06:48 -07:00
m32r [PATCH] take init_files to fs/file.c 2008-05-16 17:22:20 -04:00
m68k m68k: enable CONFIG_COMPAT_BRK by default 2008-06-06 11:29:09 -07:00
m68knommu m68knommu: init coldfire timer TRR with n - 1, not n 2008-06-12 18:05:40 -07:00
mips [MIPS] cevt-txx9: Reset timer counter on initialization 2008-07-03 19:14:27 +01:00
mn10300 mn10300: provide __ucmpdi2() for MN10300 2008-07-04 10:40:07 -07:00
parisc parisc: fix off by one in setup_sigcontext32 2008-06-13 10:49:55 -04:00
powerpc Merge branch 'for-2.6.26' of git://git.secretlab.ca/git/linux-2.6-mpc52xx into merge 2008-07-03 10:05:59 +10:00
ppc [POWERPC] Export empty_zero_page and copy_page in arch/ppc 2008-05-31 17:08:28 +10:00
s390 Merge branch 'kvm-updates-2.6.26' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm 2008-06-11 10:35:44 -07:00
sh sh: Add -mno-fdpic to default flags. 2008-06-09 16:49:43 +09:00
sparc sparc: switch /proc/led to seq_file 2008-06-03 15:21:21 -07:00
sparc64 sparc64: Prevent stack backtrace false positives on trap frames. 2008-05-21 21:50:01 -07:00
um uml: work around broken host PTRACE_SYSEMU 2008-06-12 18:05:40 -07:00
v850 [PATCH] take init_files to fs/file.c 2008-05-16 17:22:20 -04:00
x86 x86, 64-bit: adjust mapping of physical pagetables to work with Xen 2008-07-08 13:11:07 +02:00
xtensa [PATCH] take init_files to fs/file.c 2008-05-16 17:22:20 -04:00
.gitignore
Kconfig