Oprofile Ошибка: не удалось открыть устройство профиля: устройство или ресурс занят

Я пытаюсь запустить oprofile в моей системе из-за досадной ошибки:

$ sudo opcontrol --setup --vmlinux=/usr/lib/debug/lib/modules/`uname -r`/vmlinux
$ sudo opcontrol --start
ATTENTION: Use of opcontrol is discouraged.  Please see the man page for operf.
Using default event: CPU_CLK_UNHALTED:100000:0:1:1
Using 2.6+ OProfile kernel interface.
Reading module info.
Failed to open profile device: Device or resource busy
Couldn't start oprofiled.
Check the log file "/var/lib/oprofile/samples/oprofiled.log" and kernel syslog

Любой, кто знаком с Oprofile, заметит, что я использую правильную последовательность команд для вызова сервиса. Это прямо из документации Fedora. Отладочная информация ядра также была установлена ​​для создания соответствующего файла vmlinux. Но даже после передачи местоположения этого файла в oprofile, ничего не изменилось:

$ sudo opcontrol --setup --vmlinux=/usr/lib/debug/lib/modules/3.12.11-201.fc19.x86_64/vmlinux
$ sudo opcontrol --start
ATTENTION: Use of opcontrol is discouraged.  Please see the man page for operf.
Using default event: CPU_CLK_UNHALTED:100000:0:1:1
Using 2.6+ OProfile kernel interface.
Reading module info.
Failed to open profile device: Device or resource busy
Couldn't start oprofiled.
Check the log file "/var/lib/oprofile/samples/oprofiled.log" and kernel syslog

Более того, в указанном месте нет файла журнала. Я пробовал несколько других решений, включая переустановку, удаление демона и запуск без профилирования ядра.

  • Почему устройство занято, если не запущены процессы oprofile?
  • Почему не записывается файл журнала?
  • Что я могу изменить, чтобы запустить oprofile?

1 ответ

Перед запуском oprofile вы должны проверить, есть ли в вашей системе сторожевой таймер. watchdog/nmi_watchdog регистрируется в подсистеме perf, которая блокирует работу oprofile. Возможно, вам придется остановить сторожевой таймер / сторожевой таймер NMI, чтобы освободить счетчик 0 с помощью следующего:

echo "0" | sudo tee /proc/sys/kernel/watchdog

ИЛИ ЖЕ

echo "0" | sudo tee/proc/sys/kernel/nmi_watchdog

Другие вопросы по тегам