aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeongJae Park <sj@kernel.org>2024-04-21 09:46:55 -0700
committerSeongJae Park <sj@kernel.org>2024-04-21 09:55:34 -0700
commit176b497476a64303d0530ab29282c729bf255c61 (patch)
tree93e72f841b3993a37cfbfcdd9c6591ed42e19021
parentb17e278b9d9dd660d6fb49dc89437b06475c96c2 (diff)
downloaddamo-176b497476a64303d0530ab29282c729bf255c61.tar.gz
_damo_records: Save/load system memory footprint
Signed-off-by: SeongJae Park <sj@kernel.org>
-rw-r--r--_damo_records.py12
-rw-r--r--damo_report_footprint.py3
2 files changed, 13 insertions, 2 deletions
diff --git a/_damo_records.py b/_damo_records.py
index 04e050ea..b464bda6 100644
--- a/_damo_records.py
+++ b/_damo_records.py
@@ -610,10 +610,15 @@ class MemFootprintsSnapshot:
self.footprints = {}
for pid in pids:
self.footprints[pid] = ProcMemFootprint(pid)
+ self.footprints['sys'] = SysMemFootprint(populate=True)
def to_kvpairs(self):
footprints = []
- for pid, fp in self.footprints.items():
+ for target, fp in self.footprints.items():
+ if target == 'sys':
+ pid = None
+ else:
+ pid = target
footprints.append({'pid': pid, 'footprint': fp.to_kvpairs()})
return {'time': self.time, 'footprints': footprints}
@@ -624,7 +629,10 @@ class MemFootprintsSnapshot:
self.footprints = {}
for fp in kvpairs['footprints']:
pid, footprint = fp['pid'], fp['footprint']
- self.footprints[pid] = ProcMemFootprint.from_kvpairs(footprint)
+ if pid is None:
+ self.footprints[pid] = SysMemFootprint.from_kvpairs(footprint)
+ else:
+ self.footprints[pid] = ProcMemFootprint.from_kvpairs(footprint)
return self
def record_mem_footprint(kdamonds, snapshots):
diff --git a/damo_report_footprint.py b/damo_report_footprint.py
index 88043de2..a8d50642 100644
--- a/damo_report_footprint.py
+++ b/damo_report_footprint.py
@@ -86,6 +86,9 @@ def main(args):
for snapshot in footprint_snapshots:
footprint_pages = 0
for pid, fp in snapshot.footprints.items():
+ # ignore SysMemFootprint
+ if pid is None:
+ continue
if args.metric == 'vsz':
footprint_pages += fp.size
elif args.metric == 'rss':