Replace old Perf macros with the new added ones.
Cc: Liming Gao <liming.gao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BOOLEAN ReadyToRun;\r
EFI_EVENT DxeDispatchEvent;\r
\r
+ PERF_FUNCTION_BEGIN ();\r
\r
if (gDispatcherRunning) {\r
//\r
\r
gDispatcherRunning = FALSE;\r
\r
+ PERF_FUNCTION_END ();\r
+\r
return ReturnStatus;\r
}\r
\r
VOID\r
)\r
{\r
+ PERF_FUNCTION_BEGIN ();\r
+\r
mFwVolEvent = EfiCreateProtocolNotifyEvent (\r
&gEfiFirmwareVolume2ProtocolGuid,\r
TPL_CALLBACK,\r
NULL,\r
&mFwVolEventRegistration\r
);\r
+\r
+ PERF_FUNCTION_END ();\r
}\r
\r
//\r
// Call constructor for all libraries\r
//\r
ProcessLibraryConstructorList (gDxeCoreImageHandle, gDxeCoreST);\r
- PERF_END (NULL,"PEI", NULL, 0) ;\r
- PERF_START (NULL,"DXE", NULL, 0) ;\r
+ PERF_CROSSMODULE_END ("PEI");\r
+ PERF_CROSSMODULE_BEGIN ("DXE");\r
\r
//\r
// Report DXE Core image information to the PE/COFF Extra Action Library\r
//\r
// Initialize the DXE Dispatcher\r
//\r
- PERF_START (NULL,"CoreInitializeDispatcher", "DxeMain", 0) ;\r
CoreInitializeDispatcher ();\r
- PERF_END (NULL,"CoreInitializeDispatcher", "DxeMain", 0) ;\r
\r
//\r
// Invoke the DXE Dispatcher\r
//\r
- PERF_START (NULL, "CoreDispatcher", "DxeMain", 0);\r
CoreDispatcher ();\r
- PERF_END (NULL, "CoreDispatcher", "DxeMain", 0);\r
\r
//\r
// Display Architectural protocols that were not loaded if this is DEBUG build\r
for (Index = 0; (Index < NumberOfSortedDriverBindingProtocols) && !DriverFound; Index++) {\r
if (SortedDriverBindingProtocols[Index] != NULL) {\r
DriverBinding = SortedDriverBindingProtocols[Index];\r
- PERF_START (DriverBinding->DriverBindingHandle, "DB:Support:", NULL, 0);\r
+ PERF_DRIVER_BINDING_SUPPORT_BEGIN (DriverBinding->DriverBindingHandle, ControllerHandle);\r
Status = DriverBinding->Supported(\r
DriverBinding,\r
ControllerHandle,\r
RemainingDevicePath\r
);\r
- PERF_END (DriverBinding->DriverBindingHandle, "DB:Support:", NULL, 0);\r
+ PERF_DRIVER_BINDING_SUPPORT_END (DriverBinding->DriverBindingHandle, ControllerHandle);\r
if (!EFI_ERROR (Status)) {\r
SortedDriverBindingProtocols[Index] = NULL;\r
DriverFound = TRUE;\r
// A driver was found that supports ControllerHandle, so attempt to start the driver\r
// on ControllerHandle.\r
//\r
- PERF_START (DriverBinding->DriverBindingHandle, "DB:Start:", NULL, 0);\r
+ PERF_DRIVER_BINDING_START_BEGIN (DriverBinding->DriverBindingHandle, ControllerHandle);\r
Status = DriverBinding->Start (\r
DriverBinding,\r
ControllerHandle,\r
RemainingDevicePath\r
);\r
- PERF_END (DriverBinding->DriverBindingHandle, "DB:Start:", NULL, 0);\r
+ PERF_DRIVER_BINDING_START_END (DriverBinding->DriverBindingHandle, ControllerHandle);\r
\r
if (!EFI_ERROR (Status)) {\r
//\r
)\r
{\r
EFI_STATUS Status;\r
- UINT64 Tick;\r
EFI_HANDLE Handle;\r
\r
- Tick = 0;\r
- PERF_CODE (\r
- Tick = GetPerformanceCounter ();\r
- );\r
+ PERF_LOAD_IMAGE_BEGIN (NULL);\r
\r
Status = CoreLoadImageCommon (\r
BootPolicy,\r
Handle = *ImageHandle;\r
}\r
\r
- PERF_START (Handle, "LoadImage:", NULL, Tick);\r
- PERF_END (Handle, "LoadImage:", NULL, 0);\r
+ PERF_LOAD_IMAGE_END (Handle);\r
\r
return Status;\r
}\r
)\r
{\r
EFI_STATUS Status;\r
- UINT64 Tick;\r
EFI_HANDLE Handle;\r
\r
- Tick = 0;\r
- PERF_CODE (\r
- Tick = GetPerformanceCounter ();\r
- );\r
+ PERF_LOAD_IMAGE_BEGIN (NULL);\r
\r
Status = CoreLoadImageCommon (\r
TRUE,\r
Handle = *ImageHandle;\r
}\r
\r
- PERF_START (Handle, "LoadImage:", NULL, Tick);\r
- PERF_END (Handle, "LoadImage:", NULL, 0);\r
+ PERF_LOAD_IMAGE_END (Handle);\r
\r
return Status;\r
}\r
LOADED_IMAGE_PRIVATE_DATA *LastImage;\r
UINT64 HandleDatabaseKey;\r
UINTN SetJumpFlag;\r
- UINT64 Tick;\r
EFI_HANDLE Handle;\r
\r
- Tick = 0;\r
Handle = ImageHandle;\r
\r
Image = CoreLoadedImageInfo (ImageHandle);\r
return EFI_UNSUPPORTED;\r
}\r
\r
- PERF_CODE (\r
- Tick = GetPerformanceCounter ();\r
- );\r
+ PERF_START_IMAGE_BEGIN (Handle);\r
\r
\r
//\r
// Image may be unloaded after return with failure,\r
// then ImageHandle may be invalid, so use NULL handle to record perf log.\r
//\r
- PERF_START (NULL, "StartImage:", NULL, Tick);\r
- PERF_END (NULL, "StartImage:", NULL, 0);\r
+ PERF_START_IMAGE_END (NULL);\r
\r
//\r
// Pop the current start image context\r
//\r
// Done\r
//\r
- PERF_START (Handle, "StartImage:", NULL, Tick);\r
- PERF_END (Handle, "StartImage:", NULL, 0);\r
+ PERF_START_IMAGE_END (Handle);\r
return Status;\r
}\r
\r
//\r
PeimEntryPoint = (EFI_PEIM_ENTRY_POINT2)(UINTN)EntryPoint;\r
\r
- PERF_START (PeimFileHandle, "PEIM", NULL, 0);\r
+ PERF_START_IMAGE_BEGIN (PeimFileHandle);\r
PeimEntryPoint(PeimFileHandle, (const EFI_PEI_SERVICES **) &Private->Ps);\r
- PERF_END (PeimFileHandle, "PEIM", NULL, 0);\r
+ PERF_START_IMAGE_END (PeimFileHandle);\r
}\r
\r
//\r
// The PEIM has its dependencies satisfied, and its entry point\r
// has been found, so invoke it.\r
//\r
- PERF_START (PeimFileHandle, "PEIM", NULL, 0);\r
+ PERF_START_IMAGE_BEGIN (PeimFileHandle);\r
\r
REPORT_STATUS_CODE_WITH_EXTENDED_DATA (\r
EFI_PROGRESS_CODE,\r
(VOID *)(&PeimFileHandle),\r
sizeof (PeimFileHandle)\r
);\r
- PERF_END (PeimFileHandle, "PEIM", NULL, 0);\r
+ PERF_START_IMAGE_END (PeimFileHandle);\r
\r
}\r
}\r
// Update performance measurements \r
//\r
if (OldCoreData == NULL) {\r
- PERF_START (NULL, "SEC", NULL, 1);\r
- PERF_END (NULL, "SEC", NULL, 0);\r
+ PERF_EVENT ("SEC"); // Means the end of SEC phase.\r
\r
//\r
// If first pass, start performance measurement.\r
//\r
- PERF_START (NULL,"PEI", NULL, 0);\r
- PERF_START (NULL,"PreMem", NULL, 0);\r
+ PERF_CROSSMODULE_BEGIN ("PEI");\r
+ PERF_INMODULE_BEGIN ("PreMem");\r
\r
} else {\r
- PERF_END (NULL,"PreMem", NULL, 0);\r
- PERF_START (NULL,"PostMem", NULL, 0);\r
+ PERF_INMODULE_END ("PreMem");\r
+ PERF_INMODULE_BEGIN ("PostMem");\r
}\r
\r
//\r
//\r
// Alert any listeners that there is permanent memory available\r
//\r
- PERF_START (NULL,"DisMem", NULL, 0);\r
+ PERF_INMODULE_BEGIN ("DisMem");\r
Status = PeiServicesInstallPpi (&mMemoryDiscoveredPpi);\r
\r
//\r
//\r
ProcessNotifyList (&PrivateData);\r
\r
- PERF_END (NULL,"DisMem", NULL, 0);\r
+ PERF_INMODULE_END ("DisMem");\r
}\r
\r
//\r
//\r
// Measure PEI Core execution time.\r
//\r
- PERF_END (NULL, "PostMem", NULL, 0);\r
+ PERF_INMODULE_END ("PostMem");\r
\r
//\r
// Lookup DXE IPL PPI\r
EFI_DEVICE_PATH_PROTOCOL *HandleFilePath;\r
EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;\r
PE_COFF_LOADER_IMAGE_CONTEXT ImageContext;\r
- UINT64 Tick;\r
\r
- Tick = 0;\r
- PERF_CODE (\r
- Tick = GetPerformanceCounter ();\r
- );\r
- \r
+ PERF_LOAD_IMAGE_BEGIN (DriverEntry->ImageHandle);\r
+\r
Buffer = NULL;\r
Size = 0;\r
Fv = DriverEntry->Fv;\r
&DriverEntry->SmmLoadedImage\r
);\r
\r
- PERF_START (DriverEntry->ImageHandle, "LoadImage:", NULL, Tick);\r
- PERF_END (DriverEntry->ImageHandle, "LoadImage:", NULL, 0);\r
+ PERF_LOAD_IMAGE_END (DriverEntry->ImageHandle);\r
\r
//\r
// Print the load address and the PDB file name if it is available\r
// For each SMM driver, pass NULL as ImageHandle\r
//\r
RegisterSmramProfileImage (DriverEntry, TRUE);\r
- PERF_START (DriverEntry->ImageHandle, "StartImage:", NULL, 0);\r
+ PERF_START_IMAGE_BEGIN (DriverEntry->ImageHandle);\r
Status = ((EFI_IMAGE_ENTRY_POINT)(UINTN)DriverEntry->ImageEntryPoint)(DriverEntry->ImageHandle, gST);\r
- PERF_END (DriverEntry->ImageHandle, "StartImage:", NULL, 0);\r
+ PERF_START_IMAGE_END (DriverEntry->ImageHandle);\r
if (EFI_ERROR(Status)){\r
UnregisterSmramProfileImage (DriverEntry, TRUE);\r
SmmFreePages(DriverEntry->ImageBuffer, DriverEntry->NumberOfPage);\r
VOID *CommunicationBuffer;\r
UINTN BufferSize;\r
\r
- PERF_START (NULL, "SMM", NULL, 0) ;\r
+ PERF_INMODULE_BEGIN ("SMM");\r
\r
//\r
// Update SMST with contents of the SmmEntryContext structure\r
gSmmCorePrivate->InSmm = FALSE;\r
}\r
\r
- PERF_END (NULL, "SMM", NULL, 0) ;\r
+ PERF_INMODULE_END ("SMM");\r
}\r
\r
/**\r
//\r
// Record the performance data for End of BDS\r
//\r
- PERF_END(NULL, "BDS", NULL, 0);\r
+ PERF_CROSSMODULE_END("BDS");\r
\r
return ;\r
}\r
if (!EFI_ERROR (Status)) {\r
OneConnected = TRUE;\r
}\r
- PERF_START (NULL, "ConOutReady", "BDS", 1);\r
- PERF_END (NULL, "ConOutReady", "BDS", 0);\r
+ PERF_EVENT ("ConOutReady");\r
\r
\r
Status = EfiBootManagerConnectConsoleVariable (ConIn);\r
if (!EFI_ERROR (Status)) {\r
OneConnected = TRUE;\r
}\r
- PERF_START (NULL, "ConInReady", "BDS", 1);\r
- PERF_END (NULL, "ConInReady", "BDS", 0);\r
+ PERF_EVENT ("ConInReady");\r
\r
Status = EfiBootManagerConnectConsoleVariable (ErrOut);\r
if (!EFI_ERROR (Status)) {\r
OneConnected = TRUE;\r
}\r
- PERF_START (NULL, "ErrOutReady", "BDS", 1);\r
- PERF_END (NULL, "ErrOutReady", "BDS", 0);\r
+ PERF_EVENT ("ErrOutReady");\r
\r
SystemTableUpdated = FALSE;\r
//\r
//\r
// Insert the performance probe\r
//\r
- PERF_END (NULL, "DXE", NULL, 0);\r
- PERF_START (NULL, "BDS", NULL, 0);\r
+ PERF_CROSSMODULE_END("DXE");\r
+ PERF_CROSSMODULE_BEGIN("BDS");\r
DEBUG ((EFI_D_INFO, "[Bds] Entry...\n"));\r
\r
//\r
// > Signal ReadyToLock event\r
// > Authentication action: 1. connect Auth devices; 2. Identify auto logon user.\r
//\r
- PERF_START (NULL, "PlatformBootManagerBeforeConsole", "BDS", 0);\r
+ PERF_INMODULE_BEGIN("PlatformBootManagerBeforeConsole");\r
PlatformBootManagerBeforeConsole ();\r
- PERF_END (NULL, "PlatformBootManagerBeforeConsole", "BDS", 0);\r
+ PERF_INMODULE_END("PlatformBootManagerBeforeConsole");\r
\r
//\r
// Initialize hotkey service\r
//\r
// Connect consoles\r
//\r
- PERF_START (NULL, "EfiBootManagerConnectAllDefaultConsoles", "BDS", 0);\r
+ PERF_INMODULE_BEGIN("EfiBootManagerConnectAllDefaultConsoles");\r
if (PcdGetBool (PcdConInConnectOnDemand)) {\r
EfiBootManagerConnectConsoleVariable (ConOut);\r
EfiBootManagerConnectConsoleVariable (ErrOut);\r
} else {\r
EfiBootManagerConnectAllDefaultConsoles ();\r
}\r
- PERF_END (NULL, "EfiBootManagerConnectAllDefaultConsoles", "BDS", 0);\r
+ PERF_INMODULE_END("EfiBootManagerConnectAllDefaultConsoles");\r
\r
//\r
// Do the platform specific action after the console is ready\r
// > Dispatch aditional option roms\r
// > Special boot: e.g.: USB boot, enter UI\r
// \r
- PERF_START (NULL, "PlatformBootManagerAfterConsole", "BDS", 0);\r
+ PERF_INMODULE_BEGIN("PlatformBootManagerAfterConsole");\r
PlatformBootManagerAfterConsole ();\r
- PERF_END (NULL, "PlatformBootManagerAfterConsole", "BDS", 0);\r
+ PERF_INMODULE_END("PlatformBootManagerAfterConsole");\r
//\r
// Boot to Boot Manager Menu when EFI_OS_INDICATIONS_BOOT_TO_FW_UI is set. Skip HotkeyBoot\r
//\r
//\r
// Execute Key####\r
//\r
- PERF_START (NULL, "BdsWait", "BDS", 0);\r
+ PERF_INMODULE_BEGIN ("BdsWait");\r
BdsWait (HotkeyTriggered);\r
- PERF_END (NULL, "BdsWait", "BDS", 0);\r
-\r
+ PERF_INMODULE_END ("BdsWait");\r
//\r
// BdsReadKeys() can be removed after all keyboard drivers invoke callback in timer callback.\r
//\r