From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by mx.groups.io with SMTP id smtpd.web11.8612.1644990887057190982 for ; Tue, 15 Feb 2022 21:54:49 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: byosoft.com.cn, ip: 58.240.74.242, mailfrom: gaoliming@byosoft.com.cn) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Wed, 16 Feb 2022 13:54:33 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , , "'Brijesh Singh'" Cc: "'James Bottomley'" , "'Xu, Min M'" , "'Tom Lendacky'" , "'Justen, Jordan L'" , "'Ard Biesheuvel'" , "'Aktas, Erdem'" , "'Michael Roth'" , "'Gerd Hoffmann'" , "'Aaron Young'" , "'Dann Frazier'" References: <20220215151638.1671473-1-brijesh.singh@amd.com> <16D42481B2DB4BF7.16436@groups.io> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIDEvMV0gT3ZtZlBrZy9GdmJTZXJ2aWNlc1NtbTogdXNlIHRoZSBWbWdFeGl0TGliTnVsbA==?= Date: Wed, 16 Feb 2022 13:54:36 +0800 Message-ID: <006c01d822f9$ae3639a0$0aa2ace0$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQIg4d5bezR4/qs3EmkXapXXD1CuuwJ+hXZ7Alu+8r6r3V1AQA== Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Jiewen: I agree to merge this patch for this stable tag 202202. Can you create PR for it? Thanks Liming > -----=D3=CA=BC=FE=D4=AD=BC=FE----- > =B7=A2=BC=FE=C8=CB: devel@edk2.groups.io =B4=FA=B1= =ED Yao, Jiewen > =B7=A2=CB=CD=CA=B1=BC=E4: 2022=C4=EA2=D4=C216=C8=D5 10:55 > =CA=D5=BC=FE=C8=CB: devel@edk2.groups.io; Yao, Jiewen ; Brijesh > Singh > =B3=AD=CB=CD: James Bottomley ; Xu, Min M > ; Tom Lendacky ; > Justen, Jordan L ; Ard Biesheuvel > ; Aktas, Erdem ; > Michael Roth ; Gerd Hoffmann > ; Aaron Young ; Dann > Frazier ; Gao, Liming > > =D6=F7=CC=E2: Re: [edk2-devel] [PATCH 1/1] OvmfPkg/FvbServicesSmm: use th= e > VmgExitLibNull >=20 > + Liming >=20 > Since it is an issue https://bugzilla.tianocore.org/show_bug.cgi?id=3D383= 5 in > RC1, I assume we need merge it soon. >=20 > Please double confirm. >=20 > Thank you > Yao, Jiewen >=20 >=20 > > -----Original Message----- > > From: devel@edk2.groups.io On Behalf Of Yao, > Jiewen > > Sent: Wednesday, February 16, 2022 10:52 AM > > To: Brijesh Singh ; devel@edk2.groups.io > > Cc: James Bottomley ; Xu, Min M > ; > > Tom Lendacky ; Justen, Jordan L > > ; Ard Biesheuvel = ; > > Aktas, Erdem ; Michael Roth > > ; Gerd Hoffmann ; Aaron > > Young ; Dann Frazier > > ; Michael Roth > > Subject: Re: [edk2-devel] [PATCH 1/1] OvmfPkg/FvbServicesSmm: use the > > VmgExitLibNull > > > > Reviewed-by: Jiewen Yao > > > > > -----Original Message----- > > > From: Brijesh Singh > > > Sent: Tuesday, February 15, 2022 11:17 PM > > > To: devel@edk2.groups.io > > > Cc: James Bottomley ; Xu, Min M > > ; > > > Yao, Jiewen ; Tom Lendacky > > > ; Justen, Jordan L > ; > > > Ard Biesheuvel ; Aktas, Erdem > > > ; Michael Roth ; > Gerd > > > Hoffmann ; Brijesh Singh ; > > > Aaron Young ; Dann Frazier > > > ; Michael Roth > > > Subject: [PATCH 1/1] OvmfPkg/FvbServicesSmm: use the VmgExitLibNull > > > > > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3835 > > > > > > The commit ade62c18f4742301bbef474ac10518bde5972fba caused a > boot > > > failure > > > when OVMF is build with SECURE_BOOT/SMM enabled. > > > > > > This happen because the above commit extended the > > > BaseMemEncryptSevLib.inf > > > to include VmgExitLib. The FvbServicesSmm uses the functions provided > > > by the MemEncryptSevLib to clear the memory encryption mask from the > > > page table. It created a dependency, as shown below > > > > > > OvmfPkg/FvbServicesSmm.inf > > > ---> MemEncryptSevLib class > > > ---> "OvmfPkg/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf" > instance > > > ---> VmgExitLib > > > ---> "OvmfPkg/VmgExitLib" instance > > > ---> LocalApicLib class > > > ---> UefiCpuPkg/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf > instance > > > ---> TimerLib class > > > ---> "OvmfPkg/AcpiTimerLib/DxeAcpiTimerLib.inf" > instance > > > ---> PciLib class > > > ---> "OvmfPkg/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf" > instance > > > > > > The LocalApicLib provides a constructor, execution of the constructor > > > causes an exception. The SEV-ES and SEV-SNP do not support the SMM, s= o > > > skip including the VmgExitLib chain. Use the module override to use the > > > VmgExitLibNull to avoid the inclusion of unneeded LocalApicLib > dependency > > > chain in FvbServicesSmm. We ran similar issue for AmdSevDxe driver, > > > see commit 19914edc5a0202cc7830f819ffac7e7b2368166a > > > > > > After the patch, the dependency look like this: > > > > > > OvmfPkg/FvbServicesSmm.inf > > > ---> MemEncryptSevLib class > > > ---> "OvmfPkg/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf" > instance > > > ---> VmgExitLib > > > ---> "UefiCpuPkg/Library/VmgExitLibNull" instance > > > > > > Fixes: ade62c18f4742301bbef474ac10518bde5972fba > > > Reported-by: Aaron Young > > > Cc: Dann Frazier > > > Cc: Michael Roth > > > Cc: James Bottomley > > > Cc: Min Xu > > > Cc: Jiewen Yao > > > Cc: Tom Lendacky > > > Cc: Jordan Justen > > > Cc: Ard Biesheuvel > > > Cc: Erdem Aktas > > > Cc: Gerd Hoffmann > > > Signed-off-by: Brijesh Singh > > > --- > > > OvmfPkg/CloudHv/CloudHvX64.dsc | 5 ++++- > > > OvmfPkg/OvmfPkgIa32.dsc | 5 ++++- > > > OvmfPkg/OvmfPkgIa32X64.dsc | 5 ++++- > > > OvmfPkg/OvmfPkgX64.dsc | 5 ++++- > > > 4 files changed, 16 insertions(+), 4 deletions(-) > > > > > > diff --git a/OvmfPkg/CloudHv/CloudHvX64.dsc > > > b/OvmfPkg/CloudHv/CloudHvX64.dsc > > > index 8ac9227c5f50..3172100310b1 100644 > > > --- a/OvmfPkg/CloudHv/CloudHvX64.dsc > > > +++ b/OvmfPkg/CloudHv/CloudHvX64.dsc > > > @@ -906,7 +906,10 @@ [Components] > > > # > > > # Variable driver stack (SMM) > > > # > > > - OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf > > > + OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf { > > > + > > > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > > > + } > > > > > > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf > > > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf { > > > > > > diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc > > > index 29eea82571c5..85abed24c1a7 100644 > > > --- a/OvmfPkg/OvmfPkgIa32.dsc > > > +++ b/OvmfPkg/OvmfPkgIa32.dsc > > > @@ -956,7 +956,10 @@ [Components] > > > # > > > # Variable driver stack (SMM) > > > # > > > - OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf > > > + OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf { > > > + > > > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > > > + } > > > > > > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf > > > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf { > > > > > > diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc > b/OvmfPkg/OvmfPkgIa32X64.dsc > > > index 56d3c49ab21a..a9c1daecc1a8 100644 > > > --- a/OvmfPkg/OvmfPkgIa32X64.dsc > > > +++ b/OvmfPkg/OvmfPkgIa32X64.dsc > > > @@ -974,7 +974,10 @@ [Components.X64] > > > # > > > # Variable driver stack (SMM) > > > # > > > - OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf > > > + OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf { > > > + > > > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > > > + } > > > > > > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf > > > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf { > > > > > > diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc > > > index f0924c0f9d0a..718399299f57 100644 > > > --- a/OvmfPkg/OvmfPkgX64.dsc > > > +++ b/OvmfPkg/OvmfPkgX64.dsc > > > @@ -971,7 +971,10 @@ [Components] > > > # > > > # Variable driver stack (SMM) > > > # > > > - OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf > > > + OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf { > > > + > > > + VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf > > > + } > > > > > > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf > > > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf { > > > > > > -- > > > 2.25.1 > > > > > > > > > > >=20 >=20 >=20 >=20 >=20