Skip to the content.

https://lwn.net/Articles/799218/

rcu 的邮件,每一个都需要阅读下

也许最终可以来帮助 Paul 来 review patch 吧

为什么内核有定义了一个 LKMM ?

https://mp.weixin.qq.com/s/ooNq32HCF4PmKoirsczDtg

资源

https://pauillac.inria.fr/~maranget/papers/asplos2018.pdf

全序关系 如何理解? Happens-Before

From-Reads (fr) Reads-From (rf) 有区别?

cat 语言?

linux-drm/tools/testing/selftests/membarrier/ 这是很小的测试,按道理可以吸收进来

还有几个工具: MemAlloy: 用于验证和比较内存模型的 Alloy 模型 Nemos: 另一个内存模型工具 rmem: ARM 的内存模型探索工具

关键目录

/home/martins3/data/kernel/linux-drm/tools/memory-model/ /home/martins3/data/kernel/linux-drm/Documentation/dev-tools/lkmm/

README 内容总结

如果你的目标是“会写代码并能解释为什么对”,README -> simple -> ordering -> recipes -> locking -> litmus-tests 是最稳的路线。

tools/memory-model/Documentation/cheatsheet.txt 先设计同步模式,再用这张表核对,不要反过来只靠查表拼代码。

README 中文译解

源文件:tools/memory-model/Documentation/README

文档在说什么

这份 README 不是讲某个具体内存序原语,而是在说明整套 LKMM 文档应该怎么读。原文先强调一个现实问题:LKMM 的读者背景差异极大,有的人是并发新手,有的人已经熟悉内核同步原语,有的人只是想写 litmus test,还有的人想读形式化模型本身。

因此,这份文档给出的不是单一阅读顺序,而是“按目标选入口”的阅读地图。它提醒读者:越靠后的文档越假定你已经理解前面的材料,所以最好按自己的背景从合适的位置切入。

阅读路径译解

各文件的角色

这份 README 的使用方式

把它当成导航页,而不是知识点本身。真正学 LKMM 时,最常见的路径是:

  1. simple.txt
  2. ordering.txt
  3. recipes.txt
  4. litmus-tests.txt
  5. explanation.txt

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。