MdeModulePkg/SmmCore: Add perf-logging for time-consuming procedures

Following procedures are perf-logged:
* SmmReadyToBootHandler
* SmmReadyToLockHandler
* SmmEndOfDxeHandler
* SmmEntryPoint
  (It's the main routine run in BSP when SMI happens.)
* SmiManage

Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
This commit is contained in:
Ray Ni
2023-05-26 22:32:00 +08:00
committed by mergify[bot]
parent ad6c8540cc
commit e4ff852136
2 changed files with 20 additions and 1 deletions

View File

@@ -1,7 +1,7 @@
/** @file
SMM Core Main Entry Point
Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2009 - 2023, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -305,6 +305,8 @@ SmmReadyToBootHandler (
EFI_STATUS Status;
EFI_HANDLE SmmHandle;
PERF_CALLBACK_BEGIN (&gEfiEventReadyToBootGuid);
//
// Install SMM Ready To Boot protocol.
//
@@ -318,6 +320,7 @@ SmmReadyToBootHandler (
SmiHandlerUnRegister (DispatchHandle);
PERF_CALLBACK_END (&gEfiEventReadyToBootGuid);
return Status;
}
@@ -352,6 +355,8 @@ SmmReadyToLockHandler (
EFI_HANDLE SmmHandle;
VOID *Interface;
PERF_CALLBACK_BEGIN (&gEfiDxeSmmReadyToLockProtocolGuid);
//
// Unregister SMI Handlers that are no required after the SMM driver dispatch is stopped
//
@@ -408,6 +413,7 @@ SmmReadyToLockHandler (
SmramProfileReadyToLock ();
PERF_CALLBACK_END (&gEfiDxeSmmReadyToLockProtocolGuid);
return Status;
}
@@ -442,6 +448,8 @@ SmmEndOfDxeHandler (
DEBUG ((DEBUG_INFO, "SmmEndOfDxeHandler\n"));
PERF_CALLBACK_BEGIN (&gEfiEndOfDxeEventGroupGuid);
//
// Install SMM EndOfDxe protocol
//
@@ -479,6 +487,7 @@ SmmEndOfDxeHandler (
}
}
PERF_CALLBACK_END (&gEfiEndOfDxeEventGroupGuid);
return EFI_SUCCESS;
}
@@ -669,6 +678,8 @@ SmmEntryPoint (
VOID *CommunicationBuffer;
UINTN BufferSize;
PERF_FUNCTION_BEGIN ();
//
// Update SMST with contents of the SmmEntryContext structure
//
@@ -769,6 +780,8 @@ SmmEntryPoint (
//
gSmmCorePrivate->InSmm = FALSE;
}
PERF_FUNCTION_END ();
}
/**