Re: [PATCH] KVM: vmx: Fix the broken usage of vmx_xsaves_supported

From: Xiaoyao Li
Date: Thu Jun 20 2019 - 05:00:30 EST


On 6/20/2019 4:17 PM, Paolo Bonzini wrote:
On 20/06/19 08:46, Xiaoyao Li wrote:

It depends on whether or not processors support the 1-setting instead
of âenable XSAVES/XRSTORSâ is 1 in VM-exection control field. Anyway,

Yes, whether this field exist or not depends on whether processors
support the 1-setting.

But if "enable XSAVES/XRSTORS" is clear to 0, XSS_EXIT_BITMAP doesn't
work. I think in this case, there is no need to set this vmcs field?

vmx->secondary_exec_control can change; you are making the code more
complex by relying on the value of the field at the point of vmx_vcpu_setup.

At this point. Agreed. It's harmless to set a default value.

I do _think_ your version is incorrect, because at this point CPUID has
not been initialized yet and therefore
vmx_compute_secondary_exec_control has not set SECONDARY_EXEC_XSAVES.

SECONDARY_EXEC_XSAVES is in the opt when setup_vmcs_config, and vmx_compute_secondary_exec_control() is to clear SECONDARY_EXEC_XSAVES based on guest cpuid.

However I may be wrong because I didn't review the code very closely:
the old code is obvious and so there is no point in changing it.

you mean this part about XSS_EXIT_BITMAP? how about the other part in vmx_set/get_msr() in this patch?

Paolo