From 0e9b51a43214f81f07813b63349b03ded35139c7 Mon Sep 17 00:00:00 2001 From: Ian Rogers Date: Sat, 8 Nov 2025 16:59:58 -0800 Subject: [PATCH] perf pmu: Make pmu_alias_terms weak again The terms for a json event should be weak so they don't override command line options. Before: ``` $ perf record -vv -c 1000 -e uops_issued.any -o /dev/null true 2>&1 |grep "{ sample_period, sample_freq }" { sample_period, sample_freq } 200003 { sample_period, sample_freq } 2000003 { sample_period, sample_freq } 1000 ``` After: ``` $ perf record -vv -c 1000 -e uops_issued.any -o /dev/null true 2>&1 |grep "{ sample_period, sample_freq }" { sample_period, sample_freq } 1000 { sample_period, sample_freq } 1000 { sample_period, sample_freq } 1000 ``` Fixes: 84bae3af20d0 ("perf pmu: Don't eagerly parse event terms") Signed-off-by: Ian Rogers Signed-off-by: Namhyung Kim --- tools/perf/util/pmu.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index d597263fab4f7..f14f2a12d0615 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -802,6 +802,7 @@ static int pmu_aliases_parse_eager(struct perf_pmu *pmu, int sysfs_fd) static int pmu_alias_terms(struct perf_pmu_alias *alias, struct list_head *terms) { struct parse_events_terms alias_terms; + struct parse_events_term *term; int ret; parse_events_terms__init(&alias_terms); @@ -812,6 +813,13 @@ static int pmu_alias_terms(struct perf_pmu_alias *alias, struct list_head *terms parse_events_terms__exit(&alias_terms); return ret; } + list_for_each_entry(term, &alias_terms.terms, list) { + /* + * Weak terms don't override command line options, + * which we don't want for implicit terms in aliases. + */ + term->weak = true; + } list_splice_init(&alias_terms.terms, terms); parse_events_terms__exit(&alias_terms); return 0; -- 2.47.3