summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Core
diff options
context:
space:
mode:
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2012-05-16 00:55:04 +0000
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2012-05-16 00:55:04 +0000
commitc2cb08df473b9269bace69e21266218fcc817703 (patch)
treef1386c620927077df21dba85c05c384abb1a9afe /MdeModulePkg/Core
parent64bb20fb9c05f1a7f8b731fae736069e1c2f0401 (diff)
downloadedk2-c2cb08df473b9269bace69e21266218fcc817703.tar.gz
edk2-c2cb08df473b9269bace69e21266218fcc817703.tar.bz2
edk2-c2cb08df473b9269bace69e21266218fcc817703.zip
Add Perf log for SMM driver Load and Start Image.
Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Siddharth Shah <Siddharth.Shah@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13314 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Core')
-rw-r--r--MdeModulePkg/Core/PiSmmCore/Dispatcher.c11
-rw-r--r--MdeModulePkg/Core/PiSmmCore/PiSmmCore.h3
-rw-r--r--MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf3
3 files changed, 15 insertions, 2 deletions
diff --git a/MdeModulePkg/Core/PiSmmCore/Dispatcher.c b/MdeModulePkg/Core/PiSmmCore/Dispatcher.c
index 651fe88c10..5edf184b92 100644
--- a/MdeModulePkg/Core/PiSmmCore/Dispatcher.c
+++ b/MdeModulePkg/Core/PiSmmCore/Dispatcher.c
@@ -320,6 +320,12 @@ 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 ();
+ );
Buffer = NULL;
Size = 0;
@@ -575,6 +581,9 @@ SmmLoadImage (
NULL
);
+ PERF_START (DriverEntry->ImageHandle, "LoadImage:", NULL, Tick);
+ PERF_END (DriverEntry->ImageHandle, "LoadImage:", NULL, 0);
+
//
// Print the load address and the PDB file name if it is available
//
@@ -836,7 +845,9 @@ SmmDispatcher (
//
// For each SMM driver, pass NULL as ImageHandle
//
+ PERF_START (DriverEntry->ImageHandle, "StartImage:", NULL, 0);
Status = ((EFI_IMAGE_ENTRY_POINT)(UINTN)DriverEntry->ImageEntryPoint)(DriverEntry->ImageHandle, gST);
+ PERF_END (DriverEntry->ImageHandle, "StartImage:", NULL, 0);
if (EFI_ERROR(Status)){
SmmFreePages(DriverEntry->ImageBuffer, DriverEntry->NumberOfPage);
}
diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h
index 19af786612..c63f5e2af0 100644
--- a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h
+++ b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h
@@ -2,7 +2,7 @@
The internal header file includes the common header files, defines
internal structure and functions used by SmmCore module.
- Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available
under the terms and conditions of the BSD License which accompanies this
distribution. The full text of the license may be found at
@@ -45,6 +45,7 @@
#include <Library/PcdLib.h>
#include <Library/SmmCorePlatformHookLib.h>
#include <Library/PerformanceLib.h>
+#include <Library/TimerLib.h>
#include "PiSmmCorePrivateData.h"
diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
index b226e3c9f7..1b25939e9c 100644
--- a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
+++ b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
@@ -1,7 +1,7 @@
## @file
# This module provide an SMM CIS compliant implementation of SMM Core.
#
-# Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -56,6 +56,7 @@
PcdLib
SmmCorePlatformHookLib
PerformanceLib
+ TimerLib
[Protocols]
gEfiDxeSmmReadyToLockProtocolGuid # PROTOCOL ALWAYS_CONSUMED