#kernel stacks

LPC 2026:Linux 内核尝试缩小 16KB 线程栈

lwn.net · ⭐️ 7/10 · 2026-10-24

7/10

在 2026 年 Linux Plumbers Conference 的内存管理微会议上,Will Deacon 讨论了 64 位 Arm 和 x86 上每个线程固定占用 16KB 不可分页内存的内核栈;Android 空闲设备就可能有 5,000 个线程,云端大规模线程也会放大这项开销。用 8KB 栈构建的内核通过了大部分测试,但在内存压力测试中失败,并在涉及直接回收(direct reclaim)的路径上崩溃;4KB 栈则无法启动。会上提到的补丁系列允许通过内核命令行设置栈大小,目前可运行 12KB 栈;另有专用异常栈和把直接回收移到工作线程的方案,目标是为 8KB 铺路。默认配置仍是 16KB,这些属于会上介绍的补丁方向。