皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linux在控制台线程化打印补丁取得进展

Linux内核多年来一直的努力完善Linux内核的printk()代码,作为其中的一部分,最新的补丁系列正在提供线程化的控制台打印支持。

这种线程化的控制台打印支持是为了实现早在2019年起草的计划,为每个注册的控制台创建一个内核线程,使控制台打印与printk()调用者完全脱钩。

大量参与printk()重修工作的John Ogness解释了这个线程化控制台打印代码。
这个系列为每个注册的控制台实现了一个kthread。这些kthreads无锁地从printk ringbuffer中获取记录,也不会在彼此之间引起任何锁的争夺。这允许控制台以全速运行。例如,netconsole能够比串行或vt控制台更快地转储记录。

Linux在控制台线程化打印补丁取得进展

Ogness继续补充说:”有些情况下,kthread打印是不够的。例如,在kthreads存在之前的早期启动期间,或者在拥塞情况下,kthreads可能没有机会安排。在这些情况下,会使用当前在printk()调用者上下文中直接打印的方法。”

这种线程控制台打印支持的最初形式是对printk代码的不到一千行的重新加工。那些有兴趣了解更多细微细节的人可以查看该系列补丁