COSCUP 2026 - Conference for Open Source Coders, Users, and Promoters

曾俊瑋

CCU OSLAB


Beitrag

08.08
14:50
30min
從 Test-and-Set 到 NUMA-aware Locks:重新思考現代硬體上的 Spinlocks
William Hong, 曾俊瑋

現代多核心系統高度仰賴高效率的同步機制,但許多開發者仍將 spinlock 視為黑盒子。
在本場演講中,我們將探討 spinlock 的設計如何演進,以因應現代硬體上的可擴展性挑戰。從經典的 test-and-set 與 ticket locks 出發,我們會檢視它們在高競爭情境下的限制,並說明以queue為基礎的方法,例如 Linux kernel 的 qspinlock,如何確保公平性並提升效能。
接著,我們將進一步探討更進階的設計,例如 Compact NUMA-aware Locks(CNA),並介紹我們自己的實驗性實作 RON,強調快取一致性與 NUMA 效應所帶來的挑戰。
我們也會分享 CNA 設計者所遭遇的挑戰,以及我們在嘗試將新的鎖設計 upstream 到 Linux kernel 過程中的經驗與教訓。
最後,我們將討論在真實系統中提升效能的策略;相較於設計鎖,開發者更常面對的是如何使用鎖。這些策略包括降低鎖的大小,以及考慮 RCU 等替代同步機制。
與會者將能獲得關於鎖可擴展性、效能瓶頸,以及如何分析現代多核心架構上同步行為。
本場次延續我們先前的演講,但會更著重於 CNA 與 RON 的設計與評估,並納入 kernel maintainers 的觀點。我們將聚焦於真實世界中的取捨與決策,提供與會者可付諸行動的觀點,協助處理因鎖競爭所造成的效能瓶頸,並評估替代同步策略。

System Software
TR213