aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeongJae Park <sj38.park@gmail.com>2024-02-25 12:09:42 -0800
committerSeongJae Park <sj38.park@gmail.com>2024-02-25 12:09:42 -0800
commit7242b6d48067a0b6775448dee942eaf51bfdb1cf (patch)
treea0b156fb7f707095a5240b80290d5cc5360a247e
parentdc310875bc4c69cbe9cc0c3628bae1d235857899 (diff)
downloaddamo-7242b6d48067a0b6775448dee942eaf51bfdb1cf.tar.gz
Add a draft of damo_report_profile.py
Signed-off-by: SeongJae Park <sj38.park@gmail.com>
-rw-r--r--damo_report_profile.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/damo_report_profile.py b/damo_report_profile.py
new file mode 100644
index 00000000..4caae403
--- /dev/null
+++ b/damo_report_profile.py
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: GPL-2.0
+
+import argparse
+
+import _damon
+import _damon_records
+import damo_show
+
+def main(args):
+ access_pattern = _damon.DamosAccessPattern(args.sz_region,
+ args.access_rate, _damon.unit_percent, args.age * 1000000,
+ _damon.unit_usec)
+
+ addr_range = None
+ if args.address != None:
+ addr_range, err = damo_show.parse_sort_addr_ranges_input(args.address)
+ if err != None:
+ print('wrong --address input (%s)' % err)
+ exit(1)
+
+ records, err = _damon_records.get_records(
+ tried_regions_of=False, record_file=args.inputs[0],
+ access_pattern=access_pattern, address_range=addr_range,
+ total_sz_only=False, dont_merge_regions=False)
+ if err != None:
+ print(err)
+ exit(1)
+
+ # count symbols in profile records that recorded on time of snapshots in
+ # 'records', and show
+
+def set_argparser(parser):
+ parser.add_argument('--inputs', metavar='<file>', nargs=2,
+ default=['damon.data', 'damon.data.profile'],
+ help='access pattern and profile record files')
+ parser.add_argument('--sz_region', metavar=('<min>', '<max>'), nargs=2,
+ default=['min', 'max'],
+ help='min/max size of regions (bytes) to show')
+ parser.add_argument('--access_rate', metavar=('<min>', '<max>'), nargs=2,
+ default=['min', 'max'],
+ help='min/max access rate of regions (percent) to show')
+ parser.add_argument('--age', metavar=('<min>', '<max>'), nargs=2,
+ default=['min', 'max'],
+ help='min/max age of regions (seconds) to show')
+ parser.add_argument('--address', metavar=('<start>', '<end>'), nargs=2,
+ action='append',
+ help='address ranges to show')
+
+ parser.description='Show profiling report for specific access pattern'