Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Do I need to have to run perf userspace tool as system administrator (root), or can I run it (or at least some subcommands) as an ordinary user?

share|improve this question
Unix programs that can't do what they need to do for lack of permissions will usually thrown an error if they can't do their job. Run it and see! – Caleb Jun 2 '11 at 10:55
I am asking this question to decide whether it is worth trying to install (as ordinary user, in $HOME) userspace part of perf tool (which is/can be non-trivial). – Jakub Narębski Jun 2 '11 at 12:19
FYI in Ubuntu perf is in linux-tools package, so installing perf there is simple. – Jakub Narębski Jun 12 '13 at 16:59
up vote 13 down vote accepted

What you can do with perf without being root depends on the kernel.perf_event_paranoid sysctl setting.

  • kernel.perf_event_paranoid = 2: you can't take any measurements. The perf utility might still be useful to analyse existing records with perf ls, perf report, perf timechart or perf trace.
  • kernel.perf_event_paranoid = 1: you can trace a command with perf stat or perf record, and get kernel profiling data.
  • kernel.perf_event_paranoid = 0: you can trace a command with perf stat or perf record, and get CPU event data.
  • kernel.perf_event_paranoid = -1: you get raw access to kernel tracepoints (specifically, you can mmap the file created by perf_event_open, I don't know what the implications are).
share|improve this answer
Nice. cat /proc/sys/kernel/perf_event_paranoid returns 1, so it seems that I would be able to take at least some measurements (BTW. whats the difference betwen "kernel profiling data" and "CPU event data"? Reference is enough) – Jakub Narębski Jun 2 '11 at 17:48
@Jakub: From what I understand, kernel events let you see calls to various kernel functions. CPU events are counters in the CPU that tell you how many times a particular location in memory was hit. I've never used them, so I can't tell you more about them; LWN has quite a few article on the topic, and it's still evolving. – Gilles Jun 2 '11 at 18:03

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.