From: Kai Huang Date: Mon, 4 May 2015 10:14:15 +0000 (+0200) Subject: vmx: add new data structure member to support PML X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~3357 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=43ba5a967e8f0495eaa183f13496435e176a2a9c;p=xen.git vmx: add new data structure member to support PML A new 4K page pointer is added to arch_vmx_struct as PML buffer for vcpu. And a new 'status' field is added to vmx_domain to indicate whether PML is enabled for the domain or not. Signed-off-by: Kai Huang Acked-by: Tim Deegan Acked-by: Kevin Tian --- diff --git a/xen/include/asm-x86/hvm/vmx/vmcs.h b/xen/include/asm-x86/hvm/vmx/vmcs.h index f831a78c47..441e974a58 100644 --- a/xen/include/asm-x86/hvm/vmx/vmcs.h +++ b/xen/include/asm-x86/hvm/vmx/vmcs.h @@ -70,8 +70,12 @@ struct ept_data { cpumask_var_t synced_mask; }; +#define _VMX_DOMAIN_PML_ENABLED 0 +#define VMX_DOMAIN_PML_ENABLED (1ul << _VMX_DOMAIN_PML_ENABLED) struct vmx_domain { unsigned long apic_access_mfn; + /* VMX_DOMAIN_* */ + unsigned int status; }; struct pi_desc { @@ -85,6 +89,8 @@ struct pi_desc { #define ept_get_eptp(ept) ((ept)->eptp) #define ept_get_synced_mask(ept) ((ept)->synced_mask) +#define NR_PML_ENTRIES 512 + struct arch_vmx_struct { /* Virtual address of VMCS. */ struct vmcs_struct *vmcs; @@ -142,6 +148,8 @@ struct arch_vmx_struct { /* Bitmap to control vmexit policy for Non-root VMREAD/VMWRITE */ struct page_info *vmread_bitmap; struct page_info *vmwrite_bitmap; + + struct page_info *pml_pg; }; int vmx_create_vmcs(struct vcpu *v);