首页
学习
活动
专区
圈层
工具
发布

宋宝华:为了不忘却的纪念,评Linux 5.13内核

printk在内核不断演进,可以看成一个锁粒度逐步缩小,直至lockless的一个典范。...但是内核的进取心很大,在5.10中,内核提交了一个lockless的ringbuffer,可安全地用于一切上下文,避免了死锁,也为避免NMI等场景对临时的per-CPU safe buffer依赖的去除提供了可能性...注意,5.10内核printk的这个lockless ringbuffer支持多个读者、多个写者安全的,它本身的实现比较复杂,更多涉及数据结构的知识,具体的细节可以参考这个commit(大约2000行代码...5.13中,内核进一步移除了 logbuf_lock,从而基本接近了lockless的printk。移除的方法是要么直接删没必要的 logbuf_lock调用,要么用一个特定的更小锁来替换。

1.8K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到
    领券