我正在修改kvm模块,并在内核代码中添加了printk语句。在运行虚拟机之后,printk向我提供了有关guest虚拟机的错误地址和其他信息OS。dmesg和/var/log/kern.log之间的区别
我需要从这个信息生成统计信息。当我使用dmesg时,我只能在内核空间看到错误地址 ,即它们的地址高于0XC0000000(当VMEXIT发生时需要错误地址,主机模式)
当我在kern.log中看到相同的统计信息时,我还从用户空间(低于0XC0000000)获取错误地址。 因此,在我看来,像dmesg的容量有限,并且给出的信息是来自kern.log的子集。
我的kern.log文件太大,可以从kern.log中删除旧数据,因为像grep,join,awk这样的文本处理命令花费的时间太长,无法在文件上运行。
我的问题是:
dmesg和kern.log有什么区别?
如何将kern.log文件大小降低为cron job(删除过去24小时内添加的所有数据)
有没有更好的方法从kernel获取printf kindof功能?