mirror of https://github.com/acidanthera/audk.git
UefiCpuPkg/SmmCpu: Add PcdSmmApPerfLogEnable control AP perf-logging
When a platform has lots of CPU cores/threads, perf-logging on every AP produces lots of records. When this multiplies with number of SMIs during post, the records are even more. So, this patch adds a new PCD PcdSmmApPerfLogEnable (default TRUE) to allow platform to turn off perf-logging on APs. Signed-off-by: Ray Ni <ray.ni@intel.com> Cc: Eric Dong <eric.dong@intel.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com>
This commit is contained in:
parent
2d3974a351
commit
a87f5fdb3d
|
@ -784,7 +784,7 @@ BSPHandler (
|
|||
// Any SMM MP performance logging after this point will be migrated in next SMI.
|
||||
//
|
||||
PERF_CODE (
|
||||
MigrateMpPerf (gSmmCpuPrivate->SmmCoreEntryContext.NumberOfCpus);
|
||||
MigrateMpPerf (gSmmCpuPrivate->SmmCoreEntryContext.NumberOfCpus, CpuIndex);
|
||||
);
|
||||
|
||||
//
|
||||
|
|
|
@ -128,6 +128,7 @@
|
|||
gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmProfileRingBuffer ## CONSUMES
|
||||
gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmFeatureControlMsrLock ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode ## CONSUMES
|
||||
gUefiCpuPkgTokenSpaceGuid.PcdSmmApPerfLogEnable ## CONSUMES
|
||||
|
||||
[Pcd]
|
||||
gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber ## SOMETIMES_CONSUMES
|
||||
|
|
|
@ -38,16 +38,25 @@ InitializeMpPerf (
|
|||
Migrate MP performance data to standardized performance database.
|
||||
|
||||
@param NumberofCpus Number of processors in the platform.
|
||||
@param BspIndex The index of the BSP.
|
||||
**/
|
||||
VOID
|
||||
MigrateMpPerf (
|
||||
UINTN NumberofCpus
|
||||
UINTN NumberofCpus,
|
||||
UINTN BspIndex
|
||||
)
|
||||
{
|
||||
UINTN CpuIndex;
|
||||
UINTN MpProcecureId;
|
||||
|
||||
for (CpuIndex = 0; CpuIndex < NumberofCpus; CpuIndex++) {
|
||||
if ((CpuIndex != BspIndex) && !FeaturePcdGet (PcdSmmApPerfLogEnable)) {
|
||||
//
|
||||
// Skip migrating AP performance data if AP perf-logging is disabled.
|
||||
//
|
||||
continue;
|
||||
}
|
||||
|
||||
for (MpProcecureId = 0; MpProcecureId < SMM_MP_PERF_PROCEDURE_ID (SmmMpProcedureMax); MpProcecureId++) {
|
||||
if (mSmmMpProcedurePerformance[CpuIndex].Begin[MpProcecureId] != 0) {
|
||||
PERF_START (NULL, gSmmMpPerfProcedureName[MpProcecureId], NULL, mSmmMpProcedurePerformance[CpuIndex].Begin[MpProcecureId]);
|
||||
|
|
|
@ -48,10 +48,12 @@ InitializeMpPerf (
|
|||
Migrate MP performance data to standardized performance database.
|
||||
|
||||
@param NumberofCpus Number of processors in the platform.
|
||||
@param BspIndex The index of the BSP.
|
||||
**/
|
||||
VOID
|
||||
MigrateMpPerf (
|
||||
UINTN NumberofCpus
|
||||
UINTN NumberofCpus,
|
||||
UINTN BspIndex
|
||||
);
|
||||
|
||||
/**
|
||||
|
|
|
@ -175,6 +175,12 @@
|
|||
# @Prompt Support SmmFeatureControl.
|
||||
gUefiCpuPkgTokenSpaceGuid.PcdSmmFeatureControlEnable|TRUE|BOOLEAN|0x32132110
|
||||
|
||||
## Indicates if SMM perf logging in APs will be enabled.<BR><BR>
|
||||
# TRUE - SMM perf logging in APs will be enabled.<BR>
|
||||
# FALSE - SMM perf logging in APs will not be enabled.<BR>
|
||||
# @Prompt Enable SMM perf logging in APs.
|
||||
gUefiCpuPkgTokenSpaceGuid.PcdSmmApPerfLogEnable|TRUE|BOOLEAN|0x32132114
|
||||
|
||||
[PcdsFixedAtBuild]
|
||||
## List of exception vectors which need switching stack.
|
||||
# This PCD will only take into effect if PcdCpuStackGuard is enabled.
|
||||
|
|
Loading…
Reference in New Issue