summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c7
-rw-r--r--MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c8
-rw-r--r--MdeModulePkg/Core/Dxe/Hand/DriverSupport.c8
-rw-r--r--MdeModulePkg/Core/Dxe/Image/Image.c30
-rw-r--r--MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c8
-rw-r--r--MdeModulePkg/Core/Pei/PeiMain/PeiMain.c17
-rw-r--r--MdeModulePkg/Core/PiSmmCore/Dispatcher.c15
-rw-r--r--MdeModulePkg/Core/PiSmmCore/PiSmmCore.c4
-rw-r--r--MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c2
-rw-r--r--MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c9
-rw-r--r--MdeModulePkg/Universal/BdsDxe/BdsEntry.c21
11 files changed, 53 insertions, 76 deletions
diff --git a/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c b/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c
index 088cd81063..4c6ca761a6 100644
--- a/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c
+++ b/MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c
@@ -419,6 +419,7 @@ CoreDispatcher (
BOOLEAN ReadyToRun;
EFI_EVENT DxeDispatchEvent;
+ PERF_FUNCTION_BEGIN ();
if (gDispatcherRunning) {
//
@@ -584,6 +585,8 @@ CoreDispatcher (
gDispatcherRunning = FALSE;
+ PERF_FUNCTION_END ();
+
return ReturnStatus;
}
@@ -1437,6 +1440,8 @@ CoreInitializeDispatcher (
VOID
)
{
+ PERF_FUNCTION_BEGIN ();
+
mFwVolEvent = EfiCreateProtocolNotifyEvent (
&gEfiFirmwareVolume2ProtocolGuid,
TPL_CALLBACK,
@@ -1444,6 +1449,8 @@ CoreInitializeDispatcher (
NULL,
&mFwVolEventRegistration
);
+
+ PERF_FUNCTION_END ();
}
//
diff --git a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
index 07c7403462..3f753738a2 100644
--- a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
+++ b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
@@ -301,8 +301,8 @@ DxeMain (
// Call constructor for all libraries
//
ProcessLibraryConstructorList (gDxeCoreImageHandle, gDxeCoreST);
- PERF_END (NULL,"PEI", NULL, 0) ;
- PERF_START (NULL,"DXE", NULL, 0) ;
+ PERF_CROSSMODULE_END ("PEI");
+ PERF_CROSSMODULE_BEGIN ("DXE");
//
// Report DXE Core image information to the PE/COFF Extra Action Library
@@ -499,16 +499,12 @@ DxeMain (
//
// Initialize the DXE Dispatcher
//
- PERF_START (NULL,"CoreInitializeDispatcher", "DxeMain", 0) ;
CoreInitializeDispatcher ();
- PERF_END (NULL,"CoreInitializeDispatcher", "DxeMain", 0) ;
//
// Invoke the DXE Dispatcher
//
- PERF_START (NULL, "CoreDispatcher", "DxeMain", 0);
CoreDispatcher ();
- PERF_END (NULL, "CoreDispatcher", "DxeMain", 0);
//
// Display Architectural protocols that were not loaded if this is DEBUG build
diff --git a/MdeModulePkg/Core/Dxe/Hand/DriverSupport.c b/MdeModulePkg/Core/Dxe/Hand/DriverSupport.c
index 33dd0bd0b7..ab3cc0c07e 100644
--- a/MdeModulePkg/Core/Dxe/Hand/DriverSupport.c
+++ b/MdeModulePkg/Core/Dxe/Hand/DriverSupport.c
@@ -627,13 +627,13 @@ CoreConnectSingleController (
for (Index = 0; (Index < NumberOfSortedDriverBindingProtocols) && !DriverFound; Index++) {
if (SortedDriverBindingProtocols[Index] != NULL) {
DriverBinding = SortedDriverBindingProtocols[Index];
- PERF_START (DriverBinding->DriverBindingHandle, "DB:Support:", NULL, 0);
+ PERF_DRIVER_BINDING_SUPPORT_BEGIN (DriverBinding->DriverBindingHandle, ControllerHandle);
Status = DriverBinding->Supported(
DriverBinding,
ControllerHandle,
RemainingDevicePath
);
- PERF_END (DriverBinding->DriverBindingHandle, "DB:Support:", NULL, 0);
+ PERF_DRIVER_BINDING_SUPPORT_END (DriverBinding->DriverBindingHandle, ControllerHandle);
if (!EFI_ERROR (Status)) {
SortedDriverBindingProtocols[Index] = NULL;
DriverFound = TRUE;
@@ -642,13 +642,13 @@ CoreConnectSingleController (
// A driver was found that supports ControllerHandle, so attempt to start the driver
// on ControllerHandle.
//
- PERF_START (DriverBinding->DriverBindingHandle, "DB:Start:", NULL, 0);
+ PERF_DRIVER_BINDING_START_BEGIN (DriverBinding->DriverBindingHandle, ControllerHandle);
Status = DriverBinding->Start (
DriverBinding,
ControllerHandle,
RemainingDevicePath
);
- PERF_END (DriverBinding->DriverBindingHandle, "DB:Start:", NULL, 0);
+ PERF_DRIVER_BINDING_START_END (DriverBinding->DriverBindingHandle, ControllerHandle);
if (!EFI_ERROR (Status)) {
//
diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c b/MdeModulePkg/Core/Dxe/Image/Image.c
index c49ddfcc81..adeb4bf313 100644
--- a/MdeModulePkg/Core/Dxe/Image/Image.c
+++ b/MdeModulePkg/Core/Dxe/Image/Image.c
@@ -1436,13 +1436,9 @@ CoreLoadImage (
)
{
EFI_STATUS Status;
- UINT64 Tick;
EFI_HANDLE Handle;
- Tick = 0;
- PERF_CODE (
- Tick = GetPerformanceCounter ();
- );
+ PERF_LOAD_IMAGE_BEGIN (NULL);
Status = CoreLoadImageCommon (
BootPolicy,
@@ -1465,8 +1461,7 @@ CoreLoadImage (
Handle = *ImageHandle;
}
- PERF_START (Handle, "LoadImage:", NULL, Tick);
- PERF_END (Handle, "LoadImage:", NULL, 0);
+ PERF_LOAD_IMAGE_END (Handle);
return Status;
}
@@ -1526,13 +1521,9 @@ CoreLoadImageEx (
)
{
EFI_STATUS Status;
- UINT64 Tick;
EFI_HANDLE Handle;
- Tick = 0;
- PERF_CODE (
- Tick = GetPerformanceCounter ();
- );
+ PERF_LOAD_IMAGE_BEGIN (NULL);
Status = CoreLoadImageCommon (
TRUE,
@@ -1555,8 +1546,7 @@ CoreLoadImageEx (
Handle = *ImageHandle;
}
- PERF_START (Handle, "LoadImage:", NULL, Tick);
- PERF_END (Handle, "LoadImage:", NULL, 0);
+ PERF_LOAD_IMAGE_END (Handle);
return Status;
}
@@ -1594,10 +1584,8 @@ CoreStartImage (
LOADED_IMAGE_PRIVATE_DATA *LastImage;
UINT64 HandleDatabaseKey;
UINTN SetJumpFlag;
- UINT64 Tick;
EFI_HANDLE Handle;
- Tick = 0;
Handle = ImageHandle;
Image = CoreLoadedImageInfo (ImageHandle);
@@ -1621,9 +1609,7 @@ CoreStartImage (
return EFI_UNSUPPORTED;
}
- PERF_CODE (
- Tick = GetPerformanceCounter ();
- );
+ PERF_START_IMAGE_BEGIN (Handle);
//
@@ -1647,8 +1633,7 @@ CoreStartImage (
// Image may be unloaded after return with failure,
// then ImageHandle may be invalid, so use NULL handle to record perf log.
//
- PERF_START (NULL, "StartImage:", NULL, Tick);
- PERF_END (NULL, "StartImage:", NULL, 0);
+ PERF_START_IMAGE_END (NULL);
//
// Pop the current start image context
@@ -1763,8 +1748,7 @@ CoreStartImage (
//
// Done
//
- PERF_START (Handle, "StartImage:", NULL, Tick);
- PERF_END (Handle, "StartImage:", NULL, 0);
+ PERF_START_IMAGE_END (Handle);
return Status;
}
diff --git a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c
index 0ac3fdde6a..c4f629dadf 100644
--- a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c
+++ b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c
@@ -1000,9 +1000,9 @@ PeiDispatcher (
//
PeimEntryPoint = (EFI_PEIM_ENTRY_POINT2)(UINTN)EntryPoint;
- PERF_START (PeimFileHandle, "PEIM", NULL, 0);
+ PERF_START_IMAGE_BEGIN (PeimFileHandle);
PeimEntryPoint(PeimFileHandle, (const EFI_PEI_SERVICES **) &Private->Ps);
- PERF_END (PeimFileHandle, "PEIM", NULL, 0);
+ PERF_START_IMAGE_END (PeimFileHandle);
}
//
@@ -1109,7 +1109,7 @@ PeiDispatcher (
// The PEIM has its dependencies satisfied, and its entry point
// has been found, so invoke it.
//
- PERF_START (PeimFileHandle, "PEIM", NULL, 0);
+ PERF_START_IMAGE_BEGIN (PeimFileHandle);
REPORT_STATUS_CODE_WITH_EXTENDED_DATA (
EFI_PROGRESS_CODE,
@@ -1145,7 +1145,7 @@ PeiDispatcher (
(VOID *)(&PeimFileHandle),
sizeof (PeimFileHandle)
);
- PERF_END (PeimFileHandle, "PEIM", NULL, 0);
+ PERF_START_IMAGE_END (PeimFileHandle);
}
}
diff --git a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
index 775bf18ce9..a52e6f0201 100644
--- a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
+++ b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c
@@ -352,18 +352,17 @@ PeiCore (
// Update performance measurements
//
if (OldCoreData == NULL) {
- PERF_START (NULL, "SEC", NULL, 1);
- PERF_END (NULL, "SEC", NULL, 0);
+ PERF_EVENT ("SEC"); // Means the end of SEC phase.
//
// If first pass, start performance measurement.
//
- PERF_START (NULL,"PEI", NULL, 0);
- PERF_START (NULL,"PreMem", NULL, 0);
+ PERF_CROSSMODULE_BEGIN ("PEI");
+ PERF_INMODULE_BEGIN ("PreMem");
} else {
- PERF_END (NULL,"PreMem", NULL, 0);
- PERF_START (NULL,"PostMem", NULL, 0);
+ PERF_INMODULE_END ("PreMem");
+ PERF_INMODULE_BEGIN ("PostMem");
}
//
@@ -411,7 +410,7 @@ PeiCore (
//
// Alert any listeners that there is permanent memory available
//
- PERF_START (NULL,"DisMem", NULL, 0);
+ PERF_INMODULE_BEGIN ("DisMem");
Status = PeiServicesInstallPpi (&mMemoryDiscoveredPpi);
//
@@ -419,7 +418,7 @@ PeiCore (
//
ProcessNotifyList (&PrivateData);
- PERF_END (NULL,"DisMem", NULL, 0);
+ PERF_INMODULE_END ("DisMem");
}
//
@@ -437,7 +436,7 @@ PeiCore (
//
// Measure PEI Core execution time.
//
- PERF_END (NULL, "PostMem", NULL, 0);
+ PERF_INMODULE_END ("PostMem");
//
// Lookup DXE IPL PPI
diff --git a/MdeModulePkg/Core/PiSmmCore/Dispatcher.c b/MdeModulePkg/Core/PiSmmCore/Dispatcher.c
index f32bbbd1b4..0b3b5924d3 100644
--- a/MdeModulePkg/Core/PiSmmCore/Dispatcher.c
+++ b/MdeModulePkg/Core/PiSmmCore/Dispatcher.c
@@ -321,13 +321,9 @@ SmmLoadImage (
EFI_DEVICE_PATH_PROTOCOL *HandleFilePath;
EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;
- UINT64 Tick;
- Tick = 0;
- PERF_CODE (
- Tick = GetPerformanceCounter ();
- );
-
+ PERF_LOAD_IMAGE_BEGIN (DriverEntry->ImageHandle);
+
Buffer = NULL;
Size = 0;
Fv = DriverEntry->Fv;
@@ -641,8 +637,7 @@ SmmLoadImage (
&DriverEntry->SmmLoadedImage
);
- PERF_START (DriverEntry->ImageHandle, "LoadImage:", NULL, Tick);
- PERF_END (DriverEntry->ImageHandle, "LoadImage:", NULL, 0);
+ PERF_LOAD_IMAGE_END (DriverEntry->ImageHandle);
//
// Print the load address and the PDB file name if it is available
@@ -909,9 +904,9 @@ SmmDispatcher (
// For each SMM driver, pass NULL as ImageHandle
//
RegisterSmramProfileImage (DriverEntry, TRUE);
- PERF_START (DriverEntry->ImageHandle, "StartImage:", NULL, 0);
+ PERF_START_IMAGE_BEGIN (DriverEntry->ImageHandle);
Status = ((EFI_IMAGE_ENTRY_POINT)(UINTN)DriverEntry->ImageEntryPoint)(DriverEntry->ImageHandle, gST);
- PERF_END (DriverEntry->ImageHandle, "StartImage:", NULL, 0);
+ PERF_START_IMAGE_END (DriverEntry->ImageHandle);
if (EFI_ERROR(Status)){
UnregisterSmramProfileImage (DriverEntry, TRUE);
SmmFreePages(DriverEntry->ImageBuffer, DriverEntry->NumberOfPage);
diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.c b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.c
index 686b9b45a5..45f40e0e60 100644
--- a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.c
+++ b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.c
@@ -644,7 +644,7 @@ SmmEntryPoint (
VOID *CommunicationBuffer;
UINTN BufferSize;
- PERF_START (NULL, "SMM", NULL, 0) ;
+ PERF_INMODULE_BEGIN ("SMM");
//
// Update SMST with contents of the SmmEntryContext structure
@@ -739,7 +739,7 @@ SmmEntryPoint (
gSmmCorePrivate->InSmm = FALSE;
}
- PERF_END (NULL, "SMM", NULL, 0) ;
+ PERF_INMODULE_END ("SMM");
}
/**
diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c b/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c
index b842d5824a..59bd1e4c6c 100644
--- a/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c
+++ b/MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c
@@ -45,7 +45,7 @@ BmEndOfBdsPerfCode (
//
// Record the performance data for End of BDS
//
- PERF_END(NULL, "BDS", NULL, 0);
+ PERF_CROSSMODULE_END("BDS");
return ;
}
diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c b/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c
index 80511814ee..d85b603d64 100644
--- a/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c
+++ b/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c
@@ -722,23 +722,20 @@ EfiBootManagerConnectAllDefaultConsoles (
if (!EFI_ERROR (Status)) {
OneConnected = TRUE;
}
- PERF_START (NULL, "ConOutReady", "BDS", 1);
- PERF_END (NULL, "ConOutReady", "BDS", 0);
+ PERF_EVENT ("ConOutReady");
Status = EfiBootManagerConnectConsoleVariable (ConIn);
if (!EFI_ERROR (Status)) {
OneConnected = TRUE;
}
- PERF_START (NULL, "ConInReady", "BDS", 1);
- PERF_END (NULL, "ConInReady", "BDS", 0);
+ PERF_EVENT ("ConInReady");
Status = EfiBootManagerConnectConsoleVariable (ErrOut);
if (!EFI_ERROR (Status)) {
OneConnected = TRUE;
}
- PERF_START (NULL, "ErrOutReady", "BDS", 1);
- PERF_END (NULL, "ErrOutReady", "BDS", 0);
+ PERF_EVENT ("ErrOutReady");
SystemTableUpdated = FALSE;
//
diff --git a/MdeModulePkg/Universal/BdsDxe/BdsEntry.c b/MdeModulePkg/Universal/BdsDxe/BdsEntry.c
index 3191a98630..acb25abfcd 100644
--- a/MdeModulePkg/Universal/BdsDxe/BdsEntry.c
+++ b/MdeModulePkg/Universal/BdsDxe/BdsEntry.c
@@ -725,8 +725,8 @@ BdsEntry (
//
// Insert the performance probe
//
- PERF_END (NULL, "DXE", NULL, 0);
- PERF_START (NULL, "BDS", NULL, 0);
+ PERF_CROSSMODULE_END("DXE");
+ PERF_CROSSMODULE_BEGIN("BDS");
DEBUG ((EFI_D_INFO, "[Bds] Entry...\n"));
//
@@ -888,9 +888,9 @@ BdsEntry (
// > Signal ReadyToLock event
// > Authentication action: 1. connect Auth devices; 2. Identify auto logon user.
//
- PERF_START (NULL, "PlatformBootManagerBeforeConsole", "BDS", 0);
+ PERF_INMODULE_BEGIN("PlatformBootManagerBeforeConsole");
PlatformBootManagerBeforeConsole ();
- PERF_END (NULL, "PlatformBootManagerBeforeConsole", "BDS", 0);
+ PERF_INMODULE_END("PlatformBootManagerBeforeConsole");
//
// Initialize hotkey service
@@ -907,7 +907,7 @@ BdsEntry (
//
// Connect consoles
//
- PERF_START (NULL, "EfiBootManagerConnectAllDefaultConsoles", "BDS", 0);
+ PERF_INMODULE_BEGIN("EfiBootManagerConnectAllDefaultConsoles");
if (PcdGetBool (PcdConInConnectOnDemand)) {
EfiBootManagerConnectConsoleVariable (ConOut);
EfiBootManagerConnectConsoleVariable (ErrOut);
@@ -917,7 +917,7 @@ BdsEntry (
} else {
EfiBootManagerConnectAllDefaultConsoles ();
}
- PERF_END (NULL, "EfiBootManagerConnectAllDefaultConsoles", "BDS", 0);
+ PERF_INMODULE_END("EfiBootManagerConnectAllDefaultConsoles");
//
// Do the platform specific action after the console is ready
@@ -930,9 +930,9 @@ BdsEntry (
// > Dispatch aditional option roms
// > Special boot: e.g.: USB boot, enter UI
//
- PERF_START (NULL, "PlatformBootManagerAfterConsole", "BDS", 0);
+ PERF_INMODULE_BEGIN("PlatformBootManagerAfterConsole");
PlatformBootManagerAfterConsole ();
- PERF_END (NULL, "PlatformBootManagerAfterConsole", "BDS", 0);
+ PERF_INMODULE_END("PlatformBootManagerAfterConsole");
//
// Boot to Boot Manager Menu when EFI_OS_INDICATIONS_BOOT_TO_FW_UI is set. Skip HotkeyBoot
//
@@ -1025,10 +1025,9 @@ BdsEntry (
//
// Execute Key####
//
- PERF_START (NULL, "BdsWait", "BDS", 0);
+ PERF_INMODULE_BEGIN ("BdsWait");
BdsWait (HotkeyTriggered);
- PERF_END (NULL, "BdsWait", "BDS", 0);
-
+ PERF_INMODULE_END ("BdsWait");
//
// BdsReadKeys() can be removed after all keyboard drivers invoke callback in timer callback.
//