diff options
author | SeongJae Park <sj@kernel.org> | 2024-04-21 09:46:55 -0700 |
---|---|---|
committer | SeongJae Park <sj@kernel.org> | 2024-04-21 09:55:34 -0700 |
commit | 176b497476a64303d0530ab29282c729bf255c61 (patch) | |
tree | 93e72f841b3993a37cfbfcdd9c6591ed42e19021 | |
parent | b17e278b9d9dd660d6fb49dc89437b06475c96c2 (diff) | |
download | damo-176b497476a64303d0530ab29282c729bf255c61.tar.gz |
_damo_records: Save/load system memory footprint
Signed-off-by: SeongJae Park <sj@kernel.org>
-rw-r--r-- | _damo_records.py | 12 | ||||
-rw-r--r-- | damo_report_footprint.py | 3 |
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': |