Message ID | cover.1619193043.git.ashish.kalra@amd.com (mailing list archive) |
---|---|
Headers | show |
Series | Add guest support for SEV live migration. | expand |
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@amd.com> > > 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 >
On 30/04/21 09:19, Ashish Kalra wrote: > Hello Boris, Paolo, > > Do you have additional comments, feedback on this updated patchset ? Just a small one that the guest ABI isn't finished yet; some #defines are going to change names and there will be two separate CPUIDs, one for the hypercall and one for the MSR. It would be nice to provide correct encryption status even if the migration MSR is not there, because it can be useful for debugging. Paolo > Thanks, > Ashish > > On Fri, Apr 23, 2021 at 03:57:37PM +0000, Ashish Kalra wrote: >> From: Ashish Kalra <ashish.kalra@amd.com> >> >> 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 >> >
From: Ashish Kalra <ashish.kalra@amd.com> 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(-)