From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.65; helo=mga03.intel.com; envelope-from=michael.d.kinney@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4E8BA2237A4CD for ; Fri, 2 Feb 2018 16:40:02 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Feb 2018 16:45:39 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,452,1511856000"; d="scan'208";a="198279887" Received: from orsmsx110.amr.corp.intel.com ([10.22.240.8]) by orsmga005.jf.intel.com with ESMTP; 02 Feb 2018 16:45:39 -0800 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.97]) by ORSMSX110.amr.corp.intel.com ([169.254.10.12]) with mapi id 14.03.0319.002; Fri, 2 Feb 2018 16:45:39 -0800 From: "Kinney, Michael D" To: Laszlo Ersek , edk2-devel-01 , "Kinney, Michael D" CC: Ard Biesheuvel , "Dong, Eric" , "Yao, Jiewen" , Leif Lindholm , "Gao, Liming" , "Ni, Ruiyu" Thread-Topic: [PATCH 00/14] rid PiSmmCpuDxeSmm of DB-encoded instructions Thread-Index: AQHTnDO1KohLUtTTY0iG4b+6xBO9SqORXlrA Date: Sat, 3 Feb 2018 00:45:37 +0000 Message-ID: References: <20180202143954.7357-1-lersek@redhat.com> In-Reply-To: <20180202143954.7357-1-lersek@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.22.254.140] MIME-Version: 1.0 Subject: Re: [PATCH 00/14] rid PiSmmCpuDxeSmm of DB-encoded instructions X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Feb 2018 00:40:02 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Laszlo, Thanks for all the work on this series and the very detailed commit messages. Liming's email on removing the .S and .asm files is an RFC. We need to see this RFC approved before we can commit changes to remove .S and .asm files. This should be a separate activity. One odd thing I see in this series is that the instruction patch label in the .nasm file is just a label and does not have any storage associated with it. But in the C code the type UINT8 is used with the label which implies some storage. Can we make the globals in C code be a pointer (maybe VOID *) instead of UINT8? Thanks, Mike > -----Original Message----- > From: Laszlo Ersek [mailto:lersek@redhat.com] > Sent: Friday, February 2, 2018 6:40 AM > To: edk2-devel-01 > Cc: Ard Biesheuvel ; Dong, > Eric ; Yao, Jiewen > ; Leif Lindholm > ; Gao, Liming > ; Kinney, Michael D > ; Ni, Ruiyu > > Subject: [PATCH 00/14] rid PiSmmCpuDxeSmm of DB-encoded > instructions >=20 > Repo: https://github.com/lersek/edk2.git > Branch: patch_insn_x86 >=20 > Patch 01 is a comment cleanup patch for "BaseLib.h". >=20 > Patch 02 introduces PatchInstructionX86() to BaseLib, > based on the > recent discussion. >=20 > Patch 03 removes *.S and *.asm files from PiSmmCpuDxeSmm, > so that the > rest of the series only needs to concern itself with > *.nasm files. (The > subject of removing *.S and *.asm files for x86 was > broached by Liming > on the list earlier; it's handy for this series.) >=20 > Patches 04 through 14 replace the DB encodings of > instructions in > PiSmmCpuDxeSmm NASM source code. Most of the time the new > PatchInstructionX86() function is utilized, but in some > cases, not even > PatchInstructionX86() is needed. >=20 > Tested the following OSes with this series (all cases > used -D > SMM_REQUIRE, 2-4 VCPUs, both normal boot and S3, on KVM): >=20 > - IA32 > - Fedora 26 >=20 > - IA32X64 > - Fedora 26 > - Windows 7 > - Windows 8.1 > - Windows 10 > - Windows Server 2008 R2 > - Windows Server 2012 R2 > - Windows Server 2016 (normal boot only -- S3 is > untestable at this > time due to QXL GPU driver signing issues) >=20 > Cc: Ard Biesheuvel > Cc: Eric Dong > Cc: Jiewen Yao > Cc: Leif Lindholm > Cc: Liming Gao > Cc: Michael D Kinney > Cc: Ruiyu Ni >=20 > Thanks, > Laszlo >=20 > Laszlo Ersek (14): > MdePkg/BaseLib.h: state preprocessing conditions in > comments after > #endifs > MdePkg/BaseLib: add PatchInstructionX86() > UefiCpuPkg/PiSmmCpuDxeSmm: remove *.S and *.asm > assembly files > UefiCpuPkg/PiSmmCpuDxeSmm: patch "gSmbase" with > PatchInstructionX86() > UefiCpuPkg/PiSmmCpuDxeSmm: patch "gSmiStack" with > PatchInstructionX86() > UefiCpuPkg/PiSmmCpuDxeSmm: patch "gSmiCr3" with > PatchInstructionX86() > UefiCpuPkg/PiSmmCpuDxeSmm: patch "XdSupported" with > PatchInstructionX86() > UefiCpuPkg/PiSmmCpuDxeSmm: remove unneeded DBs from X64 > SmmStartup() > UefiCpuPkg/PiSmmCpuDxeSmm: patch "gSmmCr3" with > PatchInstructionX86() > UefiCpuPkg/PiSmmCpuDxeSmm: patch "gSmmCr4" with > PatchInstructionX86() > UefiCpuPkg/PiSmmCpuDxeSmm: patch "gSmmCr0" with > PatchInstructionX86() > UefiCpuPkg/PiSmmCpuDxeSmm: eliminate "gSmmJmpAddr" and > related DBs > UefiCpuPkg/PiSmmCpuDxeSmm: patch "gSmmInitStack" with > PatchInstructionX86() > UefiCpuPkg/PiSmmCpuDxeSmm: remove DBs from > SmmRelocationSemaphoreComplete32() >=20 > MdePkg/Include/Library/BaseLib.h | 62 +- > MdePkg/Library/BaseLib/BaseLib.inf | 2 + > MdePkg/Library/BaseLib/X86PatchInstruction.c | 89 > +++ > UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c | 4 +- > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/MpFuncs.S | 165 -- > --- > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/MpFuncs.asm | 168 -- > --- > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.S | 215 -- > ---- > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.asm | 223 -- > ---- > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.nasm | 25 +- > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiException.S | 696 -- > ----------------- > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiException.asm | 713 -- > ------------------ > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.S | 84 -- > - > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.asm | 94 -- > - > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.nasm | 30 +- > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c | 27 +- > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h | 21 +- > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf | 20 - > UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c | 7 + > UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfileInternal.h | 1 + > UefiCpuPkg/PiSmmCpuDxeSmm/SmramSaveState.c | 16 +- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/MpFuncs.S | 204 -- > ---- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/MpFuncs.asm | 206 -- > ---- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/Semaphore.c | 16 +- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.S | 243 -- > ----- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.asm | 242 -- > ----- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.nasm | 25 +- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiException.S | 365 -- > -------- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiException.asm | 383 -- > --------- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmInit.S | 141 -- > -- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmInit.asm | 132 -- > -- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmInit.nasm | 76 +- > - > 31 files changed, 271 insertions(+), 4424 deletions(-) > create mode 100644 > MdePkg/Library/BaseLib/X86PatchInstruction.c > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/MpFuncs.S > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/MpFuncs.asm > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.S > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.asm > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiException.S > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiException.asm > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.S > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.asm > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/X64/MpFuncs.S > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/X64/MpFuncs.asm > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.S > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.asm > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiException.S > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiException.asm > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmInit.S > delete mode 100644 > UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmInit.asm >=20 > -- > 2.14.1.3.gb7cf6e02401b