From: "Lendacky, Thomas" <thomas.lendacky@amd.com>
To: Min Xu <min.m.xu@intel.com>, devel@edk2.groups.io
Cc: Eric Dong <eric.dong@intel.com>, Ray Ni <ray.ni@intel.com>,
Brijesh Singh <brijesh.singh@amd.com>,
Erdem Aktas <erdemaktas@google.com>,
Gerd Hoffmann <kraxel@redhat.com>,
James Bottomley <jejb@linux.ibm.com>,
Jiewen Yao <jiewen.yao@intel.com>
Subject: Re: [PATCH 3/8] UefiCpuPkg: Use CcExitLib instead of VmgExitLib
Date: Wed, 2 Nov 2022 08:49:45 -0500 [thread overview]
Message-ID: <27b41d62-5e0c-16e0-74b1-4f9fe6491832@amd.com> (raw)
In-Reply-To: <20221102051050.852-4-min.m.xu@intel.com>
On 11/2/22 00:10, Min Xu wrote:
> From: Min M Xu <min.m.xu@intel.com>
>
> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4123
>
> VmgExitLib once was designed to provide interfaces to support #VC handler
> and issue VMGEXIT instruction. After TDVF (enable TDX feature in OVMF) is
> introduced, this library is updated to support #VE as well. Now the name
> of VmgExitLib cannot reflect what the lib does. So VmgExitLib is replaced
> by CcExitLib.
I get a build failure when building this patch:
build.py...
/root/kernels/ovmf-build-X64/OvmfPkg/OvmfPkgX64.dsc(...): error 4000: Instance of library class [CcExitLib] is not found
in [/root/kernels/ovmf-build-X64/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf] [X64]
consumed by module [/root/kernels/ovmf-build-X64/OvmfPkg/Sec/SecMain.inf]
- Failed -
Thanks,
Tom
>
> Cc: Eric Dong <eric.dong@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Brijesh Singh <brijesh.singh@amd.com>
> Cc: Erdem Aktas <erdemaktas@google.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: James Bottomley <jejb@linux.ibm.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Tom Lendacky <thomas.lendacky@amd.com>
> Signed-off-by: Min Xu <min.m.xu@intel.com>
> ---
> .../DxeCpuExceptionHandlerLib.inf | 2 +-
> .../PeiCpuExceptionHandlerLib.inf | 2 +-
> .../CpuExceptionHandlerLib/PeiDxeSmmCpuException.c | 6 +++---
> .../CpuExceptionHandlerLib/SecPeiCpuException.c | 6 +++---
> .../SecPeiCpuExceptionHandlerLib.inf | 2 +-
> .../SmmCpuExceptionHandlerLib.inf | 2 +-
> .../Xcode5SecPeiCpuExceptionHandlerLib.inf | 2 +-
> UefiCpuPkg/Library/MpInitLib/AmdSev.c | 10 +++++-----
> UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 2 +-
> UefiCpuPkg/Library/MpInitLib/DxeMpLib.c | 8 ++++----
> UefiCpuPkg/Library/MpInitLib/MpLib.c | 2 +-
> UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 2 +-
> UefiCpuPkg/Library/MpInitLib/X64/AmdSev.c | 10 +++++-----
> UefiCpuPkg/UefiCpuPkg.dsc | 2 ++
> 14 files changed, 30 insertions(+), 28 deletions(-)
>
> diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
> index e7a81bebdb13..d0f82095cf92 100644
> --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
> +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
> @@ -60,4 +60,4 @@
> PeCoffGetEntryPointLib
> MemoryAllocationLib
> DebugLib
> - VmgExitLib
> + CcExitLib
> diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf b/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf
> index 7c2ec3b2db4c..5339f8e60404 100644
> --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf
> +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf
> @@ -52,7 +52,7 @@
> HobLib
> MemoryAllocationLib
> SynchronizationLib
> - VmgExitLib
> + CcExitLib
>
> [Pcd]
> gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard # CONSUMES
> diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiDxeSmmCpuException.c b/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiDxeSmmCpuException.c
> index a7d0897ef1f9..748cf8d3bfc6 100644
> --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiDxeSmmCpuException.c
> +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiDxeSmmCpuException.c
> @@ -7,7 +7,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
> **/
>
> #include <Library/DebugLib.h>
> -#include <Library/VmgExitLib.h>
> +#include <Library/CcExitLib.h>
> #include "CpuExceptionCommon.h"
>
> /**
> @@ -40,7 +40,7 @@ CommonExceptionHandlerWorker (
> // On other - ExceptionType contains (possibly new) exception
> // value
> //
> - Status = VmgExitHandleVc (&ExceptionType, SystemContext);
> + Status = CcExitHandleVc (&ExceptionType, SystemContext);
> if (!EFI_ERROR (Status)) {
> return;
> }
> @@ -57,7 +57,7 @@ CommonExceptionHandlerWorker (
> // On other - ExceptionType contains (possibly new) exception
> // value
> //
> - Status = VmTdExitHandleVe (&ExceptionType, SystemContext);
> + Status = CcExitHandleVe (&ExceptionType, SystemContext);
> if (!EFI_ERROR (Status)) {
> return;
> }
> diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuException.c b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuException.c
> index ad5e0e9ed4f1..497cd1649930 100644
> --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuException.c
> +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuException.c
> @@ -7,7 +7,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
> **/
>
> #include <PiPei.h>
> -#include <Library/VmgExitLib.h>
> +#include <Library/CcExitLib.h>
> #include "CpuExceptionCommon.h"
>
> CONST UINTN mDoFarReturnFlag = 0;
> @@ -39,7 +39,7 @@ CommonExceptionHandler (
> // On other - ExceptionType contains (possibly new) exception
> // value
> //
> - Status = VmgExitHandleVc (&ExceptionType, SystemContext);
> + Status = CcExitHandleVc (&ExceptionType, SystemContext);
> if (!EFI_ERROR (Status)) {
> return;
> }
> @@ -57,7 +57,7 @@ CommonExceptionHandler (
> // On other - ExceptionType contains (possibly new) exception
> // value
> //
> - Status = VmTdExitHandleVe (&ExceptionType, SystemContext);
> + Status = CcExitHandleVe (&ExceptionType, SystemContext);
> if (!EFI_ERROR (Status)) {
> return;
> }
> diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf
> index 6a170286c8fc..df44371fe018 100644
> --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf
> +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf
> @@ -48,7 +48,7 @@
> PrintLib
> LocalApicLib
> PeCoffGetEntryPointLib
> - VmgExitLib
> + CcExitLib
>
> [Pcd]
> gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard
> diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf
> index 9dde07612a04..8f8a5dab7930 100644
> --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf
> +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf
> @@ -51,7 +51,7 @@
> LocalApicLib
> PeCoffGetEntryPointLib
> DebugLib
> - VmgExitLib
> + CcExitLib
>
> [Pcd]
> gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard
> diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf
> index 6d2f66504a5b..619b39d7f1de 100644
> --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf
> +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf
> @@ -53,7 +53,7 @@
> PrintLib
> LocalApicLib
> PeCoffGetEntryPointLib
> - VmgExitLib
> + CcExitLib
>
> [Pcd]
> gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard
> diff --git a/UefiCpuPkg/Library/MpInitLib/AmdSev.c b/UefiCpuPkg/Library/MpInitLib/AmdSev.c
> index 4e4c63a52de4..9af108fcb5ff 100644
> --- a/UefiCpuPkg/Library/MpInitLib/AmdSev.c
> +++ b/UefiCpuPkg/Library/MpInitLib/AmdSev.c
> @@ -8,7 +8,7 @@
> **/
>
> #include "MpLib.h"
> -#include <Library/VmgExitLib.h>
> +#include <Library/CcExitLib.h>
>
> /**
> Get Protected mode code segment with 16-bit default addressing
> @@ -209,7 +209,7 @@ SevEsPlaceApHlt (
> Msr.GhcbPhysicalAddress = AsmReadMsr64 (MSR_SEV_ES_GHCB);
> Ghcb = Msr.Ghcb;
>
> - VmgInit (Ghcb, &InterruptState);
> + CcExitLibVmgInit (Ghcb, &InterruptState);
>
> if (DoDecrement) {
> DoDecrement = FALSE;
> @@ -221,13 +221,13 @@ SevEsPlaceApHlt (
> InterlockedDecrement ((UINT32 *)&CpuMpData->MpCpuExchangeInfo->NumApsExecuting);
> }
>
> - Status = VmgExit (Ghcb, SVM_EXIT_AP_RESET_HOLD, 0, 0);
> + Status = CcExitLibVmgExit (Ghcb, SVM_EXIT_AP_RESET_HOLD, 0, 0);
> if ((Status == 0) && (Ghcb->SaveArea.SwExitInfo2 != 0)) {
> - VmgDone (Ghcb, InterruptState);
> + CcExitLibVmgDone (Ghcb, InterruptState);
> break;
> }
>
> - VmgDone (Ghcb, InterruptState);
> + CcExitLibVmgDone (Ghcb, InterruptState);
> }
>
> //
> diff --git a/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf b/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
> index e1cd0b350008..cd07de3a3c0b 100644
> --- a/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
> +++ b/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
> @@ -54,7 +54,7 @@
> DebugAgentLib
> SynchronizationLib
> PcdLib
> - VmgExitLib
> + CcExitLib
> MicrocodeLib
>
> [Protocols]
> diff --git a/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c b/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c
> index 78cc3e2b93fd..8c7a131a0a3f 100644
> --- a/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c
> +++ b/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c
> @@ -12,7 +12,7 @@
> #include <Library/UefiBootServicesTableLib.h>
> #include <Library/DebugAgentLib.h>
> #include <Library/DxeServicesTableLib.h>
> -#include <Library/VmgExitLib.h>
> +#include <Library/CcExitLib.h>
> #include <Register/Amd/Fam17Msr.h>
> #include <Register/Amd/Ghcb.h>
>
> @@ -222,9 +222,9 @@ GetSevEsAPMemory (
> Msr.GhcbPhysicalAddress = AsmReadMsr64 (MSR_SEV_ES_GHCB);
> Ghcb = Msr.Ghcb;
>
> - VmgInit (Ghcb, &InterruptState);
> - VmgExit (Ghcb, SVM_EXIT_AP_JUMP_TABLE, 0, (UINT64)(UINTN)StartAddress);
> - VmgDone (Ghcb, InterruptState);
> + CcExitLibVmgInit (Ghcb, &InterruptState);
> + CcExitLibVmgExit (Ghcb, SVM_EXIT_AP_JUMP_TABLE, 0, (UINT64)(UINTN)StartAddress);
> + CcExitLibVmgDone (Ghcb, InterruptState);
>
> return (UINTN)StartAddress;
> }
> diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c
> index 1c053f87a4c6..e5dc852ed95f 100644
> --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
> +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
> @@ -9,7 +9,7 @@
> **/
>
> #include "MpLib.h"
> -#include <Library/VmgExitLib.h>
> +#include <Library/CcExitLib.h>
> #include <Register/Amd/Fam17Msr.h>
> #include <Register/Amd/Ghcb.h>
>
> diff --git a/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf b/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf
> index 5facf4db9499..afd551bb0f64 100644
> --- a/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf
> +++ b/UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf
> @@ -53,7 +53,7 @@
> SynchronizationLib
> PeiServicesLib
> PcdLib
> - VmgExitLib
> + CcExitLib
> MicrocodeLib
>
> [Pcd]
> diff --git a/UefiCpuPkg/Library/MpInitLib/X64/AmdSev.c b/UefiCpuPkg/Library/MpInitLib/X64/AmdSev.c
> index a3cd377ef600..933f765f3f5e 100644
> --- a/UefiCpuPkg/Library/MpInitLib/X64/AmdSev.c
> +++ b/UefiCpuPkg/Library/MpInitLib/X64/AmdSev.c
> @@ -9,7 +9,7 @@
> **/
>
> #include "MpLib.h"
> -#include <Library/VmgExitLib.h>
> +#include <Library/CcExitLib.h>
> #include <Register/Amd/Fam17Msr.h>
> #include <Register/Amd/Ghcb.h>
>
> @@ -150,16 +150,16 @@ SevSnpCreateSaveArea (
> Msr.GhcbPhysicalAddress = AsmReadMsr64 (MSR_SEV_ES_GHCB);
> Ghcb = Msr.Ghcb;
>
> - VmgInit (Ghcb, &InterruptState);
> + CcExitLibVmgInit (Ghcb, &InterruptState);
> Ghcb->SaveArea.Rax = SaveArea->SevFeatures;
> - VmgSetOffsetValid (Ghcb, GhcbRax);
> - VmgExitStatus = VmgExit (
> + CcExitLibVmgSetOffsetValid (Ghcb, GhcbRax);
> + VmgExitStatus = CcExitLibVmgExit (
> Ghcb,
> SVM_EXIT_SNP_AP_CREATION,
> ExitInfo1,
> ExitInfo2
> );
> - VmgDone (Ghcb, InterruptState);
> + CcExitLibVmgDone (Ghcb, InterruptState);
>
> ASSERT (VmgExitStatus == 0);
> if (VmgExitStatus != 0) {
> diff --git a/UefiCpuPkg/UefiCpuPkg.dsc b/UefiCpuPkg/UefiCpuPkg.dsc
> index 0e1a99ddc09f..57c74ba844d2 100644
> --- a/UefiCpuPkg/UefiCpuPkg.dsc
> +++ b/UefiCpuPkg/UefiCpuPkg.dsc
> @@ -60,6 +60,7 @@
> PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
> TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
> VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf
> + CcExitLib|UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf
> MicrocodeLib|UefiCpuPkg/Library/MicrocodeLib/MicrocodeLib.inf
> SmmCpuRendezvousLib|UefiCpuPkg/Library/SmmCpuRendezvousLib/SmmCpuRendezvousLib.inf
> CpuPageTableLib|UefiCpuPkg/Library/CpuPageTableLib/CpuPageTableLib.inf
> @@ -164,6 +165,7 @@
> UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLibStm.inf
> UefiCpuPkg/Library/SmmCpuFeaturesLib/StandaloneMmCpuFeaturesLib.inf
> UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf
> + UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf
> UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPei.inf
> UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationSmm.inf
> UefiCpuPkg/SecCore/SecCore.inf
next prev parent reply other threads:[~2022-11-02 13:49 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-02 5:10 [PATCH 0/8] Rename VmgExitLib to CcExitLib Min Xu
2022-11-02 5:10 ` [PATCH 1/8] UefiCpuPkg: Add CcExitLib Min Xu
2022-11-02 5:10 ` [PATCH 2/8] OvmfPkg: " Min Xu
2022-11-02 5:10 ` [PATCH 3/8] UefiCpuPkg: Use CcExitLib instead of VmgExitLib Min Xu
2022-11-02 13:17 ` Lendacky, Thomas
2022-11-02 13:20 ` Lendacky, Thomas
2022-11-02 13:49 ` Lendacky, Thomas [this message]
2022-11-03 1:11 ` [edk2-devel] " Min Xu
2022-11-02 5:10 ` [PATCH 4/8] UefiPayloadPkg: " Min Xu
2022-11-02 5:28 ` Lu, James
2022-11-02 5:31 ` Guo, Gua
2022-11-03 14:10 ` Guo Dong
2022-11-02 5:10 ` [PATCH 5/8] OvmfPkg: " Min Xu
2022-11-02 5:10 ` [PATCH 6/8] OvmfPkg: Delete VmgExitLib Min Xu
2022-11-02 5:10 ` [PATCH 7/8] UefiCpuPkg: " Min Xu
2022-11-02 5:10 ` [PATCH 8/8] Maintainers: Update the VmgExitLib to CcExitLib Min Xu
2022-11-02 16:38 ` Michael D Kinney
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=27b41d62-5e0c-16e0-74b1-4f9fe6491832@amd.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