enable rdtscp instruction for guest OS all vCPUs

before just AP can run "rdtscp" intruction, if run it on BSP,
it will cause "illegal instruction"; now align BSP & AP.
also remove duplicated code.

Signed-off-by: Minggui Cao <minggui.cao@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
This commit is contained in:
Minggui Cao 2018-04-12 17:26:49 +08:00 committed by lijinxia
parent 4e68e6bda7
commit 03ecb7cde1
2 changed files with 2 additions and 9 deletions

View File

@ -246,13 +246,6 @@ static int write_cr0(struct vcpu *vcpu, uint64_t value)
exec_vmwrite(VMX_ENTRY_CONTROLS, value32); exec_vmwrite(VMX_ENTRY_CONTROLS, value32);
pr_dbg("VMX_ENTRY_CONTROLS: 0x%x ", value32); pr_dbg("VMX_ENTRY_CONTROLS: 0x%x ", value32);
/* Disable unrestricted mode */
value32 = exec_vmread(VMX_PROC_VM_EXEC_CONTROLS2);
value32 |= (VMX_PROCBASED_CTLS2_EPT |
VMX_PROCBASED_CTLS2_RDTSCP);
exec_vmwrite(VMX_PROC_VM_EXEC_CONTROLS2, value32);
pr_dbg("VMX_PROC_VM_EXEC_CONTROLS2: 0x%x ", value32);
/* Set up EFER */ /* Set up EFER */
value64 = exec_vmread64(VMX_GUEST_IA32_EFER_FULL); value64 = exec_vmread64(VMX_GUEST_IA32_EFER_FULL);
value64 |= (MSR_IA32_EFER_SCE_BIT | value64 |= (MSR_IA32_EFER_SCE_BIT |

View File

@ -910,7 +910,7 @@ static void init_exec_ctrl(struct vcpu *vcpu)
*/ */
value32 = msr_read(MSR_IA32_VMX_PROCBASED_CTLS2); value32 = msr_read(MSR_IA32_VMX_PROCBASED_CTLS2);
value32 |= (VMX_PROCBASED_CTLS2_EPT | value32 |= (VMX_PROCBASED_CTLS2_EPT |
/* VMX_PROCBASED_CTLS2_RDTSCP | */ VMX_PROCBASED_CTLS2_RDTSCP |
VMX_PROCBASED_CTLS2_UNRESTRICT); VMX_PROCBASED_CTLS2_UNRESTRICT);
if (is_vapic_supported()) { if (is_vapic_supported()) {