Re: [PATCH v2 6/7] selftests: KVM: Add test for BNDCFGS VMX control MSR bits

Paolo Bonzini
2022-02-07T16:47:36Z

On 2/4/22 21:47, Oliver Upton wrote:
> + /*
> + * Test that KVM will set these bits regardless of userspace if the
> + * guest CPUID exposes MPX.
> + */
> + test_vmx_control_msr(vm, MSR_IA32_VMX_TRUE_ENTRY_CTLS, 0,
> + VM_ENTRY_LOAD_BNDCFGS,
> + VM_ENTRY_LOAD_BNDCFGS,
> + 0);
> + test_vmx_control_msr(vm, MSR_IA32_VMX_TRUE_EXIT_CTLS, 0,
> + VM_EXIT_CLEAR_BNDCFGS,
> + VM_EXIT_CLEAR_BNDCFGS,
> + 0);
> +

I wouldn't expect this behavior.

> + /*
> + * Disable the quirk, giving userspace control of the VMX capability
> + * MSRs.
> + */
> + cap.cap = KVM_CAP_DISABLE_QUIRKS;
> + cap.args[0] = KVM_X86_QUIRK_TWEAK_VMX_CTRL_MSRS;
> + vm_enable_cap(vm, &cap);
> +
> + /*
> + * Test that userspace can clear these bits, even if it exposes MPX.
> + */
> + test_vmx_control_msr(vm, MSR_IA32_VMX_TRUE_ENTRY_CTLS, 0,
> + VM_ENTRY_LOAD_BNDCFGS,
> + 0,
> + VM_ENTRY_LOAD_BNDCFGS);
> + test_vmx_control_msr(vm, MSR_IA32_VMX_TRUE_EXIT_CTLS, 0,
> + VM_EXIT_CLEAR_BNDCFGS,
> + 0,
> + VM_EXIT_CLEAR_BNDCFGS);

and likewise I would have expected this one to work without need for a
quirk.

It's also missing a testcase that sets clears MPX and checks that the
BNDCFGS controls disappear, I think.

Paolo