From e29bf05efdd8041c66d846c0cd5a5442d475f385 Mon Sep 17 00:00:00 2001 From: Carsten Grohmann Date: Sun, 15 Apr 2018 20:14:29 +0200 Subject: [PATCH] Integrate memory page details --- OOMAnalyser.html | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ OOMAnalyser.py | 25 ++++++++++++++++++------ 2 files changed, 68 insertions(+), 6 deletions(-) diff --git a/OOMAnalyser.html b/OOMAnalyser.html index ca69ea0..fb29a62 100644 --- a/OOMAnalyser.html +++ b/OOMAnalyser.html @@ -200,6 +200,55 @@ function goBack() {
+ + + + + Memory Pages + + + + + RAM pages + + Total number of RAM pages + + + + HighMem/MovableOnly + + Number of pages in the High Memory Area or marked movable for Contiguous Memory Allocator (CMA). +
+ HighMem pages are also counted in the total page number. + + + + Reserved pages + + Number of reserved pages + + + + CMA reserved pages + 0 + Pages reserved for Contiguous Memory Allocator (CMA) + + + + Pagetable Cache + 0 + Number of pages in pagetable cache + + + + Number of pages with hardware errors + 0 + Pages with uncorrectable memory errors + + + + + Memory Usage Details diff --git a/OOMAnalyser.py b/OOMAnalyser.py index a763099..8ceb80e 100644 --- a/OOMAnalyser.py +++ b/OOMAnalyser.py @@ -373,11 +373,25 @@ Killed process 6576 (java) total-vm:33914892kB, anon-rss:20629004kB, file-rss:0k re.MULTILINE) REC_PAGEINFO = re.compile( - r'^(?P\d)+ pages RAM' + r'^(?P\d+) pages RAM' + r'(' r'(?:\n)' r'^(?P\d+) pages HighMem/MovableOnly' + r')?' r'(?:\n)' - r'^(?P\d+) pages reserved', + r'^(?P\d+) pages reserved' + r'(' + r'(?:\n)' + r'^(?P\d+) pages cma reserved' + r')?' + r'(' + r'(?:\n)' + r'^(?P\d+) pages in pagetable cache' + r')?' + r'(' + r'(?:\n)' + r'^(?P\d+) pages hwpoisoned' + r')?', re.MULTILINE) REC_PROCESSES = re.compile( @@ -625,10 +639,9 @@ Killed process 6576 (java) total-vm:33914892kB, anon-rss:20629004kB, file-rss:0k if match: self.details.update(match.groupdict()) - # TODO Add to HTML - #match = self.REC_PAGEINFO.search(self.oom.text) - # if match: - # self.details.update(match.groupdict()) + match = self.REC_PAGEINFO.search(self.oom.text) + if match: + self.details.update(match.groupdict()) match = self.REC_PROCESSES.search(self.oom.text) if match: