public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] [PATCH v2 0/9] Add ImagePropertiesRecordLib and Fix MAT Bugs
@ 2023-07-20  0:05 Taylor Beebe
  2023-07-20  0:05 ` [edk2-devel] [PATCH v2 1/9] MdeModulePkg: Add ImagePropertiesRecordLib Taylor Beebe
                   ` (9 more replies)
  0 siblings, 10 replies; 13+ messages in thread
From: Taylor Beebe @ 2023-07-20  0:05 UTC (permalink / raw)
  To: devel
  Cc: Andrew Fish, Ard Biesheuvel, Dandan Bi, Eric Dong, Gerd Hoffmann,
	Guo Dong, Gua Guo, James Lu, Jian J Wang, Jiewen Yao,
	Jordan Justen, Leif Lindholm, Liming Gao, Rahul Kumar, Ray Ni,
	Sami Mujawar, Sean Rhodes

v2:
- A one-line change in patch 3 was moved to patch 9 for correctness.

Reference: https://github.com/tianocore/edk2/pull/4590
Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=4492

The UEFI and SMM MAT logic contains duplicate logic for manipulating image
properties records which is used to track runtime images.
This patch series adds a new library, ImagePropertiesRecordLib,
which consolidates this logic and fixes the bugs which currently exist in
the MAT logic.

The first patch adds the ImagePropertiesRecordLib implementation which
is a copy of the UEFI MAT logic with minor modifications to remove the
reliance on globabl variables and make the code unit testable.

The second patch adds a unit test for the ImagePropertiesRecordLib. The
logic tests various potential layouts of the EFI memory map and runtime
images. 3/4 of these tests will fail which demonstrates the MAT logic
bugs.

The third patch fixes the logic in the ImagePropertiesRecordLib so
that all of the unit tests pass and the MAT logic can be fixed by
using the library.

The remaining patches add library instances to DSC files and remove
the image properties record logic from the SMM and UEFI MAT logic.

Cc: Andrew Fish <afish@apple.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Guo Dong <guo.dong@intel.com>
Cc: Gua Guo <gua.guo@intel.com>
Cc: James Lu <james.lu@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Sean Rhodes <sean@starlabs.systems>
Taylor Beebe (9):
  MdeModulePkg: Add ImagePropertiesRecordLib
  MdeModulePkg: Add ImagePropertiesRecordLib Host-Based Unit Test
  MdeModulePkg: Fix Bugs in MAT Logic
  ArmVirtPkg: Add ImagePropertiesRecordLib Instance
  EmulatorPkg: Add ImagePropertiesRecordLib Instance
  OvmfPkg: Add ImagePropertiesRecordLib Instance
  UefiPayloadPkg: Add ImagePropertiesRecordLib Instance
  UefiCpuPkg: Use Attribute From SMM MemoryAttributesTable if Nonzero
  MdeModulePkg: Update UEFI and SMM MAT Logic To Use
    ImagePropertiesRecordLib

 MdeModulePkg/Core/Dxe/Misc/MemoryAttributesTable.c                                              | 786 +---------------
 MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c                                                   |  24 +-
 MdeModulePkg/Core/PiSmmCore/MemoryAttributesTable.c                                             | 785 +---------------
 MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.c                        | 805 +++++++++++++++++
 MdeModulePkg/Library/ImagePropertiesRecordLib/UnitTest/ImagePropertiesRecordLibUnitTestHost.c   | 938 ++++++++++++++++++++
 UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c                                              |  19 +-
 ArmVirtPkg/ArmVirt.dsc.inc                                                                      |   1 +
 EmulatorPkg/EmulatorPkg.dsc                                                                     |   1 +
 MdeModulePkg/Core/Dxe/DxeMain.h                                                                 |  20 -
 MdeModulePkg/Core/Dxe/DxeMain.inf                                                               |   1 +
 MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf                                                       |   1 +
 MdeModulePkg/Include/Library/ImagePropertiesRecordLib.h                                         | 151 ++++
 MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.inf                      |  28 +
 MdeModulePkg/Library/ImagePropertiesRecordLib/UnitTest/ImagePropertiesRecordLibUnitTestHost.inf |  35 +
 MdeModulePkg/MdeModulePkg.dec                                                                   |   5 +
 MdeModulePkg/MdeModulePkg.dsc                                                                   |   2 +
 MdeModulePkg/Test/MdeModulePkgHostTest.dsc                                                      |   5 +
 OvmfPkg/AmdSev/AmdSevX64.dsc                                                                    |   1 +
 OvmfPkg/Bhyve/BhyveX64.dsc                                                                      |   1 +
 OvmfPkg/CloudHv/CloudHvX64.dsc                                                                  |   1 +
 OvmfPkg/IntelTdx/IntelTdxX64.dsc                                                                |   1 +
 OvmfPkg/Microvm/MicrovmX64.dsc                                                                  |   1 +
 OvmfPkg/OvmfPkgIa32.dsc                                                                         |   1 +
 OvmfPkg/OvmfPkgIa32X64.dsc                                                                      |   1 +
 OvmfPkg/OvmfPkgX64.dsc                                                                          |   1 +
 OvmfPkg/OvmfXen.dsc                                                                             |   1 +
 OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc                                                             |   1 +
 UefiPayloadPkg/UefiPayloadPkg.dsc                                                               |   1 +
 28 files changed, 2039 insertions(+), 1579 deletions(-)
 create mode 100644 MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.c
 create mode 100644 MdeModulePkg/Library/ImagePropertiesRecordLib/UnitTest/ImagePropertiesRecordLibUnitTestHost.c
 create mode 100644 MdeModulePkg/Include/Library/ImagePropertiesRecordLib.h
 create mode 100644 MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.inf
 create mode 100644 MdeModulePkg/Library/ImagePropertiesRecordLib/UnitTest/ImagePropertiesRecordLibUnitTestHost.inf

