From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id F323FAC1A62 for ; Tue, 3 Oct 2023 19:04:36 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=AFjF+rRLXCnx9cmGVRtYjN4Hefa4WZZwI0VNFOW6u1U=; c=relaxed/simple; d=groups.io; h=Message-ID:Date:MIME-Version:User-Agent:Subject:To:Cc:References:From:In-Reply-To:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1696359875; v=1; b=Yh33sFf4vyOgPD20qZWDEjtKngVT9D2zIi1xTv2CycC/Zlw5am9qUwo4HC/pWVc0R4O5cl4A mCVvW0XbL1PtRukdeXiRIY/pYgmtw+A7Cgp0oLajtyoWyERDaKJrd+Mm/Vi+fMlEIK2UBC7SVpJ 48G3bjgf0Nph26b1Y3HAM1qg= X-Received: by 127.0.0.2 with SMTP id hWr4YY7687511xCNftJsMOwQ; Tue, 03 Oct 2023 12:04:35 -0700 X-Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by mx.groups.io with SMTP id smtpd.web11.116741.1696359874916870860 for ; Tue, 03 Oct 2023 12:04:34 -0700 X-Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-1c3cbfa40d6so9936815ad.1 for ; Tue, 03 Oct 2023 12:04:34 -0700 (PDT) X-Gm-Message-State: 7UTLMNQ1vRqJFI9ifQ544PPLx7686176AA= X-Google-Smtp-Source: AGHT+IFXBH8an/yB52r8FeRgToPVZc59Tc4BRV9IBuT8oQRzmA1k+w2E9VVJEvdTUkUgI3+V1F2wvQ== X-Received: by 2002:a17:902:e80e:b0:1c6:2d13:5b77 with SMTP id u14-20020a170902e80e00b001c62d135b77mr557691plg.39.1696359874221; Tue, 03 Oct 2023 12:04:34 -0700 (PDT) X-Received: from [192.168.0.125] ([50.46.253.1]) by smtp.gmail.com with ESMTPSA id u12-20020a17090282cc00b001c5b8087fe5sm1959772plz.94.2023.10.03.12.04.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 Oct 2023 12:04:33 -0700 (PDT) Message-ID: <83c03b0c-c8e8-44cf-8b45-761f31577153@gmail.com> Date: Tue, 3 Oct 2023 12:04:31 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [edk2-devel] [PATCH v4 00/14] Add ImagePropertiesRecordLib and Fix MAT Bugs To: Ard Biesheuvel Cc: devel@edk2.groups.io, 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 References: <177845D072580598.19347@groups.io> <177BEFB7EF58B50B.8497@groups.io> <17887E55BF3885BC.16687@groups.io> From: "Taylor Beebe" In-Reply-To: Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,taylor.d.beebe@gmail.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=Yh33sFf4; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Thank you , Ard. I very much appreciate your responsiveness. The majority of these patches fall under MdeModulePkg maintainers so=20 I'll also need help from them to drive this forward. On 10/3/2023 11:57 AM, Ard Biesheuvel wrote: > On Tue, 3 Oct 2023 at 17:56, Taylor Beebe wrot= e: >> Have we given up on this patch series and Bug 4492? >> > I haven't, I promise. I will get to this on Thursday or Friday. > > >> On 9/26/2023 9:02 AM, Taylor Beebe via groups.io wrote: >>> Reviews on this patch series would be much appreciated :) >>> >>> On 8/28/23 9:38 AM, Ard Biesheuvel wrote: >>>> I was hoping to get around to this before the end of the week (but I >>>> am not a MdeModulePkg maintainer) >>>> >>>> >>>> On Mon, 28 Aug 2023 at 18:27, Taylor Beebe >>>> wrote: >>>>> Can I please get reviews/feedback on this patch series? >>>>> >>>>> On 8/16/23 11:14 AM, Taylor Beebe via groups.io wrote: >>>>>> Can I please get reviews/feedback on this patch series? >>>>>> >>>>>> On 8/4/2023 12:46 PM, Taylor Beebe via groups.io wrote: >>>>>>> From: Taylor Beebe >>>>>>> >>>>>>> v4: >>>>>>> - Expose additional functions in the Library API >>>>>>> - Add NULL checks to library functions and return a >>>>>>> status where applicable. >>>>>>> >>>>>>> v3: >>>>>>> - Refactor patch series so the transition of logic from the DXE >>>>>>> MAT logic to the new library is more clear. >>>>>>> - Update function headers to improve clarity and follow EDK2 >>>>>>> standards. >>>>>>> - Add Create and Delete functions for Image Properties Records >>>>>>> and redirect some of the SMM and DXE MAT code to use these >>>>>>> functions. >>>>>>> - Update/Add DumpImageRecords() to print the image name and code >>>>>>> sections of each runtime image which will be put in the MAT. >>>>>>> The DXE and SMM MAT logic will now invoke the DumpImageRecords= () >>>>>>> on DEBUG builds at the EndOfDxe event to install the MAT. >>>>>>> >>>>>>> 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=3D4492 >>>>>>> >>>>>>> The UEFI and SMM MAT logic contains duplicate logic for manipulatin= g >>>>>>> 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 log= ic >>>>>>> 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 >>>>>>> Cc: Ard Biesheuvel >>>>>>> Cc: Dandan Bi >>>>>>> Cc: Eric Dong >>>>>>> Cc: Gerd Hoffmann >>>>>>> Cc: Guo Dong >>>>>>> Cc: Gua Guo >>>>>>> Cc: James Lu >>>>>>> Cc: Jian J Wang >>>>>>> Cc: Jiewen Yao >>>>>>> Cc: Jordan Justen >>>>>>> Cc: Leif Lindholm >>>>>>> Cc: Liming Gao >>>>>>> Cc: Rahul Kumar >>>>>>> Cc: Ray Ni >>>>>>> Cc: Sami Mujawar >>>>>>> Cc: Sean Rhodes >>>>>>> >>>>>>> Taylor Beebe (14): >>>>>>> MdeModulePkg: Add ImagePropertiesRecordLib >>>>>>> ArmVirtPkg: Add ImagePropertiesRecordLib Instance >>>>>>> EmulatorPkg: Add ImagePropertiesRecordLib Instance >>>>>>> OvmfPkg: Add ImagePropertiesRecordLib Instance >>>>>>> UefiPayloadPkg: Add ImagePropertiesRecordLib Instance >>>>>>> MdeModulePkg: Update MemoryAttributesTable.c to Reduce Global >>>>>>> Variable >>>>>>> Use >>>>>>> MdeModulePkg: Move Some DXE MAT Logic to ImagePropertiesRecord= Lib >>>>>>> MdeModulePkg: Add ImagePropertiesRecordLib Host-Based Unit Tes= t >>>>>>> MdeModulePkg: Fix Bugs in MAT Logic >>>>>>> MdeModulePkg: Add NULL checks and Return Status to >>>>>>> ImagePropertiesRecordLib >>>>>>> UefiCpuPkg: Use Attribute From SMM MemoryAttributesTable if >>>>>>> Nonzero >>>>>>> MdeModulePkg: Transition SMM MAT Logic to Use >>>>>>> ImagePropertiesRecordLib >>>>>>> MdeModulePkg: Add Logic to Create/Delete Image Properties Reco= rds >>>>>>> MdeModulePkg: Update DumpImageRecord() in >>>>>>> ImagePropertiesRecordLib >>>>>>> >>>>>>> MdeModulePkg/Core/Dxe/Misc/MemoryAttributesTable.c | 967 >>>>>>> +---------------- >>>>>>> MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c | 24 +- >>>>>>> MdeModulePkg/Core/PiSmmCore/MemoryAttributesTable.c | 958 >>>>>>> +--------------- >>>>>>> MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecord= Lib.c >>>>>>> >>>>>>> | 1144 ++++++++++++++++++++ >>>>>>> MdeModulePkg/Library/ImagePropertiesRecordLib/UnitTest/ImagePropert= iesRecordLibUnitTestHost.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 | 234 ++++ >>>>>>> MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecord= Lib.inf >>>>>>> >>>>>>> | 31 + >>>>>>> MdeModulePkg/Library/ImagePropertiesRecordLib/UnitTest/ImagePropert= iesRecordLibUnitTestHost.inf >>>>>>> >>>>>>> | 35 + >>>>>>> MdeModulePkg/MdeModulePkg.dec | 5 + >>>>>>> MdeModulePkg/MdeModulePkg.dsc | 2 + >>>>>>> MdeModulePkg/Test/MdeModulePkgHostTest.dsc | 6 + >>>>>>> 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, 2524 insertions(+), 1874 deletions(-) >>>>>>> create mode 100644 >>>>>>> MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecord= Lib.c >>>>>>> >>>>>>> create mode 100644 >>>>>>> MdeModulePkg/Library/ImagePropertiesRecordLib/UnitTest/ImagePropert= iesRecordLibUnitTestHost.c >>>>>>> >>>>>>> create mode 100644 >>>>>>> MdeModulePkg/Include/Library/ImagePropertiesRecordLib.h >>>>>>> create mode 100644 >>>>>>> MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecord= Lib.inf >>>>>>> >>>>>>> create mode 100644 >>>>>>> MdeModulePkg/Library/ImagePropertiesRecordLib/UnitTest/ImagePropert= iesRecordLibUnitTestHost.inf >>>>>>> >>>>>>> >>> >>>=20 >>> >>> -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#109302): https://edk2.groups.io/g/devel/message/109302 Mute This Topic: https://groups.io/mt/100553430/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-