Re: [PATCH 4/8] kvm: vmx: Set IBPB when running a different VCPU

From: Wanpeng Li
Date: Thu Jan 11 2018 - 20:50:28 EST


2018-01-09 20:03 GMT+08:00 Paolo Bonzini <pbonzini@xxxxxxxxxx>:
>
> if (!already_loaded) {
> @@ -4029,6 +4031,13 @@ static void free_loaded_vmcs(struct loaded_vmcs *loaded_vmcs)
> free_vmcs(loaded_vmcs->vmcs);
> loaded_vmcs->vmcs = NULL;
> WARN_ON(loaded_vmcs->shadow_vmcs != NULL);
> +
> + /*
> + * The VMCS could be recycled, causing a false negative in
> + * vmx_vcpu_load; block speculative execution.
> + */
> + if (have_spec_ctrl)
> + wrmsrl(MSR_IA32_PRED_CMD, PRED_CMD_IBPB);
> }

Intel guys told us the recycle is about the address of vmcs, not the
content. Could you explain more why it matters?

Regards,
Wanpeng Li