Messages in this thread | | | Date | Wed, 23 Feb 2022 22:09:19 +0800 | From | Tianyu Lan <> | Subject | Re: [PATCH 1/4] x86/hyperv: Add missing ARCH_HAS_CC_PLATFORM dependency |
| |
On 2/23/2022 7:47 PM, Kirill A. Shutemov wrote: > On Wed, Feb 23, 2022 at 07:02:49PM +0800, Tianyu Lan wrote: >> On 2/23/2022 6:56 PM, Borislav Petkov wrote: >>> On Wed, Feb 23, 2022 at 06:43:40PM +0800, Tianyu Lan wrote: >>>> Hyper-V code check cpuid during runtime and there is no Hyper-V >>>> isolation VM option. >>> >>> So how does "Current Hyper-V Isolation VM requires AMD_MEM_ENCRYPT" work >>> exactly? >>> >>> Please explain in detail and not in piecemeal sentences. >>> >> The kernel in the image needs to select AMD_MEM_ENCRYPT option >> otherwise the kernel can't boot up due to missing SEV support and >> sev_es_ghcb_hv_call() always return error. > > If kernel boots under SEV, doesn't it mean we have 'sme_me_mask' > initialized? If it is non zero hv_is_isolation_supported() check in > cc_platform_has() has zero effect as it checked after 'sme_me_mask'. > > I still have no idea what is going on. > > How SEV related to HyperV isolation? How detection happens? Could you > give full picture? >
Hi Kriil: Current Hyper-V Isolation VM is unenlightened VM design. Hyper-V hides SEV capability from Linux guest and expose Hyper-V cpuid to show Hyper-V isolation VM capability. So sme_me_mask is zero in this case because SEV capability cpuid returns not-support. Hyper-V Isolation VM code uses some SEV API sev_es_ghcb_hv_call() to share code and so it's necessary to select AMD_MEM_ENCRYPT option for Hyper-V Isolation VM.
| |