From: Andrew Cooper Date: Tue, 12 Feb 2013 10:12:22 +0000 (+0100) Subject: x86/HAP: Add global enable/disable command line option X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~7303 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=bf560076938e168fd6436deda6b6c856313d575b;p=xen.git x86/HAP: Add global enable/disable command line option Also, correct a copy&paste error in the documentation. Signed-off-by: Andrew Cooper Acked-by: Tim Deegan Committed-by: Jan Beulich --- diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown index 32443b0d0c..81b86613dc 100644 --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -521,6 +521,14 @@ more importance will be printed. The optional `` option instructs which severities should be rate limited. +### hap +> `= ` + +> Default: `true` + +Flag to globally enable or disable support for Hardware Assisted +Paging (HAP) + ### hap\_1gb > `= ` @@ -534,7 +542,7 @@ Paging (HAP). > Default: `true` -Flag to enable 1 GB host page table support for Hardware Assisted +Flag to enable 2 MB host page table support for Hardware Assisted Paging (HAP). ### hpetbroadcast diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 34b86f4f39..fcea52c737 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -78,6 +78,10 @@ struct hvm_function_table hvm_funcs __read_mostly; unsigned long __attribute__ ((__section__ (".bss.page_aligned"))) hvm_io_bitmap[3*PAGE_SIZE/BYTES_PER_LONG]; +/* Xen command-line option to enable HAP */ +static bool_t __initdata opt_hap_enabled = 1; +boolean_param("hap", opt_hap_enabled); + static int cpu_callback( struct notifier_block *nfb, unsigned long action, void *hcpu) { @@ -123,7 +127,14 @@ static int __init hvm_enable(void) hvm_enabled = 1; printk("HVM: %s enabled\n", hvm_funcs.name); - if ( hvm_funcs.hap_supported ) + if ( !hvm_funcs.hap_supported ) + printk("HVM: Hardware Assisted Paging (HAP) not detected\n"); + else if ( !opt_hap_enabled ) + { + hvm_funcs.hap_supported = 0; + printk("HVM: Hardware Assisted Paging (HAP) detected but disabled\n"); + } + else { printk("HVM: Hardware Assisted Paging (HAP) detected\n"); printk("HVM: HAP page sizes: 4kB");