On 2015-03-23 18:01, Bandan Das wrote: > Jan Kiszka <jan.kiszka@xxxxxx> writes: > ... >> --- a/arch/x86/kvm/vmx.c >> +++ b/arch/x86/kvm/vmx.c >> @@ -2467,6 +2467,7 @@ static void nested_vmx_setup_ctls_msrs(struct vcpu_vmx *vmx) >> vmx->nested.nested_vmx_secondary_ctls_low = 0; >> vmx->nested.nested_vmx_secondary_ctls_high &= >> SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES | >> + SECONDARY_EXEC_RDTSCP | >> SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE | >> SECONDARY_EXEC_APIC_REGISTER_VIRT | >> SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY | >> @@ -7510,7 +7511,7 @@ static bool nested_vmx_exit_handled(struct kvm_vcpu *vcpu) >> return nested_cpu_has(vmcs12, CPU_BASED_INVLPG_EXITING); >> case EXIT_REASON_RDPMC: >> return nested_cpu_has(vmcs12, CPU_BASED_RDPMC_EXITING); >> - case EXIT_REASON_RDTSC: >> + case EXIT_REASON_RDTSC: case EXIT_REASON_RDTSCP: >> return nested_cpu_has(vmcs12, CPU_BASED_RDTSC_EXITING); >> case EXIT_REASON_VMCALL: case EXIT_REASON_VMCLEAR: >> case EXIT_REASON_VMLAUNCH: case EXIT_REASON_VMPTRLD: >> @@ -8517,6 +8518,9 @@ static void vmx_cpuid_update(struct kvm_vcpu *vcpu) >> exec_control); >> } >> } >> + if (!vmx->rdtscp_enabled) >> + vmx->nested.nested_vmx_secondary_ctls_high &= >> + ~SECONDARY_EXEC_RDTSCP; > No need to do this if nested is not enabled ? Or just > a "if (nested)" in the prior if else loop should be enough I think. I can add this - but this is far away from being a hotpath. What would be the benefit? Thanks, Jan
Attachment:
signature.asc
Description: OpenPGP digital signature