Я изменяю модуль kvm и добавляю операторы printk в код ядра. После запуска виртуальной машины printk дает мне адрес ошибки и другую информацию о гостевой ОС.
Мне нужно сгенерировать статистику из этой информации. Когда я использую dmesg, я вижу только ошибочный адрес. в пространстве ядра, то есть их адреса выше 0XC0000000. (адрес сбоя необходим, когда происходит VMEXIT, т. е. мы переключаемся с гостевого режима на хост)
Когда я вижу ту же статистику в kern.log, я также получаю ошибочный адрес из пользовательского пространства (ниже 0XC0000000 ). Так что мне кажется, что dmesg имеет ограниченные возможности, а предоставленная информация является подмножеством из kern.log.
Мой файл kern.log слишком большой. Можно ли стереть старые данные из kern.log, потому что команды обработки текста, такие как grep,join,awk, слишком долго выполняются в файле.
Мой вопрос:
В чем разница между dmesg и kern.log?
Как уменьшить размер файла kern.log при выполнении задания cron? (удалить все данные, добавленные за последние 24 часа)
Есть ли лучший способ получить функциональность типа printf из ядра?