Мне интересно профилировать модуль для ядра Linux. Я пробовал это так:
- Построено ядро с
CONFIG_PROFILING=y - Загрузили ядро с помощью
profile=2 - Reset профайлер
echo 123 > /proc/profile - Модуль был успешно загружен специальным демоном
- Запустите приложение, использующее модуль, через специальные вызовы
ioctl. Тестируемое приложение работало так, как ожидалось, чтобы модуль работал нормально. - Прочитайте информацию профилирования с помощью
readprofile -p /proc/profile -m System.map, где System.app был сгенерирован вместе с ядром.
До сих пор так хорошо. Почти все работало, как ожидалось. Однако, что не получилось, я не получил никакой информации о моем модуле, то есть не упоминалось о какой-либо функции из модуля.
Однако, во-вторых, я вспомнил, что забыл перекомпилировать модуль с помощью CONFIG_PROFILING=y.
Итак, мой вопрос: не отобразился ли модуль в журнале профилирования, потому что он не был скомпилирован с помощью CONFIG_PROFILING=y или есть еще одна очевидная причина, о которой я не знаю?
Если кто-то задается вопросом, почему я спрашиваю, а не пытаюсь это сразу, то это потому, что я не могу делать это дома, и я бы предпочел бы услышать, что сказал бы knowledgable, прежде чем я получу доступ к коду еще раз.