microsoft / mu_basecore

Project Mu BaseCore
https://microsoft.github.io/mu/
Other
242 stars 124 forks source link

[Cherry-Pick] UefiCpuPkg: Add PcdCpuSmmApSyncTimeout2 PCD #1096

Closed apop5 closed 2 months ago

apop5 commented 2 months ago

Description

Cherry-Picking PCD definition from edk2. This does not change the basecore functionality to consume this pcd.

Provide the capability for platform to specifies the 2nd timeout value in microseconds for the BSP/AP in SMM to wait for one another to enter SMM.

The added interface can enhance the flexibility of timeout configuration. In some cases, certain processors may not be able to enter SMI, and prolonged waiting could lead to kernel soft/hard lockup. We have now defined two timeouts. The first timeout can be set to a smaller value to reduce the waiting period. Processors that are unable to enter SMI will be woken up through SMIIPL to enter SMI, followed by a second waiting period. The second timeout can be set to a larger value to prevent delays in processors entering SMI case due to the long instruction execution.

Cc: Ray Ni ray.ni@intel.com Cc: Rahul Kumar rahul1.kumar@intel.com Cc: Gerd Hoffmann kraxel@redhat.com

How This Was Tested

Local CI

Integration Instructions

N/A

kuqin12 commented 2 months ago

How is the PCD get used?

apop5 commented 2 months ago

How is the PCD get used?

A Silicon Vendor provided their own implementation of SmmCpuFeaturesLib that requires the usage of the PCD.

Edk2 adding changes to consume it, then reverted the changes

Initial Addition https://github.com/tianocore/edk2/commit/cb3134612d11102fe066c94c8fa7edb20d62c1a8 Revert: https://github.com/tianocore/edk2/commit/4efcd654ecd94b91bd45da79583f114a0fa12a87