On 31/01/2018 11:50, Jim Mattson wrote: >> + if (to_vmx(vcpu)->save_spec_ctrl_on_exit) { >> + nested_vmx_disable_intercept_for_msr( >> + msr_bitmap_l1, msr_bitmap_l0, >> + MSR_IA32_PRED_CMD, >> + MSR_TYPE_R); >> + } > I don't think this should be predicated on > "to_vmx(vcpu)->save_spec_ctrl_on_exit." Why not just > "guest_cpuid_has(vcpu, X86_FEATURE_IBPB)"? Also, the final argument to > nested_vmx_disable_intercept_for_msr should be MSR_TYPE_W rather than > MSR_TYPE_R. In fact this MSR can even be passed down unconditionally, since it needs no save/restore and has no ill performance effect on the sibling hyperthread. Only MSR_IA32_SPEC_CTRL needs to be conditional on "to_vmx(vcpu)->save_spec_ctrl_on_exit". Paolo