[PATCH v10 06/10] lib/pmu: do not try enabling perf counter access on arm64
Tomasz Duszynski
tduszynski at marvell.com
Mon Aug 4 10:32:38 CEST 2025
> On Fri, 1 Aug 2025 12:21:05 +0200
> Tomasz Duszynski <tduszynski at marvell.com> wrote:
>
> > /proc/sys/kernel/perf_user_access attribute allow user process to access
> > perf counters. Though in order to change it binary requires elevated
> > capabilities or must be run as root. If that's not the case counter
> > access remains disabled. Hence to avoid confusion log message that
> > that warns user about that.
> >
> > Signed-off-by: Tomasz Duszynski <tduszynski at marvell.com>
> > ---
>
> What do Linux perf tools do in this case?
perf does not collect data directly reading pmu rigisters. It gets data by calling read() on
descriptor returned by perf_event_open().
This series on the other hand, is for allowing that direct through-register access to save on
cycles.
`perf test -v user` may be used to check if direct access can work.
On arm64 with perf_user_access=0:
$ perf test -v user
Couldn't bump rlimit(MEMLOCK), failures may take place when creating BPF maps, etc
4.2: User space counter reading of instructions : Skip (permissions)
4.3: User space counter reading of cycles : Skip (permissions)
On arm64 with perf_user_access=1:
$ perf test -v user
Couldn't bump rlimit(MEMLOCK), failures may take place when creating BPF maps, etc
4.2: User space counter reading of instructions : Ok
4.3: User space counter reading of cycles : Ok
On x86 there is no perf_user_access knob available so you achieve same functionality with
perf_event_paranoid.
More information about the dev
mailing list