| #!/usr/bin/python | |
| # SPDX-License-Identifier: GPL-2.0 | |
| # Determine the maximum size of branch stacks in a perf.data file. | |
| import argparse | |
| import sys | |
| import perf | |
| def main(): | |
| ap = argparse.ArgumentParser() | |
| ap.add_argument("-i", "--input", default="perf.data", help="Input file name") | |
| args = ap.parse_args() | |
| bmax = 0 | |
| def process_event(sample): | |
| nonlocal bmax | |
| try: | |
| brstack = sample.brstack | |
| if brstack: | |
| n = len(list(brstack)) | |
| if n > bmax: | |
| bmax = n | |
| except AttributeError: | |
| pass | |
| session = None | |
| try: | |
| session = perf.session(perf.data(args.input), sample=process_event) | |
| session.process_events() | |
| print("max brstack", bmax) | |
| except Exception as e: | |
| print(f"Error processing events: {e}", file=sys.stderr) | |
| sys.exit(1) | |
| finally: | |
| session = None | |
| if __name__ == "__main__": | |
| main() |