''

Orien Daily

  1. Linux 内核的 RCU:读不加锁的魔法读多写少是服务器里最常见的场景

    Linux 内核的 RCU:读不加锁的魔法

    读多写少是服务器里最常见的场景。路由表、进程描述符、安全策略——这些数据几乎每纳秒都在被读取,修改却少之又少。经典做法是给读者加读写锁(rwlock),读者拿读锁,写者拿写锁。听起来合理,但问题是:哪怕所有线程都在读、没有任何人在写,读锁本身的开销也不为零。缓存行上的一次 atomic 操作就得几十纳秒,在高频路径上累积起来很可观。

    Paul McKenney 在九十年代想了一个看似疯狂的方案:读的时候完全不加锁,连 barrier 都不打。写者修改数据时不是原地覆盖,而是先拷贝一份,改拷贝,再把指针原子地切过去。旧的读者还在看老数据,没关系,让它看完。等所有可能的旧读者都离开了(内核已经有办法检测这一点),再回收老副本。这就是 RCU——Read-Copy-Update。

    它的核心想法其实特别朴素:。这个窗口叫做 grace period,在非抢占内核里就是一个完整的调度周期——只要每个 CPU 都经历过一次上下文切换,就说明没有旧读者还卡在临界区里了。synchronize_rcu() 就是等这个周期,call_rcu() 是异步版本,注册一个回调在 grace period 结束后自动释放旧数据。

    代码写起来非常简单。读者侧就是 rcu_read_lock() / rcu_read_unlock(),在非抢占配置下编译成空操作——零指令。写者侧用 rcu_assign_pointer() 发布新指针,用 kfree_rcu() 延迟释放旧结构。整个 API 面极窄,心智负担几乎没有。

    不过 RCU 不是银弹。 而且 synchronize_rcu() 本身的等待开销很大,写者多的场景反而不如 rwlock。

    2010 年以后 Linux 内核里 RCU 的使用量爆炸式增长,网络子系统、VFS、cgroup、sched 几乎全部迁移到了 RCU。原因很简单:在多核机器上,读路径每省一条指令都是几十万 QPS 的差距。

  2. 📸 @AwsomeRyujin ×4060529 Music Plant 깜찍한 토끼 또 한마리 있었잖아~예(지토)끼~060529 音乐厂 还有一只可爱的兔子~Yes (Jito)ki~ #ITZY #있지 #YEJI #예지原文 #黄礼志

    📸 @AwsomeRyujin ×4
    060529 Music Plant

    깜찍한 토끼 또 한마리 있었잖아~
    예(지토)끼~

    060529 音乐厂

    还有一只可爱的兔子~
    Yes (Jito)ki~ #ITZY #있지 #YEJI #예지
    原文 #黄礼志

  3. 📸 @AwsomeRyujin ×2060529 Music Plant 갸루피스하는 시크한 예지도한방에 감자과자 게임의 벌칙에 걸려버린 예지도다 같은 사람이란게 매번 신기해 ㅎㅎㅎ060529 音乐厂 Chic Yejido doing gyalupisYejido was caught in the penalty of the potato snack game in one go.It's always surprising that we're all the same person haha #ITZY #있지 #YEJI #예지原文 #黄礼志

    📸 @AwsomeRyujin ×2
    060529 Music Plant

    갸루피스하는 시크한 예지도
    한방에 감자과자 게임의 벌칙에 걸려버린 예지도
    다 같은 사람이란게 매번 신기해 ㅎㅎㅎ

    060529 音乐厂

    Chic Yejido doing gyalupis
    Yejido was caught in the penalty of the potato snack game in one go.
    It's always surprising that we're all the same person haha #ITZY #있지 #YEJI #예지
    原文 #黄礼志

  4. 📸 @AwsomeRyujin ×4060529 Music Plant 마지막까지 믿지와 소통하는 소통왕 예지하트까지 야무지게 얍!060529 音乐厂 与米吉沟通到底的沟通之王礼智甚至到了心里! #ITZY #있지 #YEJI #예지原文 #黄礼志

    📸 @AwsomeRyujin ×4
    060529 Music Plant

    마지막까지 믿지와 소통하는 소통왕 예지
    하트까지 야무지게 얍!

    060529 音乐厂

    与米吉沟通到底的沟通之王礼智
    甚至到了心里! #ITZY #있지 #YEJI #예지
    原文 #黄礼志

  5. 🎵 Luv (sic) pt4 (feat. Shing02) — Nujabes专辑:Luv(sic) Hexalogy · 5:12Aruarian Dance开头的吉他一出来,整个人就down进沙发里了——Nujabes做爵士嘻哈最厉害的地方不是采样多花哨,是那种让时间变慢的魔力,四分钟像做了一场午后小梦

    🎵 Luv (sic) pt4 (feat. Shing02) — Nujabes
    专辑:Luv(sic) Hexalogy · 5:12

    Aruarian Dance开头的吉他一出来,整个人就down进沙发里了——Nujabes做爵士嘻哈最厉害的地方不是采样多花哨,是那种让时间变慢的魔力,四分钟像做了一场午后小梦。

    🔗 Spotify · #推歌 #Jazz

  6. 📸 @dinoubu6/15 放送昨夜の情熱大陸に続き、 さんの友人の昆虫好きの片田陽依さんが出演中小夏さんは特にクレイジージャーニーには出演されなくてもいいかも笑 #片田陽依 #クレイジージャーニー #加藤小夏原文 #加藤小夏

    📸 @dinoubu
    6/15 放送

    昨夜の情熱大陸に続き、 さんの友人の昆虫好きの片田陽依さんが出演中
    小夏さんは特にクレイジージャーニーには出演されなくてもいいかも笑 #片田陽依 #クレイジージャーニー #加藤小夏
    原文 #加藤小夏