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