RE: [PATCH V3 5/9] x86/hyperv: Use vmmcall to implement Hyper-V hypercall in sev-snp enlightened guest

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Tianyu Lan <ltykernel@xxxxxxxxx> Sent: Wednesday, July 26, 2023 6:47 AM
> 
> On 7/26/2023 11:44 AM, Michael Kelley (LINUX) wrote:
> >> diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h
> >> index 2fa38e9f6207..025eda129d99 100644
> >> --- a/arch/x86/include/asm/mshyperv.h
> >> +++ b/arch/x86/include/asm/mshyperv.h
> >> @@ -64,12 +64,12 @@ static inline u64 hv_do_hypercall(u64 control, void *input,
> void *output)
> >>   	if (!hv_hypercall_pg)
> >>   		return U64_MAX;
> >>
> >> -	__asm__ __volatile__("mov %4, %%r8\n"
> >> -			     CALL_NOSPEC
> >> +	__asm__ __volatile__("mov %[output], %%r8\n"
> >> +			     ALTERNATIVE("vmmcall", CALL_NOSPEC, X86_FEATURE_SEV_ES)
> > Since this code is for SEV-SNP, what's the thinking behind using
> > X86_FEATURE_SEV_ES in the ALTERNATIVE statements?   Don't you need
> > to use X86_FEATURE_SEV_SNP (which is being added in another patch set that
> > Boris Petkov pointed out).
> 
> Hi Michael:
> 	Thanks for your review. The patch mentioned by Boris has not been
> merged and so still use X86_FEATURE_SEV_ES here. We may replace the
> feature flag with X86_FEATURE_SEV_SNP after it's upstreamed.
> 

Just so I'm clear, is it true that in an SEV-SNP VM, the CPUID flags for
SEV-ES *and* SEV-SNP are set?  That would seem to be necessary for
your approach to work.

I wonder if it would be better to take the patch from Brijesh Singh
that adds X86_FEATURE_SEV_SNP and add it to your patch set (with
Brijesh's agreement, of course).  That patch is small and straightforward.

> >
> > Also, does this patch depend on Peter Zijlstra's patch to support nested
> > ALTERNATIVE statements?  If so, that needs to be called out, probably in
> > the cover letter.  Peter's patch doesn't yet appear in linux-next.
> >
> 
> It may work without Peterz's patch. Please see
> https://lkml.org/lkml/2023/6/27/520
> Peterz's patch optimizes ALTERNATIVE_n implementation with nested
> expression.

OK, good.

Michael




[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux