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 <[email protected]>
Cc: Jeff Fan <[email protected]>
Cc: Jordan Justen <[email protected]>

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

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to