Re: [PATCH v2 0/4] Add guest support for SEV live migration.

From: Ashish Kalra
Date: Fri Apr 30 2021 - 03:19:40 EST


Hello Boris, Paolo,

Do you have additional comments, feedback on this updated patchset ?

Thanks,
Ashish

On Fri, Apr 23, 2021 at 03:57:37PM +0000, Ashish Kalra wrote:
> From: Ashish Kalra <ashish.kalra@xxxxxxx>
>
> The series adds guest support for SEV live migration.
>
> The patch series introduces a new hypercall. The guest OS can use this
> hypercall to notify the page encryption status. If the page is encrypted
> with guest specific-key then we use SEV command during the migration.
> If page is not encrypted then fallback to default.
>
> This section descibes how the SEV live migration feature is negotiated
> between the host and guest, the host indicates this feature support via
> KVM_FEATURE_CPUID. The guest firmware (OVMF) detects this feature and
> sets a UEFI enviroment variable indicating OVMF support for live
> migration, the guest kernel also detects the host support for this
> feature via cpuid and in case of an EFI boot verifies if OVMF also
> supports this feature by getting the UEFI enviroment variable and if it
> set then enables live migration feature on host by writing to a custom
> MSR, if not booted under EFI, then it simply enables the feature by
> again writing to the custom MSR.
>
> Changes since v1:
> - Avoid having an SEV specific variant of kvm_hypercall3() and instead
> invert the default to VMMCALL.
>
> Ashish Kalra (3):
> KVM: x86: invert KVM_HYPERCALL to default to VMMCALL
> EFI: Introduce the new AMD Memory Encryption GUID.
> x86/kvm: Add guest support for detecting and enabling SEV Live
> Migration feature.
>
> Brijesh Singh (1):
> mm: x86: Invoke hypercall when page encryption status is changed
>
> arch/x86/include/asm/kvm_para.h | 2 +-
> arch/x86/include/asm/mem_encrypt.h | 4 +
> arch/x86/include/asm/paravirt.h | 6 ++
> arch/x86/include/asm/paravirt_types.h | 2 +
> arch/x86/include/asm/set_memory.h | 2 +
> arch/x86/kernel/kvm.c | 106 ++++++++++++++++++++++++++
> arch/x86/kernel/paravirt.c | 1 +
> arch/x86/mm/mem_encrypt.c | 72 ++++++++++++++---
> arch/x86/mm/pat/set_memory.c | 7 ++
> include/linux/efi.h | 1 +
> 10 files changed, 193 insertions(+), 10 deletions(-)
>
> --
> 2.17.1
>