Linux 内核 Workqueue (WQ) 用于处理异步进程执行。在过去许多年中,每个 CPU 的工作队列执行上下文数量一直有上限,为 512,但在 Linux 6.13 中,这一数字翻了两番,达到 2048 个。
今天发出的是 Linux 6.13 的 workqueue 拉取请求,在这个周期的两项更改中,最值得注意的是增加了最大并发限制:
“很久以前设置的最大并发限制为 512,现在太低了。合法使用 (BPF cgroup release) system_wq 可能会在压力测试条件下使其饱和,从而导致错误的依赖关系和死锁。当违规使用切换到专用工作队列时,利用这个机会将WQ_MAX_ACTIVE增加四倍,并记录系统工作队列不应饱和。Workqueue 至少应该为系统 workqueue 饱和的情况添加一个警告机制。
这个 512 的限制是在十五年前设定的。但是,随着当今服务器规模的大幅增加,是时候提高该限制了。
Linux 6.13 的另一个 workqueue 更改也值得注意,因为它减少了围绕未绑定工作队列的昂贵锁定:
“最近的工作队列更新以支持更灵活的执行拓扑,使得未绑定的工作队列使用每 CPU 的工作线程池前端,这推高了工作队列刷新开销。由于连续的 CPU 可能指向同一个工作线程池,因此请仅在必要时通过切换锁来减少开销。
这些 WQ 更改现在正在等待 Linux 6.13 合并窗口。
转自 Linux 6.13 Quadrupling Workqueue Concurrency Limit – Phoronix
个人也一直很喜欢ThinkPad XT 系列的可变平板设计,只是图形性能较差,太贵