Series reviewed-by: [email protected]
> -----Original Message----- > From: edk2-devel [mailto:[email protected]] On Behalf Of > Star Zeng > Sent: Sunday, June 26, 2016 1:36 PM > To: [email protected] > Cc: Gao, Liming <[email protected]>; Jiewen Yao > <[email protected]> > Subject: [edk2] [PATCH 00/10] Enhance memory profile for memory leak > detection > > Current memory profile feature: > 1. Shows which line of code calls gBS->AllocateXXX(). But most entries > are from MemoryAllocationLib. > 2. Records at the start. > 3. Records all modules. > > Enhanced memory profile feature: > 1. User can know which line of code calls AllocateXXX() API instead of > gBS->Allocate(). > 2. User can know which line of code calls a specific API that will call > AllocateXXX(). > 3. User can know total memory allocated by a specific line of code. > 4. User can configure to record single module. > 5. User can configure when to enable recording. > 6. User can know RVA<->Symbol (Function, Source, Line). > > Cc: Jiewen Yao <[email protected]> > Cc: Liming Gao <[email protected]> > Cc: Yonghong Zhu <[email protected]> > > Star Zeng (10): > MdeModulePkg: Extend memory profile definitions for memory leak > detection > MdeModulePkg DxeCore: Enhance memory profile for memory leak > detection > MdeModulePkg PiSmmCore: Enhance memory profile for memory leak > detection > MdeModulePkg MemoryProfileInfo: Enhance output info for memory leak > detection > MdeModulePkg: Introduce new library class MemoryProfileLib > MdeModulePkg: Implement new library instance > UefiMemoryAllocationProfileLib > MdeModulePkg: Implement new library instance > SmmMemoryAllocationProfileLib > MdeModulePkg DxeCoreMemoryAllocationLib: Extend to support > MemoryProfileLib > MdeModulePkg PiSmmCoreMemoryAllocLib: Extend to support > MemoryProfileLib > BaseTools Scripts: Add MemoryProfileSymbolGen.py > > BaseTools/Scripts/MemoryProfileSymbolGen.py | 281 +++++ > .../MemoryProfileInfo/MemoryProfileInfo.c | 788 > +++++++++--- > .../MemoryProfileInfo/MemoryProfileInfo.inf | 3 +- > MdeModulePkg/Core/Dxe/DxeMain.h | 35 +- > MdeModulePkg/Core/Dxe/DxeMain.inf | 1 + > MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c | 817 > ++++++++---- > MdeModulePkg/Core/Dxe/Mem/Page.c | 18 +- > MdeModulePkg/Core/Dxe/Mem/Pool.c | 18 +- > MdeModulePkg/Core/PiSmmCore/Page.c | 20 +- > MdeModulePkg/Core/PiSmmCore/PiSmmCore.c | 3 +- > MdeModulePkg/Core/PiSmmCore/PiSmmCore.h | 57 +- > MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf | 6 +- > MdeModulePkg/Core/PiSmmCore/Pool.c | 20 +- > MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c | 1331 > +++++++++++++++----- > MdeModulePkg/Include/Guid/MemoryProfile.h | 189 ++- > MdeModulePkg/Include/Library/MemoryProfileLib.h | 53 + > .../DxeCoreMemoryAllocationLib.inf | 15 +- > .../DxeCoreMemoryAllocationLib.uni | 12 +- > .../DxeCoreMemoryProfileLib.c | 57 + > .../DxeCoreMemoryProfileServices.h | 54 + > .../MemoryAllocationLib.c | 277 +++- > .../MemoryAllocationLib.c | 188 ++- > .../PiSmmCoreMemoryAllocationLib.inf | 17 +- > .../PiSmmCoreMemoryAllocationLib.uni | 12 +- > .../PiSmmCoreMemoryProfileLib.c | 123 ++ > .../PiSmmCoreMemoryProfileServices.h | 54 + > .../MemoryAllocationLib.c | 613 > ++++++--- > .../SmmMemoryAllocationProfileLib.inf | 62 + > .../SmmMemoryAllocationProfileLib.uni | 23 + > .../SmmMemoryProfileLib.c | 143 +++ > .../DxeMemoryProfileLib.c | 102 ++ > .../MemoryAllocationLib.c | 312 ++++- > .../UefiMemoryAllocationProfileLib.inf | 53 + > .../UefiMemoryAllocationProfileLib.uni | 23 + > MdeModulePkg/MdeModulePkg.dec | 20 + > MdeModulePkg/MdeModulePkg.dsc | 2 + > MdeModulePkg/MdeModulePkg.uni | 17 +- > 37 files changed, 4805 insertions(+), 1014 deletions(-) > create mode 100644 BaseTools/Scripts/MemoryProfileSymbolGen.py > create mode 100644 MdeModulePkg/Include/Library/MemoryProfileLib.h > create mode 100644 > MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryPro > fileLib.c > create mode 100644 > MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryPro > fileServices.h > create mode 100644 > MdeModulePkg/Library/PiSmmCoreMemoryAllocationLib/PiSmmCoreMemo > ryProfileLib.c > create mode 100644 > MdeModulePkg/Library/PiSmmCoreMemoryAllocationLib/PiSmmCoreMemo > ryProfileServices.h > copy MdeModulePkg/Library/{PiSmmCoreMemoryAllocationLib => > SmmMemoryAllocationProfileLib}/MemoryAllocationLib.c (55%) > create mode 100644 > MdeModulePkg/Library/SmmMemoryAllocationProfileLib/SmmMemoryAllo > cationProfileLib.inf > create mode 100644 > MdeModulePkg/Library/SmmMemoryAllocationProfileLib/SmmMemoryAllo > cationProfileLib.uni > create mode 100644 > MdeModulePkg/Library/SmmMemoryAllocationProfileLib/SmmMemoryProfi > leLib.c > create mode 100644 > MdeModulePkg/Library/UefiMemoryAllocationProfileLib/DxeMemoryProfile > Lib.c > copy MdeModulePkg/Library/{DxeCoreMemoryAllocationLib => > UefiMemoryAllocationProfileLib}/MemoryAllocationLib.c (74%) > create mode 100644 > MdeModulePkg/Library/UefiMemoryAllocationProfileLib/UefiMemoryAlloca > tionProfileLib.inf > create mode 100644 > MdeModulePkg/Library/UefiMemoryAllocationProfileLib/UefiMemoryAlloca > tionProfileLib.uni > > -- > 2.7.0.windows.1 > > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

