Execute perf sem direitos de root

Execute perf sem direitos de root

Estou executando testes debian com o kernel 4.1 e versão 4.1 da perfferramenta. Nesta versão eles parecem ter adicionado algum tipo de proteção para impedir que usuários normais coletem dados dessa ferramenta. Portanto, executar perfcomo usuário normal apresentará este erro:

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_paranoidcontém 3 na minha instalação. Infelizmente não consigo alterar esse arquivo nem como root. Como posso permitir que meu próprio usuário use perfsem direitos sudo?

Eu tenho um aplicativo que gostaria de avaliar e que não precisa de root e não quero executá-lo como root para fazer benchmark.

Responder1

Os arquivos /procgraváveis ​​geralmente são alterados ecoando um valor neles. Você deveria tentar:

sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid'

Os arquivos abaixo /proc/sys/também possuem osysctlcomando para fácil acesso, então você pode fazer:

sudo sysctl -w kernel.perf_event_paranoid=1

(embora o -wparaescreverparece ser opcional). Para garantir que isso seja feito durante a inicialização, crie seu próprio /etc/sysctl.d/99-mysettings.confarquivo com a linha

kernel.perf_event_paranoid=1

Escolha um nome de arquivo que não substitua os arquivos existentes em /run/sysctl.d/e /usr/lib/sysctl.d/. Verhomem sysctl.d.

informação relacionada