RE: [Patch v3 07/14] x86/hyperv: Change vTOM handling to use standard coco mechanisms

From: Michael Kelley (LINUX)
Date: Mon Nov 28 2022 - 20:15:50 EST


From: Borislav Petkov <bp@xxxxxxxxx> Sent: Monday, November 28, 2022 11:57 AM
>
> On Mon, Nov 28, 2022 at 05:55:11PM +0000, Michael Kelley (LINUX) wrote:
> > But vendor AMD effectively offers two different encryption schemes that
> > could be seen by the guest VM. The hypervisor chooses which scheme a
> > particular guest will see. Hyper-V has chosen to present the vTOM scheme
> > to guest VMs, including normal Linux and Windows guests, that have been
> > modestly updated to understand vTOM.
>
> If this is a standard SNP guest then you can detect vTOM support using
> SEV_FEATURES. See this thread here:
>
> https://lore.kernel.org/all/20221117044433.244656-1-nikunj@xxxxxxx/
>
> Which then means, you don't need any special gunk except extending this
> patch above to check SNP has vTOM support.

Yes, we could do that. But this patch set is still needed to get the preliminaries
in place. The initial code for supporting AMD vTOM that went upstream a
year ago is too Hyper-V specific. This patch set removes the Hyper-V specific
stuff, and integrates vTOM support into the overall confidential computing
framework in arch/x86/coco/core.c. The Hyper-V code was already somewhat
there via CC_VENDOR_HYPERV, but that really should be named something
else now. So that's why I'm suggesting CC_VENDOR_AMD_VTOM.

>
> > In the future, Hyper-V may also choose to present original AMD C-bit scheme
> > in some guest VMs, depending on the use case. And it will present the Intel
> > TDX scheme when running on that hardware.
>
> And all those should JustWork(tm) because we already support such guests.

Agreed. That's where we want to be.

Of course, when you go from N=1 hypervisors (i.e., KVM) to N=2 (KVM
and Hyper-V, you find some places where incorrect assumptions were made
or some generalizations are needed. Dexuan Cui's patch set for TDX support
is fixing those places that he has encountered. But with those fixes, the TDX
support will JustWork(tm) for Linux guests on Hyper-V.

I haven't gone deeply into the situation with AMD C-bit support on Hyper-V.
Tianyu Lan's set of patches for that support is a bit bigger, and I'm
planning to look closely to understand whether it's also just fixing incorrect
assumptions and such, or whether they really are some differences with
Hyper-V. If there are differences, I want to understand why.

Michael