* [PATCH][4/4] Enable 1GB for Xen HVM host page
@ 2010-02-22 17:19 Wei Huang
0 siblings, 0 replies; only message in thread
From: Wei Huang @ 2010-02-22 17:19 UTC (permalink / raw)
To: 'xen-devel@lists.xensource.com', Keir Fraser,
Xu, Dongxiao
[-- Attachment #1: Type: text/plain, Size: 263 bytes --]
This patch adds a new field in hvm to indicate 1gb is supported by CPU.
In addition, users can turn 1GB feature on/off using a Xen option
("hap_1gb", default is off).
Signed-off-by: Wei Huang <wei.huang2@amd.com>
Acked-by: Dongxiao Xu <dongxiao.xu@intel.com>
[-- Attachment #2: 4-xen-hap-new-option.patch --]
[-- Type: text/x-patch, Size: 2580 bytes --]
# HG changeset patch
# User huangwei@huangwei.amd.com
# Date 1266853456 21600
# Node ID 6849ef364858d422c5cb86e3ce49d63cbc897579
# Parent 72075d4fc39e8cd11a06bff4eb66521ab8fe952b
add option to turn on and off 1GB
diff -r 72075d4fc39e -r 6849ef364858 xen/arch/x86/hvm/svm/svm.c
--- a/xen/arch/x86/hvm/svm/svm.c Mon Feb 22 09:44:13 2010 -0600
+++ b/xen/arch/x86/hvm/svm/svm.c Mon Feb 22 09:44:16 2010 -0600
@@ -883,6 +883,8 @@
cpuid_edx(0x8000000A) : 0);
svm_function_table.hap_supported = cpu_has_svm_npt;
+ svm_function_table.hap_1gb_pgtb =
+ (CONFIG_PAGING_LEVELS == 4)? !!(cpuid_edx(0x80000001) & 0x04000000):0;
hvm_enable(&svm_function_table);
}
diff -r 72075d4fc39e -r 6849ef364858 xen/arch/x86/hvm/vmx/vmx.c
--- a/xen/arch/x86/hvm/vmx/vmx.c Mon Feb 22 09:44:13 2010 -0600
+++ b/xen/arch/x86/hvm/vmx/vmx.c Mon Feb 22 09:44:16 2010 -0600
@@ -1443,6 +1443,8 @@
if ( cpu_has_vmx_ept )
vmx_function_table.hap_supported = 1;
+
+ vmx_function_table.hap_1gb_pgtb = 0;
setup_vmcs_dump();
diff -r 72075d4fc39e -r 6849ef364858 xen/arch/x86/mm/p2m.c
--- a/xen/arch/x86/mm/p2m.c Mon Feb 22 09:44:13 2010 -0600
+++ b/xen/arch/x86/mm/p2m.c Mon Feb 22 09:44:16 2010 -0600
@@ -38,6 +38,10 @@
/* Debugging and auditing of the P2M code? */
#define P2M_AUDIT 0
#define P2M_DEBUGGING 0
+
+/* turn on/off 1GB host page table support for hap */
+static int opt_hap_1gb = 0;
+boolean_param("hap_1gb", opt_hap_1gb);
/* Printouts */
#define P2M_PRINTK(_f, _a...) \
@@ -1735,9 +1739,9 @@
while ( todo )
{
if ( is_hvm_domain(d) && d->arch.hvm_domain.hap_enabled )
- order = ( (((gfn | mfn_x(mfn) | todo) & ((1ul << 18) - 1)) == 0) ) ?
- 18 :
- (((gfn | mfn_x(mfn) | todo) & ((1ul << 9) - 1)) == 0) ? 9 : 0;
+ order = ( (((gfn | mfn_x(mfn) | todo) & ((1ul << 18) - 1)) == 0) &&
+ hvm_funcs.hap_1gb_pgtb && opt_hap_1gb ) ? 18 :
+ (((gfn | mfn_x(mfn) | todo) & ((1ul << 9) - 1)) == 0) ? 9 : 0;
else
order = 0;
diff -r 72075d4fc39e -r 6849ef364858 xen/include/asm-x86/hvm/hvm.h
--- a/xen/include/asm-x86/hvm/hvm.h Mon Feb 22 09:44:13 2010 -0600
+++ b/xen/include/asm-x86/hvm/hvm.h Mon Feb 22 09:44:16 2010 -0600
@@ -68,6 +68,10 @@
/* Support Hardware-Assisted Paging? */
int hap_supported;
+
+ /* Support 1GB Harware-Assisted Paging? */
+ int hap_1gb_pgtb;
+
/*
* Initialise/destroy HVM domain/vcpu resources
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2010-02-22 17:19 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-22 17:19 [PATCH][4/4] Enable 1GB for Xen HVM host page Wei Huang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).