> On 14 Mar 2026, at 2:03 PM, Athira Rajeev <[email protected]> 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.
> 
> Signed-off-by: Athira Rajeev <[email protected]>
> ---
> 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
> 

Tested this patch, and its working as expected.

Before Patch:

./perf list hv_24x7 | grep -i CPM_EXT_INT_OS
  hv_24x7/CPM_EXT_INT_OS/                            [Kernel PMU event]

After Patch:

./perf list hv_24x7 | grep -i CPM_EXT_INT_OS 
 hv_24x7/CPM_EXT_INT_OS,domain=?,core=?/ [Kernel PMU event]


./perf stat -e hv_24x7/PM_PAU_CYC,chip=0/


 Performance counter stats for 'system wide':

        2018866563      hv_24x7/PM_PAU_CYC,chip=0/                              
              

     229.938231314 seconds time elapsed

Tested-by: Venkat Rao Bagalkote <[email protected]>

Regards,
Venkat.



Reply via email to