Re: [PATCH v2 4/5] perf x86 evlist: Update comments on topdown regrouping

From: Namhyung Kim
Date: Tue Mar 11 2025 - 22:00:47 EST


On Tue, Mar 11, 2025 at 08:45:20AM +0800, Mi, Dapeng wrote:
>
> On 3/11/2025 5:25 AM, Namhyung Kim wrote:
> > Hello,
> >
> > On Thu, Mar 06, 2025 at 06:39:05PM -0800, Ian Rogers wrote:
> >> From: Dapeng Mi <dapeng1.mi@xxxxxxxxxxxxxxx>
> >>
> >> Update to remove comments about groupings not working and with the:
> >> ```
> >> perf stat -e "{instructions,slots},{cycles,topdown-retiring}"
> >> ```
> >> case that now works.
> >>
> >> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> > Dapeng, can I get your Signed-off-by here?
> >
> > Thanks,
> > Namhyung
> >
> >> ---
> >> tools/perf/arch/x86/util/evlist.c | 27 ++++++---------------------
> >> 1 file changed, 6 insertions(+), 21 deletions(-)
> >>
> >> diff --git a/tools/perf/arch/x86/util/evlist.c b/tools/perf/arch/x86/util/evlist.c
> >> index ed205d1b207d..7905a28d7734 100644
> >> --- a/tools/perf/arch/x86/util/evlist.c
> >> +++ b/tools/perf/arch/x86/util/evlist.c
> >> @@ -39,28 +39,13 @@ int arch_evlist__cmp(const struct evsel *lhs, const struct evsel *rhs)
> >> * 26,319,024 slots
> >> * 2,427,791 instructions
> >> * 2,683,508 topdown-retiring
> >> - *
> >> - * If slots event and topdown metrics events are not in same group, the
> >> - * topdown metrics events must be first event after the slots event group,
> >> - * otherwise topdown metrics events can't be regrouped correctly, e.g.
> >> - *
> >> - * a. perf stat -e "{instructions,slots},cycles,topdown-retiring" -C0 sleep 1
> >> - * WARNING: events were regrouped to match PMUs
> >> - * Performance counter stats for 'CPU(s) 0':
> >> - * 17,923,134 slots
> >> - * 2,154,855 instructions
> >> - * 3,015,058 cycles
> >> - * <not supported> topdown-retiring
> >> - *
> >> - * If slots event and topdown metrics events are in two groups, the group which
> >> - * has topdown metrics events must contain only the topdown metrics event,
> >> - * otherwise topdown metrics event can't be regrouped correctly as well, e.g.
> >> - *
> >> - * a. perf stat -e "{instructions,slots},{topdown-retiring,cycles}" -C0 sleep 1
> >> + * e. slots event and metrics event are in a group and not adjacent
>
> Yes, here is my SoB.
>
> Signed-off-by: Dapeng Mi <dapeng1.mi@xxxxxxxxxxxxxxx>

Thanks!

>
> BTW, It seems there is a typo and missed the "not" word. It should be 
> "slots event and metrics event are not in a group and not adjacent"

Ok, will update.

Thanks,
Namhyung

>
> >> + * perf stat -e "{instructions,slots},cycles,topdown-retiring" -C0 sleep 1
> >> * WARNING: events were regrouped to match PMUs
> >> - * Error:
> >> - * The sys_perf_event_open() syscall returned with 22 (Invalid argument) for
> >> - * event (topdown-retiring)
> >> + * 68,433,522 slots
> >> + * 8,856,102 topdown-retiring
> >> + * 7,791,494 instructions
> >> + * 11,469,513 cycles
> >> */
> >> if (topdown_sys_has_perf_metrics() &&
> >> (arch_evsel__must_be_in_group(lhs) || arch_evsel__must_be_in_group(rhs))) {
> >> --
> >> 2.49.0.rc0.332.g42c0ae87b1-goog
> >>