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

基于编译器的上下文与锁定分析即将应用于 Linux 7.0 并搭配 Clang 22+

一个新功能预计将在 Linux 内核的下一个版本(Linux 6.20~7.0)中引入,即基于编译器的上下文和锁定分析。该内核代码依赖于尚未发布的 LLVM Clang 22 编译器,但可以为内核开发者提供一些强大的洞察。”

谷歌的 Marco Elver 一直在使用静态分析对内核原语进行基于编译器的上下文和锁定分析。”

Marco 在当前版本补丁系列中解释了这项强大的功能:

“上下文分析是一种语言扩展,它通过获取和释放用户定义的“上下文锁”来静态检查所需的上下文是否处于活动状态(或非活动状态)。一个明显的应用是检查内核的各种同步原语(每个原语都代表一个“上下文锁”)的锁定安全性,并确保锁定规则未被违反。

该功能需要 Clang 22(未发布)或更高版本。Clang 最初将此功能称为“线程安全分析”。后来该名称被更改,功能变得更加灵活,获得了定义自定义“能力”的能力。其基础可以在“能力系统”中找到,用于指定操作的允许性依赖于某些“能力”的持有(或未持有)。

由于该功能不仅能够表达与同步原语相关的”能力”概念,而”能力”在内核中已经存在多种含义,因此内核中选用的命名与 Clang 的”线程安全”和”能力”术语有所不同;我们称该功能为”上下文分析”以避免混淆。内部实现中仍在某些地方引用 Clang 的术语,例如`-Wthread-safety`仍然作为警告选项出现在诊断消息中。”

该补丁系列已排队到 tip/tip.git 的 locking/core Git 分支。随着代码现在位于 TIP 分支,除非出现最后一刻的问题,一旦 Linux 6.20/7.0 周期在 2 月份开始,就应该提交到下一次合并窗口。

基于编译器的上下文与锁定分析即将应用于 Linux 7.0 并搭配 Clang 22+

使用这个开发者功能需要 LLVM Clang 22+,预计 LLVM Clang 22.1 稳定版将在 2 月底发布。

转自  Compiler-Based Context & Locking Analysis On Deck For Linux 7.0 Paired With Clang 22+ – Phoronix