Run perf without root-rights
Files in /proc
that are writable are usually changed by echoing a value into them. You should try:
sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'
The files under /proc/sys/
also have the sysctl command for easy access, so you can instead do:
sudo sysctl -w kernel.perf_event_paranoid=1
(though the -w
for write seems to be optional). To ensure this is done at boot time create your own /etc/sysctl.d/99-mysettings.conf
file with the line
kernel.perf_event_paranoid=1
Choose a filename that will not override existing files in /run/sysctl.d/
and /usr/lib/sysctl.d/
.
See man sysctl.d.
Related videos on Youtube
kain88
Updated on September 18, 2022Comments
-
kain88 over 1 year
I'm running debian testing with the 4.1 kernel and version 4.1 of the
perf
tool. In this version they seem to have added some sort of protection to keep normal users from collecting data from that tool. So runningperf
as normal user will give this error:perf stat ls Error: You may not have permission to collect stats. Consider tweaking /proc/sys/kernel/perf_event_paranoid: -1 - Not paranoid at all 0 - Disallow raw tracepoint access for unpriv 1 - Disallow cpu events for unpriv 2 - Disallow kernel profiling for unpriv
perf_event_paranoid
contains 3 in my installation. Unfortunately I can't change that file even as root. How can I allow my own user to useperf
without sudo rights?I have an application I would like to benchmark which doesn't need root and I don't want to run it as root to benchmark it.
-
Márcio about 7 yearsTo persist across reboots:
sudo sh -c 'echo kernel.perf_event_paranoid=1 > /etc/sysctl.d/local.conf'
-
Leos313 over 4 yearsadd the comment to the answer, please
-
Peter Cordes over 4 years@Márcio: You want to append to
local.conf
, not truncate. Or write to/etc/sysctl.d/perf.conf