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
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(
#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 */
#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