Reviewed-by: Guo Dong <guo.d...@intel.com>

-----Original Message-----
From: Liu, Zhiguang <zhiguang....@intel.com> 
Sent: Wednesday, November 24, 2021 2:15 AM
To: devel@edk2.groups.io
Cc: Dong, Guo <guo.d...@intel.com>; Ni, Ray <ray...@intel.com>; Ma, Maurice 
<maurice...@intel.com>; You, Benjamin <benjamin....@intel.com>
Subject: [PATCH 2/2] UefiPayloadPkg: Add performance measurement feature

Add a Macro to enable performance measurement feature.
For any platform that uses UniversalPayload, we assume it supports 
BaseCpuTimerLib and use it to align timerlib to get more accurate performance 
result.

Cc: Guo Dong <guo.d...@intel.com>
Cc: Ray Ni <ray...@intel.com>
Cc: Maurice Ma <maurice...@intel.com>
Cc: Benjamin You <benjamin....@intel.com>
Signed-off-by: Zhiguang Liu <zhiguang....@intel.com>
---
 UefiPayloadPkg/UefiPayloadPkg.dsc | 34 +++++++++++++++++++++++++++++++++-
 UefiPayloadPkg/UefiPayloadPkg.fdf |  6 ++++++
 2 files changed, 39 insertions(+), 1 deletion(-)

diff --git a/UefiPayloadPkg/UefiPayloadPkg.dsc 
b/UefiPayloadPkg/UefiPayloadPkg.dsc
index 0df5f827c9..a1ef711f24 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.dsc
+++ b/UefiPayloadPkg/UefiPayloadPkg.dsc
@@ -109,6 +109,7 @@
   DEFINE RTC_TARGET_REGISTER = 0x71    DEFINE SERIAL_DRIVER_ENABLE = TRUE+  
DEFINE PERFORMANCE_MEASUREMENT_ENABLE  = FALSE  [BuildOptions]   *_*_*_CC_FLAGS 
                = -D DISABLE_NEW_DEPRECATED_INTERFACES@@ -216,7 +217,11 @@
   #   # Platform   #+!if $(UNIVERSAL_PAYLOAD) == TRUE+  
TimerLib|UefiCpuPkg/Library/CpuTimerLib/BaseCpuTimerLib.inf+!else   
TimerLib|UefiPayloadPkg/Library/AcpiTimerLib/AcpiTimerLib.inf+!endif   
ResetSystemLib|UefiPayloadPkg/Library/ResetSystemLib/ResetSystemLib.inf   
SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
   PlatformHookLib|UefiPayloadPkg/Library/PlatformHookLib/PlatformHookLib.inf@@ 
-277,6 +282,9 @@
   DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf 
!endif   
CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf+!if
 $(PERFORMANCE_MEASUREMENT_ENABLE)+  
PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf+!endif
  [LibraryClasses.common.DXE_DRIVER]   
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf@@ -288,17 +296,26 @@
 !endif   
CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
   MpInitLib|UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf+!if 
$(PERFORMANCE_MEASUREMENT_ENABLE)+  
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf+!endif
  [LibraryClasses.common.DXE_RUNTIME_DRIVER]   
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf   
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
   
ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf
   
VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf+!if
 $(PERFORMANCE_MEASUREMENT_ENABLE)+  
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf+!endif
  [LibraryClasses.common.UEFI_DRIVER,LibraryClasses.common.UEFI_APPLICATION]   
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf   
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
   
ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf+!if
 $(PERFORMANCE_MEASUREMENT_ENABLE)+  
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf+!endif
  [LibraryClasses.common.SMM_CORE] !if $(SMM_SUPPORT) == TRUE@@ -309,6 +326,9 @@
   
SmmCorePlatformHookLib|MdeModulePkg/Library/SmmCorePlatformHookLibNull/SmmCorePlatformHookLibNull.inf
   SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf   
ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf+!if
 $(PERFORMANCE_MEASUREMENT_ENABLE)+  
PerformanceLib|MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLib.inf+!endif
 !endif  [LibraryClasses.common.DXE_SMM_DRIVER]@@ -324,6 +344,9 @@
   SmmCpuFeaturesLib|UefiCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf 
  
CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf
   
ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf+!if
 $(PERFORMANCE_MEASUREMENT_ENABLE)+  
PerformanceLib|MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.inf+!endif
 !endif !if $(VARIABLE_SUPPORT) == "SPI"   
SpiFlashLib|UefiPayloadPkg/Library/SpiFlashLib/SpiFlashLib.inf@@ -366,6 +389,10 
@@
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugLoadImageMethod|0x2 !endif   
gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmStackSize|0x4000+  
gEfiMdeModulePkgTokenSpaceGuid.PcdEdkiiFpdtStringRecordEnableOnly| TRUE+!if 
$(PERFORMANCE_MEASUREMENT_ENABLE)+  
gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask       | 0x1+!endif  
[PcdsPatchableInModule.X64]   
gPcAtChipsetPkgTokenSpaceGuid.PcdRtcIndexRegister|$(RTC_INDEX_REGISTER)@@ 
-633,7 +660,9 @@
   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf !endif   
UefiPayloadPkg/GraphicsOutputDxe/GraphicsOutputDxe.inf-+!if 
$(PERFORMANCE_MEASUREMENT_ENABLE)+  
MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.inf+!endif
   #   # SMM Support   #@@ -646,6 +675,9 @@
   UefiPayloadPkg/PchSmiDispatchSmm/PchSmiDispatchSmm.inf   
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf   
UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf+!if $(PERFORMANCE_MEASUREMENT_ENABLE)+  
MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceSmm.inf+!endif
 !endif  !if $(VARIABLE_SUPPORT) == "EMU"diff --git 
a/UefiPayloadPkg/UefiPayloadPkg.fdf b/UefiPayloadPkg/UefiPayloadPkg.fdf
index 2f5cb17f62..8e7b34e783 100644
--- a/UefiPayloadPkg/UefiPayloadPkg.fdf
+++ b/UefiPayloadPkg/UefiPayloadPkg.fdf
@@ -115,6 +115,9 @@ INF 
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe
 INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf 
!endif INF 
PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf+!if 
$(PERFORMANCE_MEASUREMENT_ENABLE)+  INF 
MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableDxe/FirmwarePerformanceDxe.inf+!endif
  # # SMM Support@@ -128,6 +131,9 @@ INF 
PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf
   INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf   INF 
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf   INF 
UefiPayloadPkg/PchSmiDispatchSmm/PchSmiDispatchSmm.inf+!if 
$(PERFORMANCE_MEASUREMENT_ENABLE)+  INF  
MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceSmm.inf+!endif
 !endif  !if $(VARIABLE_SUPPORT) == "EMU"-- 
2.32.0.windows.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#84130): https://edk2.groups.io/g/devel/message/84130
Mute This Topic: https://groups.io/mt/87277901/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to