* [PATCH] perf scripts: Add configurable sorting option to powerpc-hcalls
@ 2026-06-05 6:27 Shivani Nittor
2026-06-05 6:31 ` sashiko-bot
0 siblings, 1 reply; 2+ messages in thread
From: Shivani Nittor @ 2026-06-05 6:27 UTC (permalink / raw)
To: acme, jolsa, adrian.hunter, mpetlan, tmricht, maddy, irogers,
namhyung, ravi.bangoria
Cc: linux-perf-users, linuxppc-dev, atrajeev, hbathini, Tejas.Manhas1,
Tanushree.Shah, shivani
The powerpc-hcalls.py script currently prints hypercall
statistics in a fixed sort order based on the number of
hcall occurrences, making it difficult to analyze hcalls
from different execution characteristics.
Add support for runtime-configurable sorting so users
can order hypercall statistics by count, minimum
latency, maximum latency, or average latency using
a --sort option.
Parse arguments through sys.argv to support perf script
argument passing semantics.
Example:
perf record -a -e powerpc* sleep 10
perf script -s ./powerpc-hcalls.py -i ./perf.data -- --sort=max
SORT KEY = max
hcall count min(ns) max(ns) avg(ns)
H_SEND_LOGICAL_LAN 47 7380 40148 8739
H_VIO_SIGNAL 706 880 17454 1911
H_RANDOM 1 15176 15176 15176
H_PUT_TCE_INDIRECT 4 3032 10444 4956
H_ADD_LOGICAL_LAN_BUFFER 363 1250 8716 1534
H_SEND_CRQ 8 2086 6846 3044
H_PUT_TCE 9 1284 4932 2646
H_STUFF_TCE 13 1620 3962 2358
This makes it easier to identify frequently occurring
or high-latency hypercalls depending on the analysis
being performed.
Signed-off-by: Shivani Nittor <shivani@linux.ibm.com>
---
tools/perf/scripts/python/powerpc-hcalls.py | 35 ++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/tools/perf/scripts/python/powerpc-hcalls.py b/tools/perf/scripts/python/powerpc-hcalls.py
index 8b78dc790adb..df7b83ab0b6e 100644
--- a/tools/perf/scripts/python/powerpc-hcalls.py
+++ b/tools/perf/scripts/python/powerpc-hcalls.py
@@ -25,6 +25,7 @@ from Util import *
# } ...
# }
output = {}
+sort_key = 'count'
# d_enter: {
# cpu: {
@@ -158,10 +159,42 @@ def hcall_table_lookup(opcode):
print_ptrn = '%-28s%10s%10s%10s%10s'
+def sort_output(opcode):
+ stats = output[opcode]
+
+ if sort_key == 'min':
+ return stats['min']
+ if sort_key == 'max':
+ return stats['max']
+ if sort_key == 'avg':
+ return stats['time'] // stats['cnt']
+
+ return stats['cnt']
+
+def trace_begin():
+ global sort_key
+
+ i = 1
+ while i < len(sys.argv):
+ arg = sys.argv[i]
+
+ if arg == '-s' or arg == '--sort':
+ sort_key = sys.argv[i + 1]
+ i += 2
+ continue
+
+ if arg.startswith('--sort='):
+ sort_key = arg.split('=', 1)[1]
+
+ i += 1
+
+ print("SORT KEY =", sort_key)
+
def trace_end():
print(print_ptrn % ('hcall', 'count', 'min(ns)', 'max(ns)', 'avg(ns)'))
print('-' * 68)
- for opcode in output:
+ for opcode in sorted(output, key = sort_output,
+ reverse=True):
h_name = hcall_table_lookup(opcode)
time = output[opcode]['time']
cnt = output[opcode]['cnt']
--
2.53.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] perf scripts: Add configurable sorting option to powerpc-hcalls
2026-06-05 6:27 [PATCH] perf scripts: Add configurable sorting option to powerpc-hcalls Shivani Nittor
@ 2026-06-05 6:31 ` sashiko-bot
0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-06-05 6:31 UTC (permalink / raw)
To: Shivani Nittor; +Cc: linux-perf-users
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The argument parsing loop in `trace_begin()` will crash with an `IndexError` if `-s` or `--sort` is the last argument provided.
--
commit e3cf27646cdda0e6126f0f6cde0a6fdbb2db8e8c
Author: Shivani Nittor <shivani@linux.ibm.com>
perf scripts: Add configurable sorting option to powerpc-hcalls
This commit adds a runtime-configurable sorting option to the powerpc-hcalls.py
script. It parses sys.argv to allow users to order hypercall statistics by
count or various latency metrics.
> diff --git a/tools/perf/scripts/python/powerpc-hcalls.py b/tools/perf/scripts/python/powerpc-hcalls.py
> index 8b78dc790adb1..df7b83ab0b6e0 100644
> --- a/tools/perf/scripts/python/powerpc-hcalls.py
> +++ b/tools/perf/scripts/python/powerpc-hcalls.py
[ ... ]
> @@ -158,10 +159,42 @@ def hcall_table_lookup(opcode):
>
> print_ptrn = '%-28s%10s%10s%10s%10s'
>
[ ... ]
> +def trace_begin():
> + global sort_key
> +
> + i = 1
> + while i < len(sys.argv):
> + arg = sys.argv[i]
> +
> + if arg == '-s' or arg == '--sort':
> + sort_key = sys.argv[i + 1]
[Severity: Medium]
Does this code risk an IndexError if the script is invoked with -s or --sort
as the very last argument?
If a user fails to provide the actual sort key value at the end of the argument
list, accessing sys.argv[i + 1] will be out of bounds and crash the script.
> + i += 2
> + continue
> +
> + if arg.startswith('--sort='):
> + sort_key = arg.split('=', 1)[1]
> +
> + i += 1
> +
> + print("SORT KEY =", sort_key)
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260605062717.24982-1-shivani@linux.ibm.com?part=1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-05 6:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-05 6:27 [PATCH] perf scripts: Add configurable sorting option to powerpc-hcalls Shivani Nittor
2026-06-05 6:31 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox