xen: add support for PAT
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Tue, 30 Mar 2010 18:47:40 +0000 (11:47 -0700)
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Fri, 22 Oct 2010 19:57:31 +0000 (12:57 -0700)
commit41f2e4771a4f1ba26c35438daf32917b9ef7858d
tree94a0af183907bc2f646bcde12072c960da987f65
parent2f7acb208523a3bf5f1830f01c29f7feda045169
xen: add support for PAT

Convert Linux PAT entries into Xen ones when constructing ptes.  Linux
doesn't use _PAGE_PAT for ptes, so the only difference in the first 4
entries is that Linux uses _PAGE_PWT for WC, whereas Xen (and default)
use it for WT.

xen_pte_val does the inverse conversion.

We hard-code assumptions about Linux's current PAT layout, but a
warning on the wrmsr to MSR_IA32_CR_PAT should point out any problems.
If necessary we could go to a more general table-based conversion between
Linux and Xen PAT entries.

hugetlbfs poses a problem at the moment, the x86 architecture uses the
same flag for _PAGE_PAT and _PAGE_PSE, which changes meaning depending
on which pagetable level we're using.  At the moment this should be OK
so long as nobody tries to do a pte_val on a hugetlbfs pte.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
arch/x86/xen/enlighten.c
arch/x86/xen/mmu.c
arch/x86/xen/xen-ops.h