Re: [GIT PULL] perf tools changes for v6.10

From: Linus Torvalds
Date: Fri May 24 2024 - 21:32:22 EST


On Tue, 21 May 2024 at 12:26, Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:
>
> perf tools fixes and improvements for v6.10:

This actually broke 'perf' completely for me on arm64.

With a 6.9 version of 'perf', I can do this:

perf record -e cycles:pp make -j199

and it all works fine.

With the current -git version, when I do the same, I instead get

Error:
cycles:pp: PMU Hardware doesn't support
sampling/overflow-interrupts. Try 'perf stat'

and after trying desperately to chase down what went wrong on the
kernel side, I finally figured out that it wasn't a kernel change at
all, it was the tooling that had changed.

I did a 'git bisect', and it says

617824a7f0f73e4de325cf8add58e55b28c12493 is the first bad commit
commit 617824a7f0f73e4de325cf8add58e55b28c12493
Author: Ian Rogers <irogers@xxxxxxxxxx>
Date: Mon Apr 15 23:15:25 2024 -0700

perf parse-events: Prefer sysfs/JSON hardware events over legacy

and very clearly this does *NOT* work at all for me.

I didn't notice until now, simply because I had been busy with the
merge window, so I hadn't been doing any profiles, but the merge
window is calming down and the end is nigh, and I just wasted more
time than I care to admit trying to figure out what went wrong in the
kernel.

And no, I don't speak JSON, and I have *no* idea what the legacy
events are. Plus I'm not very familiar with the arm64 profiling etc
anyway, so I'm just a clueless user here.

I *can* confirm that just reverting that commit makes that trivial
"perf record" work for me. So the bisect was good, and it reverts
cleanly, but I don't know _why_ my arm64 setup hates it so much.

Linus