mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-01-13 11:33:58 +00:00
hv: add a cache register for VMX_PROC_VM_EXEC_CONTROLS
This patch adds a cache register for VMX_PROC_VM_EXEC_CONTROLS to avoid the frequent VMCS access. Tracked-On: #5605 Signed-off-by: Jie Deng <jie.deng@intel.com>
This commit is contained in:
@@ -288,7 +288,7 @@ static void init_exec_ctrl(struct acrn_vcpu *vcpu)
|
||||
* Enable VM_EXIT for rdpmc execution.
|
||||
*/
|
||||
value32 |= VMX_PROCBASED_CTLS_RDPMC;
|
||||
|
||||
vcpu->arch.proc_vm_exec_ctrls = value32;
|
||||
exec_vmwrite32(VMX_PROC_VM_EXEC_CONTROLS, value32);
|
||||
pr_dbg("VMX_PROC_VM_EXEC_CONTROLS: 0x%x ", value32);
|
||||
|
||||
@@ -595,10 +595,9 @@ void switch_apicv_mode_x2apic(struct acrn_vcpu *vcpu)
|
||||
value32 &= ~VMX_EXIT_CTLS_ACK_IRQ;
|
||||
exec_vmwrite32(VMX_EXIT_CONTROLS, value32);
|
||||
|
||||
value32 = exec_vmread32(VMX_PROC_VM_EXEC_CONTROLS);
|
||||
value32 &= ~VMX_PROCBASED_CTLS_TPR_SHADOW;
|
||||
value32 &= ~VMX_PROCBASED_CTLS_HLT;
|
||||
exec_vmwrite32(VMX_PROC_VM_EXEC_CONTROLS, value32);
|
||||
vcpu->arch.proc_vm_exec_ctrls &= ~VMX_PROCBASED_CTLS_TPR_SHADOW;
|
||||
vcpu->arch.proc_vm_exec_ctrls &= ~VMX_PROCBASED_CTLS_HLT;
|
||||
exec_vmwrite32(VMX_PROC_VM_EXEC_CONTROLS, vcpu->arch.proc_vm_exec_ctrls);
|
||||
|
||||
exec_vmwrite32(VMX_TPR_THRESHOLD, 0U);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user