linux/arch/x86/mm
Suresh Siddha b27a43c1e9 x86, cpa: make the kernel physical mapping initialization a two pass sequence, fix
Jeremy Fitzhardinge wrote:

> I'd noticed that current tip/master hasn't been booting under Xen, and I
> just got around to bisecting it down to this change.
>
> commit 065ae73c5462d42e9761afb76f2b52965ff45bd6
> Author: Suresh Siddha <suresh.b.siddha@intel.com>
>
>    x86, cpa: make the kernel physical mapping initialization a two pass sequence
>
> This patch is causing Xen to fail various pagetable updates because it
> ends up remapping pagetables to RW, which Xen explicitly prohibits (as
> that would allow guests to make arbitrary changes to pagetables, rather
> than have them mediated by the hypervisor).

Instead of making init a two pass sequence, to satisfy the Intel's TLB
Application note (developer.intel.com/design/processor/applnots/317080.pdf
Section 6 page 26), we preserve the original page permissions
when fragmenting the large mappings and don't touch the existing memory
mapping (which satisfies Xen's requirements).

Only open issue is: on a native linux kernel, we will go back to mapping
the first 0-1GB kernel identity mapping as executable (because of the
static mapping setup in head_64.S). We can fix this in a different
patch if needed.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Acked-by: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-10-10 19:29:21 +02:00
..
discontig_32.c mm: move bootmem descriptors definition to a single place 2008-07-24 10:47:14 -07:00
dump_pagetables.c x86: add PTE_FLAGS_MASK 2008-07-22 10:43:45 +02:00
extable.c x86: unify extable_{32|64}.c 2008-01-30 13:31:41 +01:00
fault.c Merge branch 'auto-ftrace-next' into tracing/for-linus 2008-07-14 16:11:52 +02:00
gup.c Fix 'get_user_pages_fast()' with non-page-aligned start address 2008-07-28 17:54:21 -07:00
highmem_32.c x86: unexport kmap_atomic_to_page 2008-04-30 23:15:34 +02:00
hugetlbpage.c x86: add hugepagesz option on 64-bit 2008-07-24 10:47:19 -07:00
init_32.c x86, cpa: remove cpa pool code 2008-10-10 19:29:16 +02:00
init_64.c x86, cpa: make the kernel physical mapping initialization a two pass sequence, fix 2008-10-10 19:29:21 +02:00
ioremap.c x86: track memtype for RAM in page struct 2008-10-10 19:29:18 +02:00
k8topology_64.c x86: remove end_pfn in 64bit 2008-07-08 13:10:38 +02:00
kmmio.c - fix mmioftrace + rcu merge interaction 2008-05-25 09:51:43 +02:00
Makefile mm: Make generic weak get_user_pages_fast and EXPORT_GPL it 2008-08-12 17:52:53 +10:00
memtest.c x86: seperate memtest from init_64.c 2008-07-18 14:10:27 +02:00
mmap.c x86: unify mmap_{32|64}.c 2008-01-30 13:31:10 +01:00
mmio-mod.c x86, mmiotrace: silence section mismatch warning - leave_uniprocessor 2008-08-21 12:35:16 +02:00
numa_64.c mm: move bootmem descriptors definition to a single place 2008-07-24 10:47:14 -07:00
pageattr-test.c x86: make sure the CPA test code's use of _PAGE_UNUSED1 is obvious 2008-09-05 17:09:57 +02:00
pageattr.c x86, cpa: srlz cpa(), global flush tlb after splitting big page and before doing cpa 2008-10-10 19:29:17 +02:00
pat.c x86, pat: cleanups 2008-10-10 19:29:20 +02:00
pf_in.c x86 mmiotrace: move files into arch/x86/mm/. 2008-05-24 11:25:37 +02:00
pf_in.h x86 mmiotrace: move files into arch/x86/mm/. 2008-05-24 11:25:37 +02:00
pgtable.c x86: work around gcc 3.4.x bug 2008-08-11 18:44:02 +02:00
pgtable_32.c x86: use generic show_mem() 2008-07-26 12:00:10 -07:00
srat_32.c x86: don't call e820_regiter_active_regions if out of range on node 2008-08-14 11:35:52 +02:00
srat_64.c x86: reserve SLIT 2008-07-11 10:22:33 +02:00
testmmiotrace.c mmiotrace: code style cleanups 2008-05-24 11:27:28 +02:00