Linux 6.9降低CR3写入开销

2024年 3月 21日 67.0k 0


上周针对Linux6.9内核的x86/Entry拉入请求只包含一个补丁,但这是一个重要的补丁,因为它有助于降低CR3写入的开销,并且对于像Linux这样的工作负载来说,好处是显而易见的perf 功能.

Thomas Gleixner在Linux 6.9的x86/entry pull request中解释道:

当前CR3处理与#NMI、#MCE、#VC、#DB和#DF相关的偏执返回路径中的内核页表隔离是无条件地将CR3写入异常条目检索到的值。

在绝大多数情况下,当返回内核时,这是一个毫无意义的练习,因为CR3在异常条目时没有被修改。唯一需要这样做的情况是,当异常在切换到内核CR3之前中断了用户的一个条目,或者在切换回用户CR3之后中断了用户的一个退出。

由于CR3写入在某些系统上可能很昂贵,因此对于PERF等高频#NMI,这将成为可测量的开销。

通过检查保存在entry上的CR3值来避免这种开销,并且只有当它使用用户CR3时才将其写回CR3。”

这个pull request was successfully merged ahead of Linux 6.9-rc1 due out this weekend. This patch was written by an Alibaba engineer while Google also has carried a similar patch for their own internal kernel builds to this point.

相关文章

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

发布评论