Linux6.9在为原子控制台做准备时清理Printk代码

2024年 3月 13日 71.3k 0


Linux的工作原理是原子控制台而线式打印仍在进行中。这项工作特别有趣,因为它是实时“RT”内核支持落地之前的最后一个主要拦截器。遗憾的是,这项工作还没有为新的Linux6.9周期做好准备,但至少有一些打印清理工作正在进行,以解决原子控制台工作中发现的问题。

多亏了围绕线程打印和原子控制台的持续工作,Linux6.9中的printk代码正在经历一些清理和更好的健壮性。SuSE的Petr Mladek在拉取请求:

Printk 6.9版的更改改进了恐慌时的行为。这些问题是在测试引入原子控制台和printk线程的正在进行的更改时发现的。

-pr_flush()必须等待最后保留的记录,而不是最后确定的记录。请注意,当多个CPU并行生成记录时,记录将以随机顺序最终确定。

-在死机期间忽略未完成的记录()。在死机-CPU上打印的消息总是最终确定的。当CPU停止时,其他CPU打印的消息可能永远不会最终确定。

-完全阻止非死机CPU上的new printk()调用。在进入死机模式之前会打印回溯痕迹。以后的消息只会弄乱死机CPU打印的信息。

-根本不要在CONSOLE_FUSH_ON_PARGIC()中使用CONSOLE_LOCK。原始代码使用的是try_lock()/CONSOLE_UNLOCK()。当调度程序代码中发生Panic()时,解锁部分可能会导致死锁。

-修复了32位原子操作的64位序列号的转换。

That printk work has been merged for Linux 6.9. Here's to hoping the atomic/non-blocking consoles work can land this year and seeing the real-time kernel code finally reach the mainline Linux kernel in 2024...

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论