Add a group of new Perf macros in performance library for performance logging. Which will simplify the usage model of performance measurement. And also introduce new control functionality to disable different perf types.
Patch 1-2: Add a new internal protocol PERFORMANCE_MEASUREMENT_PROTOCOL, which can be used to log performance info. Patch 3-5: Add new Perf macros and update library instances in MdeModulePkg to for the implementation of new perf macros. Patch 6: Enhance the logic in DP tool since some new record and control functionality are introduced by new Perf macros. Patch 7-9: update the consumer codes in core to use the new Perf macros. Unit test: 1.DP tool can dump the performance data saved in the ACPI FPDT when set PcdEdkiiFpdtStringRecordEnableOnly to TRUE/FALSE. 2.Can disable specific knids of Perf entry through setting PcdPerformanceLibraryPropertyMask. V2: Patch 5: Share the common logics of creating FPDT record for new added Perf macros and existing Perf macros. Cc: Liming Gao <liming....@intel.com> Cc: Star Zeng <star.z...@intel.com> Cc: Michael Kinney <michael.d.kin...@intel.com> Dandan Bi (9): MdeModulePkg: Add PERFORMANCE_MEASUREMENT_PROTOCOL MdeModulePkg: Update Performance instances to use new protocol MdePkg/PerformanceLib.h: Add new Perf macros MdeModulePkg/ExtendedFirmwarePerf: Remove PerfId definitions MdeModulePkg: Update performance library instances ShellPkg/dp: Update dp tool to parse new Perf record MdeModulePkg: Use new added Perf macros SecurityPkg: Use new added Perf macros UefiCpuPkg: Use new added Perf macros MdeModulePkg/Core/Dxe/Dispatcher/Dispatcher.c | 7 + MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c | 8 +- MdeModulePkg/Core/Dxe/Hand/DriverSupport.c | 8 +- MdeModulePkg/Core/Dxe/Image/Image.c | 30 +- MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c | 8 +- MdeModulePkg/Core/Pei/PeiMain/PeiMain.c | 17 +- MdeModulePkg/Core/PiSmmCore/Dispatcher.c | 15 +- MdeModulePkg/Core/PiSmmCore/PiSmmCore.c | 4 +- .../Include/Guid/ExtendedFirmwarePerformance.h | 31 - MdeModulePkg/Include/Guid/PerformanceMeasurement.h | 91 ++ .../DxeCorePerformanceLib/DxeCorePerformanceLib.c | 1183 +++++++++++--------- .../DxeCorePerformanceLib.inf | 7 +- .../DxeCorePerformanceLibInternal.h | 217 +--- .../Library/DxePerformanceLib/DxePerformanceLib.c | 193 ++-- .../DxePerformanceLib/DxePerformanceLib.inf | 5 +- .../Library/PeiPerformanceLib/PeiPerformanceLib.c | 632 +++++++---- .../SmmCorePerformanceLib/SmmCorePerformanceLib.c | 960 ++++++++-------- .../SmmCorePerformanceLib.inf | 7 +- .../SmmCorePerformanceLibInternal.h | 215 +--- .../Library/SmmPerformanceLib/SmmPerformanceLib.c | 198 ++-- .../SmmPerformanceLib/SmmPerformanceLib.inf | 5 +- MdeModulePkg/Library/UefiBootManagerLib/BmBoot.c | 2 +- .../Library/UefiBootManagerLib/BmConsole.c | 9 +- MdeModulePkg/MdeModulePkg.dec | 3 + MdeModulePkg/Universal/BdsDxe/BdsEntry.c | 21 +- MdePkg/Include/Library/PerformanceLib.h | 408 ++++++- .../BasePerformanceLibNull/PerformanceLib.c | 57 +- MdePkg/MdePkg.dec | 9 +- MdePkg/MdePkg.uni | 6 + .../DxeRsa2048Sha256GuidedSectionExtractLib.c | 16 +- .../PeiRsa2048Sha256GuidedSectionExtractLib.c | 16 +- ShellPkg/DynamicCommand/DpDynamicCommand/Dp.c | 75 +- ShellPkg/DynamicCommand/DpDynamicCommand/Dp.h | 1 + .../DynamicCommand/DpDynamicCommand/DpInternal.h | 14 + ShellPkg/DynamicCommand/DpDynamicCommand/DpTrace.c | 4 +- .../DynamicCommand/DpDynamicCommand/DpUtilities.c | 31 + UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c | 16 +- 37 files changed, 2600 insertions(+), 1929 deletions(-) create mode 100644 MdeModulePkg/Include/Guid/PerformanceMeasurement.h -- 2.14.3.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel