Messages in this thread | | | Date | Thu, 20 Jan 2022 14:32:50 +0000 | Subject | Re: [PATCH 4/9] KVM: SVM: Explicitly require DECODEASSISTS to enable SEV support | From | Liam Merwick <> |
| |
On 20/01/2022 01:07, Sean Christopherson wrote: > Add a sanity check on DECODEASSIST being support if SEV is supported, as
"DECODEASSISTS being supported" or "DECODEASSISTS support"
> KVM cannot read guest private memory and thus relies on the CPU to > provide the instruction byte stream on #NPF for emulation. The intent of > the check is to document the dependency, it should never fail in practice > as producing hardware that supports SEV but not DECODEASSISTS would be > non-sensical. > > Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
> --- > arch/x86/kvm/svm/sev.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c > index 6a22798eaaee..17b53457d866 100644 > --- a/arch/x86/kvm/svm/sev.c > +++ b/arch/x86/kvm/svm/sev.c > @@ -2100,8 +2100,13 @@ void __init sev_hardware_setup(void) > if (!sev_enabled || !npt_enabled) > goto out; > > - /* Does the CPU support SEV? */ > - if (!boot_cpu_has(X86_FEATURE_SEV)) > + /* > + * SEV must obviously be supported in hardware. Sanity check that the > + * CPU supports decode assists, which is mandatory for SEV guests to > + * support instruction emulation. > + */ > + if (!boot_cpu_has(X86_FEATURE_SEV) || > + WARN_ON_ONCE(!boot_cpu_has(X86_FEATURE_DECODEASSISTS))) > goto out; > > /* Retrieve SEV CPUID information */
| |