hvm: Print support/enable status of HAP superpage mappings.
authorKeir Fraser <keir@xen.org>
Thu, 8 Mar 2012 09:43:49 +0000 (09:43 +0000)
committerKeir Fraser <keir@xen.org>
Thu, 8 Mar 2012 09:43:49 +0000 (09:43 +0000)
Signed-off-by: Keir Fraser <keir@xen.org>
xen/arch/x86/hvm/hvm.c
xen/arch/x86/hvm/vmx/vmcs.c
xen/arch/x86/mm/p2m.c
xen/include/asm-x86/p2m.h

index f7a4a3717f0ea0db64bf0e34bfd660fed4b0b7a5..e926c581a96eae578239cc90322bfb7af5beaaf7 100644 (file)
@@ -131,7 +131,15 @@ static int __init hvm_enable(void)
 
     printk("HVM: %s enabled\n", hvm_funcs.name);
     if ( hvm_funcs.hap_supported )
-        printk("HVM: Hardware Assisted Paging detected.\n");
+    {
+        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");
+    }
 
     /*
      * Allow direct access to the PC debug ports 0x80 and 0xed (they are
index fe4527aa756989595accaf4678b75e13949a1606..38b5d03e7a26e3d828b0efeb531a56824d9e2fd4 100644 (file)
@@ -93,11 +93,6 @@ static void __init vmx_display_features(void)
 
     if ( !printed )
         printk(" - none\n");
-
-    if ( cpu_has_vmx_ept_1gb )
-        printk("EPT supports 1GB super page.\n");
-    if ( cpu_has_vmx_ept_2mb )
-        printk("EPT supports 2MB super page.\n");
 }
 
 static u32 adjust_vmx_controls(
index 45ed6e2766def6040e26c3903002af0118c27345..bb54969ee57b71ddd4836217ac314001f294df23 100644 (file)
 #include "mm-locks.h"
 
 /* turn on/off 1GB host page table support for hap, default on */
-static bool_t __read_mostly opt_hap_1gb = 1;
+bool_t __read_mostly opt_hap_1gb = 1;
 boolean_param("hap_1gb", opt_hap_1gb);
 
-static bool_t __read_mostly opt_hap_2mb = 1;
+bool_t __read_mostly opt_hap_2mb = 1;
 boolean_param("hap_2mb", opt_hap_2mb);
 
 /* Printouts */
index 44104fcbe5a8da820e4adb9381589b88f13629c5..a8be50d52c80d27695a00e002faf6621e115b3c9 100644 (file)
@@ -32,6 +32,8 @@
 #include <asm/mem_sharing.h>
 #include <asm/page.h>    /* for pagetable_t */
 
+extern bool_t opt_hap_1gb, opt_hap_2mb;
+
 /*
  * The phys_to_machine_mapping maps guest physical frame numbers 
  * to machine frame numbers.  It only exists for paging_mode_translate