audk/UefiCpuPkg
Ray Ni 54d1e76f4e UefiCpuPkg/MpInitLib: Set X2ApicEnable flag from BSP
Today's logic sets X2ApicEnable flag in each AP's initialization
path when InitFlag == ApInitConfig.
Since all CPUs update the same global data, a spin-lock is used
to avoid modifications from multiple CPUs happen at the same time.
The spin-lock causes two problems:
1. Potential performance downgrade.
2. Undefined behavior when improper timer lib is used.
   For example we saw certain platforms used AcpiTimerLib from
   PcAtChipsetPkg and that library depends on retrieving PeiServices
   from idtr. But in fact AP's (idtr - 4) doesn't point to
   PeiServices.

The patch simplifies the code to let BSP set the X2ApicEnable flag so
the spin-lock acquisition from AP is not needed any more.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
2019-11-05 10:03:43 +08:00
..
Application/Cpuid UefiCpuPkg: strip trailing whitespace 2019-10-04 11:18:32 +01:00
CpuDxe UefiCpuPkg/CpuDxe: clean up PAGE_TABLE_LIB_PAGING_CONTEXT usage. 2019-09-25 14:29:24 +08:00
CpuFeatures UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
CpuIo2Dxe UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
CpuIo2Smm UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
CpuIoPei UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
CpuMpPei UefiCpuPkg: Update code to include register definitions from MdePkg 2019-08-09 08:52:09 +08:00
CpuS3DataDxe UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
Include UefiCpuPkg/RegisterCpuFeaturesLib: Add "Test Then Write" Macros. 2019-08-21 02:44:48 +08:00
Library UefiCpuPkg/MpInitLib: Set X2ApicEnable flag from BSP 2019-11-05 10:03:43 +08:00
PiSmmCommunication UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
PiSmmCpuDxeSmm UefiCpuPkg: Fix potential spinLock issue in SmmStartupThisAp 2019-09-20 14:37:42 +08:00
ResetVector UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00
SecCore UefiCpuPkg: support single EFI_PEI_CORE_FV_LOCATION_PPI in PpiList 2019-09-05 20:42:20 +08:00
Universal/Acpi/S3Resume2Pei UefiCpuPkg: Remove PcdFrameworkCompatibilitySupport usage 2019-05-09 09:42:55 +08:00
UefiCpuPkg.dec UefiCpuPkg/MpInitLib: honor the platform's boot CPU count in AP detection 2019-10-11 23:20:09 +02:00
UefiCpuPkg.dsc UefiCpuPkg: Add missing components to UefiCpuPkg.dsc 2019-10-23 17:47:29 -07:00
UefiCpuPkg.uni UefiCpuPkg/MpInitLib: honor the platform's boot CPU count in AP detection 2019-10-11 23:20:09 +02:00
UefiCpuPkgExtra.uni UefiCpuPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:28 -07:00