From c66ce449c50d16d58893a7caa0279098dde7059a Mon Sep 17 00:00:00 2001 From: Shiraz Hashim <shashim@codeaurora.org> Date: Wed, 15 Nov 2017 11:14:53 +0530 Subject: [PATCH] lrdp_v2: ignore page if page->order is greater than MAX_ORDER Throw a warning and continue to next page in case page->order is greater than MAX_ORDER. Change-Id: I955efb5375367cde796bb11cb971c88fb9edc971 --- .../parsers/pagetracking.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/linux-ramdump-parser-v2/parsers/pagetracking.py b/linux-ramdump-parser-v2/parsers/pagetracking.py index 89d51ef..3f5046e 100644 --- a/linux-ramdump-parser-v2/parsers/pagetracking.py +++ b/linux-ramdump-parser-v2/parsers/pagetracking.py @@ -77,6 +77,20 @@ class PageTracking(RamParser): out_frequency = self.ramdump.open_file('page_frequency.txt') sorted_pages = {} + ''' + Following based upon definition in include/linux/mmzone.h + + #ifndef CONFIG_FORCE_MAX_ZONEORDER + #define MAX_ORDER 11 + #else + #define MAX_ORDER CONFIG_FORCE_MAX_ZONEORDER + #endif + ''' + try: + max_order = int(self.ramdump.get_config_val("CONFIG_FORCE_MAX_ZONEORDER")) + except: + max_order = 11 + for pfn in for_each_pfn(self.ramdump): page = pfn_to_page(self.ramdump, pfn) order = 0 @@ -152,6 +166,11 @@ class PageTracking(RamParser): if nr_trace_entries <= 0 or nr_trace_entries > 16: continue + if order >= max_order: + out_tracking.write('PFN 0x{:x} page 0x{:x} skip as order 0x{:x}\n'.format( + pfn, page, order)) + continue + out_tracking.write('PFN 0x{:x}-0x{:x} page 0x{:x}\n'.format( pfn, pfn + (1 << order) - 1, page)) -- GitLab