Führen Sie Perf ohne Root-Rechte aus

13727
kain88

Ich führe Debian-Tests mit dem 4.1-Kernel und der Version 4.1 des perfTools aus. In dieser Version scheinen sie einen gewissen Schutz hinzugefügt zu haben, um zu verhindern, dass normale Benutzer Daten von diesem Tool sammeln. Das Ausführen perfals normaler Benutzer gibt diesen Fehler aus:

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_paranoidenthält 3 in meiner Installation. Leider kann ich diese Datei auch nicht als root ändern. Wie kann ich meinen eigenen Benutzer perfohne Sudo-Rechte verwenden lassen?

Ich habe eine Anwendung, für die ich einen Benchmark erstellen möchte, der root nicht benötigt, und ich möchte ihn nicht als Root ausführen, um ihn zu bewerten.

13
Funktioniert `perf stat -e cycle: u`? Der "3" -Wert von "perf_event_paranoid" wurde 2016 hinzugefügt https://lwn.net/Articles/696216/ "Dis_Lowper_event_open ()" und wurde in "Android and Debian" (auch https://lkml.org/lkml) aktiviert / 2016/1/11/587 https://bugs.launchpad.net/bugs/1612790 https://www.debian.org/security/2017/dsa-3791) osgx vor 5 Jahren 0

1 Antwort auf die Frage

22
meuh

Dateien in / proc, die beschreibbar sind, werden normalerweise geändert, indem ein Wert in sie übernommen wird. Du solltest es versuchen:

sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid' 
So bleiben Sie auch nach Neustarts erhalten: `sudo sh -c 'echo kernel.perf_event_paranoid = 1> / etc / sysctl.d / local.conf'` Márcio vor 7 Jahren 6