-- 
2.41.0.windows.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#107066): https://edk2.groups.io/g/devel/message/107066
Mute This Topic: https://groups.io/mt/100246933/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2023-07-21  3:35 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-20  0:05 [edk2-devel] [PATCH v2 0/9] Add ImagePropertiesRecordLib and Fix MAT Bugs Taylor Beebe
2023-07-20  0:05 ` [edk2-devel] [PATCH v2 1/9] MdeModulePkg: Add ImagePropertiesRecordLib Taylor Beebe
2023-07-20  0:05 ` [edk2-devel] [PATCH v2 2/9] MdeModulePkg: Add ImagePropertiesRecordLib Host-Based Unit Test Taylor Beebe
2023-07-20  0:05 ` [edk2-devel] [PATCH v2 3/9] MdeModulePkg: Fix Bugs in MAT Logic Taylor Beebe
2023-07-20  0:05 ` [edk2-devel] [PATCH v2 4/9] ArmVirtPkg: Add ImagePropertiesRecordLib Instance Taylor Beebe
2023-07-20  0:05 ` [edk2-devel] [PATCH v2 5/9] EmulatorPkg: " Taylor Beebe
2023-07-20  0:05 ` [edk2-devel] [PATCH v2 6/9] OvmfPkg: " Taylor Beebe
2023-07-20  0:05 ` [edk2-devel] [PATCH v2 7/9] UefiPayloadPkg: " Taylor Beebe
2023-07-20  0:05 ` [edk2-devel] [PATCH v2 8/9] UefiCpuPkg: Use Attribute From SMM MemoryAttributesTable if Nonzero Taylor Beebe
2023-07-20  0:05 ` [edk2-devel] [PATCH v2 9/9] MdeModulePkg: Update UEFI and SMM MAT Logic To Use ImagePropertiesRecordLib Taylor Beebe
2023-07-20  5:19 ` [edk2-devel] [PATCH v2 0/9] Add ImagePropertiesRecordLib and Fix MAT Bugs Ni, Ray
2023-07-20 18:40   ` Taylor Beebe
2023-07-21  3:34     ` Ni, Ray

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox