Я запускаю тестирование Debian с ядром 4.1 и версией perf
инструмента 4.1 . В этой версии они, кажется, добавили какую-то защиту, чтобы не дать обычным пользователям собирать данные из этого инструмента. Таким образом, запуск perf
в обычном режиме выдает эту ошибку:
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
содержит 3 в моей установке. К сожалению, я не могу изменить этот файл даже как root. Как я могу разрешить своему собственному пользователю использовать perf
без прав sudo?
У меня есть приложение, которое я хотел бы сравнить, которому не нужен root, и я не хочу запускать его как root для сравнения.
perf stat -e cycles:u
? Значение «3»perf_event_paranoid
было добавлено в 2016 г. lwn.net/Articles/696216 «Запретить perf_event_open ()» и было включено в «Android и Debian» (также lkml.org/lkml/2016/1/11/587 bugs.launchpad. net / bugs / 1612790 debian.org/security/2017/dsa-3791 )Ответы:
Файлы
/proc
, которые доступны для записи, обычно изменяются путем ввода значения в них. Тебе стоит попробовать:Файлы для этого
/proc/sys/
также имеют команду sysctl для легкого доступа, поэтому вы можете вместо этого сделать:(хотя
-w
для записи кажется необязательным). Чтобы убедиться, что это сделано во время загрузки, создайте свой собственный/etc/sysctl.d/99-mysettings.conf
файл со строкойВыберите имя файла, которое не будет переопределять существующие файлы в
/run/sysctl.d/
и/usr/lib/sysctl.d/
. Смотрите man sysctl.d .источник
sudo sh -c 'echo kernel.perf_event_paranoid=1 > /etc/sysctl.d/local.conf'
local.conf
, не сокращайте. Или напишите/etc/sysctl.d/perf.conf