From: "Yao, Jiewen" <jiewen.yao@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
"ashish.kalra@amd.com" <ashish.kalra@amd.com>
Cc: "dovmurik@linux.vnet.ibm.com" <dovmurik@linux.vnet.ibm.com>,
"brijesh.singh@amd.com" <brijesh.singh@amd.com>,
"tobin@ibm.com" <tobin@ibm.com>,
"Thomas.Lendacky@amd.com" <Thomas.Lendacky@amd.com>,
"jejb@linux.ibm.com" <jejb@linux.ibm.com>,
"Justen, Jordan L" <jordan.l.justen@intel.com>,
"ard.biesheuvel@arm.com" <ard.biesheuvel@arm.com>,
"erdemaktas@google.com" <erdemaktas@google.com>,
"Xu, Min M" <min.m.xu@intel.com>
Subject: Re: [edk2-devel] [PATCH v6 0/6] SEV Live Migration support for OVMF.
Date: Thu, 5 Aug 2021 05:17:15 +0000 [thread overview]
Message-ID: <PH0PR11MB4885EF1D15AF5FC078F9885A8CF29@PH0PR11MB4885.namprd11.prod.outlook.com> (raw)
In-Reply-To: <cover.1627900864.git.ashish.kalra@amd.com>
Hi
I have some questions:
1) May I know what is the usage of this UEFI variable - SevLiveMigrationEnabled?
I only see it is created, but I do not see how it is consumed.
2) Is this a full live migration patch, or is this just a startup and there will be more on the way?
Thank you
Yao Jiewen
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ashish Kalra
> via groups.io
> Sent: Monday, August 2, 2021 8:31 PM
> To: devel@edk2.groups.io
> Cc: dovmurik@linux.vnet.ibm.com; brijesh.singh@amd.com; tobin@ibm.com;
> Thomas.Lendacky@amd.com; jejb@linux.ibm.com; Justen, Jordan L
> <jordan.l.justen@intel.com>; ard.biesheuvel@arm.com;
> erdemaktas@google.com; Yao, Jiewen <jiewen.yao@intel.com>; Xu, Min M
> <min.m.xu@intel.com>
> Subject: [edk2-devel] [PATCH v6 0/6] SEV Live Migration support for OVMF.
>
> From: Ashish Kalra <ashish.kalra@amd.com>
>
> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3467
>
> By default all the SEV guest memory regions are considered encrypted,
> if a guest changes the encryption attribute of the page (e.g mark a
> page as decrypted) then notify hypervisor. Hypervisor will need to
> track the unencrypted pages. The information will be used during
> guest live migration, guest page migration and guest debugging.
>
> The patch-set detects if it is running under KVM hypervisor and then
> checks for SEV live migration feature support via KVM_FEATURE_CPUID,
> if detected setup a new UEFI enviroment variable to indicate OVMF
> support for SEV live migration.
>
> A branch containing these patches is available here:
> https://github.com/ashkalra/edk2-1/tree/sev_live_migration_v5_10
>
> Changes since v5:
> - Split first patch into three components, one patch for the
> MemEncryptSevLiveMigrationIsEnabled() API, one patch for the
> SetMemoryEncDecHypercall3() API, one patch to make use of the
> SetMemoryEncDecHypercall3() API.
> - Fix patch subject, in code and patch comments and
> additionally add relevant comments.
> - Replace SetMemoryEncDecHypercall3() API's Status argument
> with a boolean IsEncrypted argument and corresponding fixes
> to users of this API call.
> - Fix AsciiStrCmp() usage in KVM hypervisor detection code.
>
> Changes since v4:
> - Remove MemEncryptHypercallLib Library and add support to issue
> hypercall in the BaseMemEncryptSevLib library itself.
> - For SEV-ES, make the VC handler hypercall aware by comparing
> the hypercall number and add the additional register values
> in the GHCB.
> - Fix comments in the hypercall API interface.
> - The encryption bit is set/clear on the smallest page size, hence
> use the 4k page size in MAP_GPA_RANGE hypercall.
> - Make the hypercall expect the guest physical address to be
> page-aligned.
> - Add KVM live migration feature flag check in BaseMemEncryptSevLib
> library similar to how BaseMemEncryptSevLib does for the
> MemEncryptSevIsEnabled() and check it before invoking HC. Also
> export the MemEncryptSevLiveMigrationIsEnabled() function as
> part of the library.
> - Add error handling on hypercall return, on failure, return error
> code to caller which potentially will cause an assert() and
> terminate the boot.
>
> Changes since v3:
> - Fix all DSC files under OvmfPkg except X64 to add support for
> BaseMemEncryptLib and add NULL instance of BaseMemEncryptLib
> for 32 bit platforms.
> - Add the MemEncryptHypercallLib-related files to Maintainers.txt,
> in section "OvmfPkg: Confidential Computing".
> - Add support for the new KVM_HC_MAP_GPA_RANGE hypercall interface.
> - Add patch for SEV live migration support.
>
> Changes since v2:
> - GHCB_BASE setup during reset-vector as decrypted is marked explicitly
> in the hypervisor page encryption bitmap after setting the
> PcdSevEsIsEnabled PCD.
>
> Changes since v1:
> - Mark GHCB_BASE setup during reset-vector as decrypted explicitly in
> the hypervisor page encryption bitmap.
> - Resending the series with correct shallow threading.
>
> Ashish Kalra (6):
> OvmfPkg/BaseMemEncryptLib: Detect SEV live migration feature.
> OvmfPkg/BaseMemEncryptLib: Hypercall API for page encryption state
> change
> OvmfPkg/BaseMemEncryptLib: Invoke page encryption state change
> hypercall
> OvmfPkg/VmgExitLib: Encryption state change hypercall support in VC
> handler
> OvmfPkg/PlatformPei: Mark SEC GHCB page as unencrypted via hypercall
> OvmfPkg/AmdSevDxe: Add support for SEV live migration.
>
> OvmfPkg/AmdSevDxe/AmdSevDxe.c | 64 +++++++++++++++++
> OvmfPkg/AmdSevDxe/AmdSevDxe.inf | 4 ++
> OvmfPkg/Include/Guid/AmdSevMemEncryptLib.h | 20 ++++++
> OvmfPkg/Include/Library/MemEncryptSevLib.h | 70 +++++++++++++++++++
> .../DxeMemEncryptSevLib.inf | 1 +
> .../DxeMemEncryptSevLibInternal.c | 39 +++++++++++
> .../Ia32/MemEncryptSevLib.c | 27 +++++++
> .../PeiDxeMemEncryptSevLibInternal.c | 52 ++++++++++++++
> .../PeiMemEncryptSevLib.inf | 1 +
> .../PeiMemEncryptSevLibInternal.c | 39 +++++++++++
> .../SecMemEncryptSevLibInternal.c | 38 ++++++++++
> .../X64/AsmHelperStub.nasm | 33 +++++++++
> .../X64/MemEncryptSevLib.c | 62 ++++++++++++++++
> .../X64/PeiDxeVirtualMemory.c | 20 ++++++
> OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c | 13 ++++
> OvmfPkg/OvmfPkg.dec | 1 +
> OvmfPkg/PlatformPei/AmdSev.c | 11 +++
> 17 files changed, 495 insertions(+)
> create mode 100644 OvmfPkg/Include/Guid/AmdSevMemEncryptLib.h
> create mode 100644
> OvmfPkg/Library/BaseMemEncryptSevLib/X64/AsmHelperStub.nasm
>
> --
> 2.17.1
>
>
>
>
>
next prev parent reply other threads:[~2021-08-05 5:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-02 12:31 [PATCH v6 0/6] SEV Live Migration support for OVMF Ashish Kalra
2021-08-05 5:17 ` Yao, Jiewen [this message]
2021-08-05 10:36 ` [edk2-devel] " Ashish Kalra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=PH0PR11MB4885EF1D15AF5FC078F9885A8CF29@PH0PR11MB4885.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox