回复: [edk2-devel] [PATCH 1/1] OvmfPkg/FvbServicesSmm: use the VmgExitLibNull

gaoliming gaoliming at byosoft.com.cn
Wed Feb 16 05:54:36 UTC 2022


Jiewen:
  I agree to merge this patch for this stable tag 202202. Can you create PR
for it?

Thanks
Liming
> -----邮件原件-----
> 发件人: devel at edk2.groups.io <devel at edk2.groups.io> 代表 Yao, Jiewen
> 发送时间: 2022年2月16日 10:55
> 收件人: devel at edk2.groups.io; Yao, Jiewen <jiewen.yao at intel.com>; Brijesh
> Singh <brijesh.singh at amd.com>
> 抄送: James Bottomley <jejb at linux.ibm.com>; Xu, Min M
> <min.m.xu at intel.com>; Tom Lendacky <thomas.lendacky at amd.com>;
> Justen, Jordan L <jordan.l.justen at intel.com>; Ard Biesheuvel
> <ardb+tianocore at kernel.org>; Aktas, Erdem <erdemaktas at google.com>;
> Michael Roth <Michael.Roth at amd.com>; Gerd Hoffmann
> <kraxel at redhat.com>; Aaron Young <aaron.young at oracle.com>; Dann
> Frazier <dann.frazier at canonical.com>; Gao, Liming
> <gaoliming at byosoft.com.cn>
> 主题: Re: [edk2-devel] [PATCH 1/1] OvmfPkg/FvbServicesSmm: use the
> VmgExitLibNull
> 
> + Liming
> 
> Since it is an issue https://bugzilla.tianocore.org/show_bug.cgi?id=3835
in
> RC1, I assume we need merge it soon.
> 
> Please double confirm.
> 
> Thank you
> Yao, Jiewen
> 
> 
> > -----Original Message-----
> > From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of Yao,
> Jiewen
> > Sent: Wednesday, February 16, 2022 10:52 AM
> > To: Brijesh Singh <brijesh.singh at amd.com>; devel at edk2.groups.io
> > Cc: James Bottomley <jejb at linux.ibm.com>; Xu, Min M
> <min.m.xu at intel.com>;
> > Tom Lendacky <thomas.lendacky at amd.com>; Justen, Jordan L
> > <jordan.l.justen at intel.com>; Ard Biesheuvel <ardb+tianocore at kernel.org>;
> > Aktas, Erdem <erdemaktas at google.com>; Michael Roth
> > <Michael.Roth at amd.com>; Gerd Hoffmann <kraxel at redhat.com>; Aaron
> > Young <aaron.young at oracle.com>; Dann Frazier
> > <dann.frazier at canonical.com>; Michael Roth <michael.roth at amd.com>
> > Subject: Re: [edk2-devel] [PATCH 1/1] OvmfPkg/FvbServicesSmm: use the
> > VmgExitLibNull
> >
> > Reviewed-by: Jiewen Yao <Jiewen.yao at intel.com>
> >
> > > -----Original Message-----
> > > From: Brijesh Singh <brijesh.singh at amd.com>
> > > Sent: Tuesday, February 15, 2022 11:17 PM
> > > To: devel at edk2.groups.io
> > > Cc: James Bottomley <jejb at linux.ibm.com>; Xu, Min M
> > <min.m.xu at intel.com>;
> > > Yao, Jiewen <jiewen.yao at intel.com>; Tom Lendacky
> > > <thomas.lendacky at amd.com>; Justen, Jordan L
> <jordan.l.justen at intel.com>;
> > > Ard Biesheuvel <ardb+tianocore at kernel.org>; Aktas, Erdem
> > > <erdemaktas at google.com>; Michael Roth <Michael.Roth at amd.com>;
> Gerd
> > > Hoffmann <kraxel at redhat.com>; Brijesh Singh <brijesh.singh at amd.com>;
> > > Aaron Young <aaron.young at oracle.com>; Dann Frazier
> > > <dann.frazier at canonical.com>; Michael Roth <michael.roth at amd.com>
> > > Subject: [PATCH 1/1] OvmfPkg/FvbServicesSmm: use the VmgExitLibNull
> > >
> > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3835
> > >
> > > 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, so
> > > 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 <aaron.young at oracle.com>
> > > Cc: Dann Frazier <dann.frazier at canonical.com>
> > > Cc: Michael Roth <michael.roth at amd.com>
> > > Cc: James Bottomley <jejb at linux.ibm.com>
> > > Cc: Min Xu <min.m.xu at intel.com>
> > > Cc: Jiewen Yao <jiewen.yao at intel.com>
> > > Cc: Tom Lendacky <thomas.lendacky at amd.com>
> > > Cc: Jordan Justen <jordan.l.justen at intel.com>
> > > Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
> > > Cc: Erdem Aktas <erdemaktas at google.com>
> > > Cc: Gerd Hoffmann <kraxel at redhat.com>
> > > Signed-off-by: Brijesh Singh <brijesh.singh at amd.com>
> > > ---
> > >  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 {
> > > +    <LibraryClasses>
> > > +    VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf
> > > +  }
> > >
> >
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
> > >    MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
> > >      <LibraryClasses>
> > > 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 {
> > > +    <LibraryClasses>
> > > +    VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf
> > > +  }
> > >
> >
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
> > >    MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
> > >      <LibraryClasses>
> > > 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 {
> > > +    <LibraryClasses>
> > > +    VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf
> > > +  }
> > >
> >
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
> > >    MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
> > >      <LibraryClasses>
> > > 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 {
> > > +    <LibraryClasses>
> > > +    VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf
> > > +  }
> > >
> >
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
> > >    MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
> > >      <LibraryClasses>
> > > --
> > > 2.25.1
> >
> >
> >
> >
> >
> 
> 
> 
> 
> 





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86693): https://edk2.groups.io/g/devel/message/86693
Mute This Topic: https://groups.io/mt/89180376/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list