[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] HAP: Add global enable/disable command line option
Also, correct a copy&paste error in the documentation. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- This patch has been in the XenServer patch queue for a long time. It is more for debugging purposes than anything else, but is still proving to be valuable for tracking down bugs with HVM paging operations. diff -r 5af4f2ab06f3 -r e6ec5b2b717f docs/misc/xen-command-line.markdown --- 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 `<rate-limited level>` option instructs which severities should be rate limited. +### hap +> `= <boolean>` + +> Default: `true` + +Flag to globally enable or disable support for Hardware Assisted +Paging (HAP) + ### hap\_1gb > `= <boolean>` @@ -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 -r 5af4f2ab06f3 -r e6ec5b2b717f xen/arch/x86/hvm/hvm.c --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -78,6 +78,10 @@ struct hvm_function_table hvm_funcs __re unsigned long __attribute__ ((__section__ (".bss.page_aligned"))) hvm_io_bitmap[3*PAGE_SIZE/BYTES_PER_LONG]; +/* Xen command-line option to enable HAP */ +static int opt_hap_enabled = 1; +boolean_param("hap", opt_hap_enabled); + static int cpu_callback( struct notifier_block *nfb, unsigned long action, void *hcpu) { @@ -125,14 +129,23 @@ static int __init hvm_enable(void) printk("HVM: %s enabled\n", hvm_funcs.name); if ( hvm_funcs.hap_supported ) { - printk("HVM: Hardware Assisted Paging (HAP) detected\n"); - printk("HVM: HAP page sizes: 4kB"); - if ( hvm_funcs.hap_capabilities & HVM_HAP_SUPERPAGE_2MB ) - printk(", 2MB%s", opt_hap_2mb ? "" : " [disabled]"); - if ( hvm_funcs.hap_capabilities & HVM_HAP_SUPERPAGE_1GB ) - printk(", 1GB%s", opt_hap_1gb ? "" : " [disabled]"); - printk("\n"); + hvm_funcs.hap_supported = hvm_funcs.hap_supported && opt_hap_enabled; + + if ( hvm_funcs.hap_supported ) + { + printk("HVM: Hardware Assisted Paging (HAP) detected\n"); + printk("HVM: HAP page sizes: 4kB"); + if ( hvm_funcs.hap_capabilities & HVM_HAP_SUPERPAGE_2MB ) + printk(", 2MB%s", opt_hap_2mb ? "" : " [disabled]"); + if ( hvm_funcs.hap_capabilities & HVM_HAP_SUPERPAGE_1GB ) + printk(", 1GB%s", opt_hap_1gb ? "" : " [disabled]"); + printk("\n"); + } + else + printk("HVM: Hardware Assisted Paging (HAP) detected but disabled\n"); } + else + printk("HVM: Hardware Assisted Paging (HAP) not detected\n"); /* * Allow direct access to the PC debug ports 0x80 and 0xed (they are _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |