Thread (10 messages) flat view 10 messages, 4 authors, 2026-06-09

Re: [PATCH V4 1/2] tools/perf: Fix the check for parameterized field in event term

From: Athira Rajeev <hidden>
Date: 2026-06-04 15:12:48
Also in: linux-perf-users

On 21 May 2026, at 12:07 PM, Athira Rajeev [off-list ref] wrote:


quoted
On 4 May 2026, at 9:12 PM, Athira Rajeev [off-list ref] wrote:

The format_alias() function in util/pmu.c has a check to
detect whether the event has parameterized field ( =? ).
The string alias->terms contains the event and if the event
has user configurable parameter, there will be presence of
sub string "=?" in the alias->terms.

Snippet of code:

/* Paramemterized events have the parameters shown. */
     if (strstr(alias->terms, "=?")) {
             /* No parameters. */
             snprintf(buf, len, "%.*s/%s/", (int)pmu_name_len, pmu->name, alias->name);

if "strstr" contains the substring, it returns a pointer
and hence enters the above check which is not the expected
check. And hence "perf list" doesn't have the parameterized
fields in the result.

Fix this check to use:

if (!strstr(alias->terms, "=?")) {

With this change, perf list shows the events correctly with
the strings showing parameters.

Before the fix:

# ./perf list|grep -w PM_PAU_CYC
hv_24x7/PM_PAU_CYC/                                [Kernel PMU event]

With this fix:

# ./perf list|grep -w PM_PAU_CYC
hv_24x7/PM_PAU_CYC,chip=?/                         [Kernel PMU event]

Signed-off-by: Athira Rajeev <redacted>
Hi,

Can we please have this pulled in, if the changes looks fine.

Thanks
Athira
Hi,

Looking for any further review comments on this patchset. Please suggest if any changes needs to be addressed.

Thanks
Athira
quoted
---
Changelog:
v3 -> v4:
Updated commit message to show real example
addressing review comment from Namhyung.

v2 -> v3:
Split the strstr correction in a single patch

tools/perf/util/pmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 23337d2fa281..0b8d58543f17 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -2117,7 +2117,7 @@ static char *format_alias(char *buf, int len, const struct perf_pmu *pmu,
 skip_duplicate_pmus);
/* Paramemterized events have the parameters shown. */
- if (strstr(alias->terms, "=?")) {
+ if (!strstr(alias->terms, "=?")) {
/* No parameters. */
snprintf(buf, len, "%.*s/%s/", (int)pmu_name_len, pmu->name, alias->name);
return buf;
-- 
2.47.3

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help