Re: [PATCH 3/9] x86/hyperv: Mark Hyper-V vp assist page unencrypted in SEV-SNP enlightened guest

From: Vitaly Kuznetsov
Date: Tue Jun 06 2023 - 11:50:14 EST


Tianyu Lan <ltykernel@xxxxxxxxx> writes:

> On 6/5/2023 8:13 PM, Vitaly Kuznetsov wrote:
>>> @@ -113,6 +114,11 @@ static int hv_cpu_init(unsigned int cpu)
>>>
>>> }
>>> if (!WARN_ON(!(*hvp))) {
>>> + if (hv_isolation_type_en_snp()) {
>>> + WARN_ON_ONCE(set_memory_decrypted((unsigned long)(*hvp), 1));
>>> + memset(*hvp, 0, PAGE_SIZE);
>>> + }
>> Why do we need to set the page as decrypted here and not when we
>> allocate the page (a few lines above)?
>
> If Linux root partition boots in the SEV-SNP guest, the page still needs
> to be decrypted.
>

I'd suggest we add a flag to indicate that VP assist page was actually
set (on the first invocation of hv_cpu_init() for guest partitions and
all invocations for root partition) and only call
set_memory_decrypted()/memset() then: that would both help with the
potential issue with KVM using enlightened vmcs and avoid the unneeded
hypercall.

--
Vitaly