From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (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 EE19681E1F for ; Tue, 22 Nov 2016 12:26:25 -0800 (PST) Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6F7DD8F28D; Tue, 22 Nov 2016 20:26:25 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-116-82.phx2.redhat.com [10.3.116.82]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id uAMKQN4t021949; Tue, 22 Nov 2016 15:26:24 -0500 From: Laszlo Ersek To: edk2-devel-01 Cc: Igor Mammedov , Jeff Fan , Jordan Justen Date: Tue, 22 Nov 2016 21:26:15 +0100 Message-Id: <20161122202619.12594-1-lersek@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Tue, 22 Nov 2016 20:26:25 +0000 (UTC) Subject: [PATCH 0/4] UefiCpuPkg, OvmfPkg: multiprocessing fixes and improvements X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Nov 2016 20:26:26 -0000 Patches 1 and 2 fix several instances of the same CPUID-related bug in UefiCpuPkg (BaseXApicLib, BaseXApicX2ApicLib, MpInitLib/Ia32, MpInitLib/X64). Patches 3 and 4 are independent from the bugfix, but they relate nonetheless to multiprocessing, so I'm including them in the same series. They allow OvmfPkg to fetch the number of boot processors from QEMU, and to make CpuMpPei / CpuDxe wait in the initial enumeration exactly as long as it takes for all of the APs to come up. This makes MP boot much more reliable (and no time is wasted waiting). ( Note that I have another patch set pending on the list: [edk2] [PATCH v2 0/4] OvmfPkg: broadcast SMIs and dynamically revert to traditional AP sync mode That series and this series have a trivial context dependency in OvmfPkg/OvmfPkg*.dsc. Because that series consumes an interface from QEMU that will be part of the 2.9 release only, not the pending 2.8 release, that series comes *second*. In comparison, this series works as-is, so it comes first. Locally I have rebased the broadcast SMI series already (it is trivial); it does not interfere with the review. ) Repo: https://github.com/lersek/edk2/ Branch: mpinit Cc: Igor Mammedov Cc: Jeff Fan Cc: Jordan Justen Thanks Laszlo Laszlo Ersek (4): UefiCpuPkg/LocalApicLib: fix feature test for Extended Topology CPUID leaf UefiCpuPkg/MpInitLib: fix feature test for Extended Topology CPUID leaf UefiCpuPkg/MpInitLib: allow platforms to provide a known CPU count upfront OvmfPkg/PlatformPei: set PcdCpuKnownLogicalProcessorNumber for MpInitLib OvmfPkg/OvmfPkgIa32.dsc | 2 ++ OvmfPkg/OvmfPkgIa32X64.dsc | 2 ++ OvmfPkg/OvmfPkgX64.dsc | 2 ++ OvmfPkg/PlatformPei/Platform.c | 22 ++++++++++++++++++++ OvmfPkg/PlatformPei/PlatformPei.inf | 1 + UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c | 7 +++++-- UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.c | 7 +++++-- UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 1 + UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 4 ++-- UefiCpuPkg/Library/MpInitLib/MpLib.c | 16 ++++++++++---- UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm | 21 +++++++++++-------- UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm | 21 +++++++++++-------- UefiCpuPkg/UefiCpuPkg.dec | 11 ++++++++++ 13 files changed, 89 insertions(+), 28 deletions(-) -- 2.9.2