Почему для работы библиотеки PAPI мне нужно запустить приложение от имени пользователя root?
Я только что обновился до Ubuntu 16.04 LTS. В моих приложениях C++ я использую библиотеку PAPI, поэтому я установил ее с http://icl.utk.edu/papi/. Однако по какой-то причине я больше не могу запускать свои приложения без необходимости набирать sudo
в начале.
Даже просто печатать papi_avail
на терминале, чтобы увидеть, какие счетчики доступны, я получаю это:
================================================================================
PAPI Preset Events
================================================================================
Name Code Avail Deriv Description (Note)
PAPI_L1_DCM 0x80000000 No No Level 1 data cache misses
PAPI_L1_ICM 0x80000001 No No Level 1 instruction cache misses
PAPI_L2_DCM 0x80000002 No No Level 2 data cache misses
PAPI_L2_ICM 0x80000003 No No Level 2 instruction cache misses
..........
Of 108 possible events, 0 are available, of which 0 are derived.
avail.c PASSED
Если я бегу sudo papi_avail
Я получаю это:
--------------------------------------------------------------------------------
Of 108 possible events, 50 are available, of which 17 are derived.
avail.c PASSED
Что изменилось в Ubuntu 16.04?
1 ответ
Это связано с ответом здесь. Теоретически, выполняя sudo sysctl -w kernel.perf_event_paranoid=0
должно быть достаточно.