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] -=-=-=-=-=-=-=-=-=-=-=-