On 11/11/16 13:38, Fan, Jeff wrote: > Laszlo, > > NX support and fix in SmiEntry.asm is new code for UefiCpuPkg.
Ah, you are right. Sorry, I missed that. I've checked the v2 series now and I see the SkipXd label and friends are introduced by v2; it's not preexistent code. This means it should be okay for me to test these series as they are. No need to move patches between them. > So, that means we still have other unknown problem on S3 boot issue. Hm, with your above explanation, I'm actually not sure about that. I think that your series [edk2] [PATCH v2 0/3] Put AP into safe hlt-loop code on S3 path has a good chance to fix it all. I hope I can test it today. (And once I'm done with it, I'll move to Jiewen's v3.) Thanks! Laszlo > -----Original Message----- > From: Laszlo Ersek [mailto:ler...@redhat.com] > Sent: Friday, November 11, 2016 8:26 PM > To: Yao, Jiewen; edk2-devel@lists.01.org; Fan, Jeff > Cc: Tian, Feng; Kinney, Michael D; Paolo Bonzini; Zeng, Star > Subject: Re: [edk2] [PATCH V3 0/6] Enable SMM page level protection. > > Jiewen, Jeff, > > On 11/11/16 10:12, Yao, Jiewen wrote: >> HI Laszlo >> I fixed the IA32 boot issue in this patch > > Thank you. > > Jiewen, I'd like to request the following: > > - Please separate the fix for the incorrect parameter passing to > SmiRendezvous() out to a separate patch. It is my understanding that > the issue exists already in the master branch. Is that right? If it > is, then the fix should not be tied to the SMM page level protection > feature. > > - Please give that patch to Jeff. > > Jeff, > > can you please repost your series > > [edk2] [PATCH v2 0/3] Put AP into safe hlt-loop code on S3 path > > to edk2-devel, as v3, with Jiewen's patch from above included, as patch#4? > Because, I would like to see a patch series that addresses all known S3 > issues that we've uncovered in this investigation. > > The first three patches should fix BZ#216, yes. > > The last (4th) patch, from Jiewen, is unrelated to that BZ indeed, but it > nonetheless addresses an existent issue in PiSmmCpuDxeSmm that can be hit > during S3. > > My goal is to apply that series (the first 3 patches from Jeff, and the > fourth patch from Jiewen), and to test it as one unit. I'd like to see if > those changes fix the infrequent, but still triggerable issues with > S3+SMM, for both Ia32 and Ia32X64. If everything works fine, then that > series should be committed. > > After that, I'd like to test Jiewen's v4 series for the SMM page level > protection, separately. > > In other words, first we should fix the existent bugs that Jiewen's SMM page > level protection feature only amplifies (but doesn't introduce) on QEMU/KVM + > OVMF. Once the known bugs are fixed, I'll be glad to test the new feature. > > Would this work for you guys? > > Thank you, > Laszlo > >> with DEBUG message update you suggested. >> >> My unit test failed before. Now it can pass. >> I validated on a real IA32 and Windows OVMF with and without XD. >> >> >> For QEMU installation, it is still on progress. >> We have setup a Fedora 24 host, download QEMU, and install it. >> But we are still struggling to make QEMU boot on Fedora. >> Your step by step is great. There is still some minor place we stuck in due >> to my ignorance. >> My goal is still to setup an environment like yours for our validation or >> issue reproduce. >> It just need take some time, more than I expected. sign... >> >> Thank you >> Yao Jiewen >> >>> -----Original Message----- >>> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf >>> Of Jiewen Yao >>> Sent: Friday, November 11, 2016 5:01 PM >>> To: edk2-devel@lists.01.org >>> Cc: Tian, Feng <feng.t...@intel.com>; Kinney, Michael D >>> <michael.d.kin...@intel.com>; Paolo Bonzini <pbonz...@redhat.com>; >>> Laszlo Ersek <ler...@redhat.com>; Fan, Jeff <jeff....@intel.com>; >>> Zeng, Star <star.z...@intel.com> >>> Subject: [edk2] [PATCH V3 0/6] Enable SMM page level protection. >>> >>> >>> ==== below is V3 description ==== >>> 1) PiSmmCpu: Fix CpuIndex corruption issue due to stack malposition. >>> (Many thanks to Laszlo Ersek <ler...@redhat.com> for catching it.) >>> 2) PiSmmCpu: Add ASSERT for CpuIndex check. >>> 3) PiSmmCpu: Use DEBUG_VERBOSE for page table update. >>> 4) PiSmmCpu: Do not report DEBUG message for Ap non present when >>> PcdCpuSmmSyncMode==1 (Relex mode). >>> 5) PiSmmCpu: Do not report DEBUG message for AP removed when >>> PcdCpuHotPlugSupport==TRUE. >>> >>> Tested combination: >>> 1) XD disabled >>> 2) XD enabled in SMM and disabled in non-SMM. >>> 3) XD enabled in SMM and enabled in non-SMM. >>> >>> ==== below is V2 description ==== >>> 1) PiSmmCpu: resolve OVMF multiple processors boot hang issue. >>> 2) PiSmmCpu: Add debug info on StartupAp() fails. >>> 3) PiSmmCpu: Add ASSERT for AllocatePages(). >>> 4) PiSmmCpu: Add protection detail in commit message. >>> 5) UefiCpuPkg.dsc: Add page table footprint info in commit message. >>> >>> ==== below is V1 description ==== >>> This series patch enables SMM page level protection. >>> Features are: >>> 1) PiSmmCore reports SMM PE image code/data information in >>> EdkiiPiSmmMemoryAttributeTable, if the SMM image is page aligned. >>> 2) PiSmmCpu consumes EdkiiPiSmmMemoryAttributeTable and set XD for >>> data page and RO for code page. >>> 3) PiSmmCpu enables Static Paging for X64 according to >>> PcdCpuSmmStaticPageTable. If it is true, 1G paging for above 4G is >>> used as long as it is supported. >>> 4) PiSmmCpu sets importance data structure to be read only, such as >>> Gdt, Idt, SmmEntrypoint, and PageTable itself. >>> >>> tested platform: >>> 1) Intel internal platform (X64). >>> 2) EDKII Quark IA32 >>> 3) EDKII Vlv2 X64 >>> 4) EDKII OVMF IA32 and IA32X64. (with -smp 8) >>> >>> Cc: Jeff Fan <jeff....@intel.com> >>> Cc: Feng Tian <feng.t...@intel.com> >>> Cc: Star Zeng <star.z...@intel.com> >>> Cc: Michael D Kinney <michael.d.kin...@intel.com> >>> Cc: Laszlo Ersek <ler...@redhat.com> >>> Cc: Paolo Bonzini <pbonz...@redhat.com> >>> Contributed-under: TianoCore Contribution Agreement 1.0 >>> Signed-off-by: Jiewen Yao <jiewen....@intel.com> >>> >>> Jiewen Yao (6): >>> MdeModulePkg/Include: Add PiSmmMemoryAttributesTable.h >>> MdeModulePkg/dec: Add gEdkiiPiSmmMemoryAttributesTableGuid. >>> MdeModulePkg/PiSmmCore: Add MemoryAttributes support. >>> UefiCpuPkg/dec: Add PcdCpuSmmStaticPageTable. >>> UefiCpuPkg/PiSmmCpuDxeSmm: Add paging protection. >>> QuarkPlatformPkg/dsc: enable Smm paging protection. >>> >>> MdeModulePkg/Core/PiSmmCore/Dispatcher.c | 66 + >>> MdeModulePkg/Core/PiSmmCore/MemoryAttributesTable.c | 1509 >>> ++++++++++++++++++++ >>> MdeModulePkg/Core/PiSmmCore/Page.c | 775 >>> +++++++++- >>> MdeModulePkg/Core/PiSmmCore/PiSmmCore.c | 40 >>> + >>> MdeModulePkg/Core/PiSmmCore/PiSmmCore.h | 91 >>> ++ >>> MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf | 2 >>> + >>> MdeModulePkg/Core/PiSmmCore/Pool.c | 16 >>> + >>> MdeModulePkg/Include/Guid/PiSmmMemoryAttributesTable.h | 51 + >>> MdeModulePkg/MdeModulePkg.dec | >>> 3 + >>> QuarkPlatformPkg/Quark.dsc | 6 + >>> UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c | 71 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.S | 75 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.asm | 75 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.nasm | 79 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiException.S | 226 >>> +-- >>> UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiException.asm | 36 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiException.nasm | 36 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmFuncsArch.c | 37 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmProfileArch.c | 4 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 135 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c | >>> 144 +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h | >>> 156 +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf | >>> 5 +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c | >>> 871 +++++++++++ >>> UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c | 39 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.h | 15 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c | 274 >>> +++- >>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.S | 59 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.asm | 62 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.nasm | 69 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiException.S | 250 >>> +--- >>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiException.asm | 35 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiException.nasm | 31 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArch.c | 30 >>> +- >>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmProfileArch.c | 7 >>> +- >>> UefiCpuPkg/UefiCpuPkg.dec | 8 + >>> 36 files changed, 4585 insertions(+), 803 deletions(-) create mode >>> 100644 MdeModulePkg/Core/PiSmmCore/MemoryAttributesTable.c >>> create mode 100644 >>> MdeModulePkg/Include/Guid/PiSmmMemoryAttributesTable.h >>> create mode 100644 >>> UefiCpuPkg/PiSmmCpuDxeSmm/SmmCpuMemoryManagement.c >>> >>> -- >>> 2.7.4.windows.1 >>> >>> _______________________________________________ >>> edk2-devel mailing list >>> edk2-devel@lists.01.org >>> https://lists.01.org/mailman/listinfo/edk2-devel >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org >> https://lists.01.org/mailman/listinfo/edk2-devel >> > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel