[edk2] [PATCH] MdeModulePkg PeiCore: More debug messages for pre-memory allocations

Star Zeng posted 1 patch 6 years, 6 months ago
Failed in applying to current master (apply log)
MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
[edk2] [PATCH] MdeModulePkg PeiCore: More debug messages for pre-memory allocations
Posted by Star Zeng 6 years, 6 months ago
The debug messages can help developer to know the pre-memory
allocation usage.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Qing Huang <qing.huang@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
---
 MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c
index 04ece9a627d5..38299c5d98c6 100644
--- a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c
+++ b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c
@@ -675,7 +675,8 @@ PeiCheckAndSwitchStack (
     // usage in temporary memory for debugging.
     //
     DEBUG_CODE_BEGIN ();
-      UINT32  *StackPointer;
+      UINT32                *StackPointer;
+      EFI_PEI_HOB_POINTERS  Hob;
 
       for (StackPointer = (UINT32*)SecCoreData->StackBase;
            (StackPointer < (UINT32*)((UINTN)SecCoreData->StackBase + SecCoreData->StackSize)) \
@@ -691,6 +692,17 @@ PeiCheckAndSwitchStack (
       DEBUG ((DEBUG_INFO, "  temporary memory heap used for HobList: %d bytes.\n",
              (UINT32)((UINTN)Private->HobList.HandoffInformationTable->EfiFreeMemoryBottom - (UINTN)Private->HobList.Raw)
             ));
+      DEBUG ((DEBUG_INFO, "  temporary memory heap occupied by memory pages: %d bytes.\n",
+             (UINT32)(UINTN)(Private->HobList.HandoffInformationTable->EfiMemoryTop - Private->HobList.HandoffInformationTable->EfiFreeMemoryTop)
+            ));
+      for (Hob.Raw = Private->HobList.Raw; !END_OF_HOB_LIST(Hob); Hob.Raw = GET_NEXT_HOB(Hob)) {
+        if (GET_HOB_TYPE (Hob) == EFI_HOB_TYPE_MEMORY_ALLOCATION) {
+          DEBUG ((DEBUG_INFO, "Memory Allocation 0x%08x 0x%0lx - 0x%0lx\n", \
+            Hob.MemoryAllocation->AllocDescriptor.MemoryType,               \
+            Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress,        \
+            Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress + Hob.MemoryAllocation->AllocDescriptor.MemoryLength - 1));
+        }
+      }
     DEBUG_CODE_END ();
 
     if (PcdGet64(PcdLoadModuleAtFixAddressEnable) != 0 && (Private->HobList.HandoffInformationTable->BootMode != BOOT_ON_S3_RESUME)) {
-- 
2.7.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] MdeModulePkg PeiCore: More debug messages for pre-memory allocations
Posted by Gao, Liming 6 years, 6 months ago
Reviewed-by: Liming Gao <liming.gao@intel.com>

>-----Original Message-----
>From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Star
>Zeng
>Sent: Friday, September 29, 2017 2:44 PM
>To: edk2-devel@lists.01.org
>Cc: Gao, Liming <liming.gao@intel.com>; Zeng, Star <star.zeng@intel.com>
>Subject: [edk2] [PATCH] MdeModulePkg PeiCore: More debug messages for
>pre-memory allocations
>
>The debug messages can help developer to know the pre-memory
>allocation usage.
>
>Cc: Liming Gao <liming.gao@intel.com>
>Cc: Qing Huang <qing.huang@intel.com>
>Contributed-under: TianoCore Contribution Agreement 1.1
>Signed-off-by: Star Zeng <star.zeng@intel.com>
>---
> MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
>diff --git a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c
>b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c
>index 04ece9a627d5..38299c5d98c6 100644
>--- a/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c
>+++ b/MdeModulePkg/Core/Pei/Dispatcher/Dispatcher.c
>@@ -675,7 +675,8 @@ PeiCheckAndSwitchStack (
>     // usage in temporary memory for debugging.
>     //
>     DEBUG_CODE_BEGIN ();
>-      UINT32  *StackPointer;
>+      UINT32                *StackPointer;
>+      EFI_PEI_HOB_POINTERS  Hob;
>
>       for (StackPointer = (UINT32*)SecCoreData->StackBase;
>            (StackPointer < (UINT32*)((UINTN)SecCoreData->StackBase +
>SecCoreData->StackSize)) \
>@@ -691,6 +692,17 @@ PeiCheckAndSwitchStack (
>       DEBUG ((DEBUG_INFO, "  temporary memory heap used for HobList: %d
>bytes.\n",
>              (UINT32)((UINTN)Private->HobList.HandoffInformationTable-
>>EfiFreeMemoryBottom - (UINTN)Private->HobList.Raw)
>             ));
>+      DEBUG ((DEBUG_INFO, "  temporary memory heap occupied by memory
>pages: %d bytes.\n",
>+             (UINT32)(UINTN)(Private->HobList.HandoffInformationTable-
>>EfiMemoryTop - Private->HobList.HandoffInformationTable-
>>EfiFreeMemoryTop)
>+            ));
>+      for (Hob.Raw = Private->HobList.Raw; !END_OF_HOB_LIST(Hob);
>Hob.Raw = GET_NEXT_HOB(Hob)) {
>+        if (GET_HOB_TYPE (Hob) == EFI_HOB_TYPE_MEMORY_ALLOCATION) {
>+          DEBUG ((DEBUG_INFO, "Memory Allocation 0x%08x 0x%0lx - 0x%0lx\n",
>\
>+            Hob.MemoryAllocation->AllocDescriptor.MemoryType,               \
>+            Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress,        \
>+            Hob.MemoryAllocation->AllocDescriptor.MemoryBaseAddress +
>Hob.MemoryAllocation->AllocDescriptor.MemoryLength - 1));
>+        }
>+      }
>     DEBUG_CODE_END ();
>
>     if (PcdGet64(PcdLoadModuleAtFixAddressEnable) != 0 && (Private-
>>HobList.HandoffInformationTable->BootMode != BOOT_ON_S3_RESUME)) {
>--
>2.7.0.windows.1
>
>_______________________________________________
>edk2-devel mailing list
>edk2-devel@lists.01.org
>https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel