Linux 6.13 將工作佇列並發限制提高了四倍
Linux 核心工作佇列(WQ) 用於處理非同步處理執行。 在過去的許多年中,每個CPU 的工作佇列執行上下文數量上限一直是512,但隨著Linux 6.13 的發布,這一上限將翻兩番,達到2048。
今天發布的是Linux 6.13 的workqueue 拉取請求。
“Maximum concurrency limit of 512 是很久以前設定的,現在太低了。 在壓力測試條件下,system_wq 的合法使用(BPF cgroup 發布)可能會使其達到飽和,從而導致錯誤的依賴關係和死鎖。在將違規使用切換到專用工作佇列的同時,利用這個機會將WQ_MAX_ACTIVE 提升四倍,並記錄系統工作佇列不應飽和。
這個512 限制是在十五年前設定的。
Linux6.13的另一個工作佇列變更也值得注意。
“最近的工作佇列更新支援更靈活的執行拓撲結構使得非綁定工作佇列使用按CPU 工作者池前端,這推高了工作佇列刷新開銷。 由於連續的CPU 很可能指向同一個Worker 池,因此只有必要時才切換鎖,以減少開銷。
這些WQ 變更現在正等待Linux 6.13 合併視窗的到來。