Re: [PATCH] perf jevents: make events order more deterministic

From: Nazar Kazakov

Date: Mon Jul 06 2026 - 15:41:43 EST


On 2026-07-06 19:04, Ian Rogers wrote:
On Mon, Jul 6, 2026 at 10:57 AM Nazar Kazakov
<nazar.kazakov@xxxxxxxxxxxxxxx> wrote:

Some of the events have the same name, but differing descriptions. This
leads to a non-deterministic sorting order, so fix by adding the
description field to the order.

Signed-off-by: Nazar Kazakov <nazar.kazakov@xxxxxxxxxxxxxxx>

This shouldn't be an issue; can you give an example? I mean, with:
$ perf stat -e event1,event1 true
There's only one meaning for what event1 is. There is wildcard
support, but that's not the same as having the same event more than
once, differing only by description. Note, I deliberately use events
with perf stat in the example because the metrics build on the regular
event parsing code.

I meant sorting order during build time: tools/perf/pmu-events/pmu-events.c
changes between different builds, you can see an example of diffoscope
output here https://freedesktop-sdk.gitlab.io/-/freedesktop-sdk/-/jobs/15174060131/artifacts/result_folder/components/perf.bst/index.html

/* offset=5995059 */ "lpm_l2_rfo_misses\000lpm_l2;lpm_l2_rfo\000d_ratio(L2_RQSTS.RFO_MISS, duration_time)\000\000L2 cache request for ownership (RFO) misses per second\000\0001misses/s\000\000\000\000000"
/* offset=5995210 */ "lpm_l2_rfo_misses\000lpm_l2;lpm_l2_rfo\000d_ratio(L2_RQSTS.RFO_MISS, L2_RQSTS.RFO_HIT + L2_RQSTS.RFO_MISS)\000\000L2 cache request for ownership (RFO) misses\000\000100%\000\000\000\000000"

vs

/* offset=5995059 */ "lpm_l2_rfo_misses\000lpm_l2;lpm_l2_rfo\000d_ratio(L2_RQSTS.RFO_MISS, L2_RQSTS.RFO_HIT + L2_RQSTS.RFO_MISS)\000\000L2 cache request for ownership (RFO) misses\000\000100%\000\000\000\000000"
/* offset=5995217 */ "lpm_l2_rfo_misses\000lpm_l2;lpm_l2_rfo\000d_ratio(L2_RQSTS.RFO_MISS, duration_time)\000\000L2 cache request for ownership (RFO) misses per second\000\0001misses/s\000\000\000\000000"

That leads to non-reproducible binaries, even though the functionality
is probably the same.

Thanks,
Nazar Kazakov