Linux 6.18 LTS:bcachefs 移出主线,改用 DKMS 模块维护
Linux 6.18 于 2025-11-30 发布,成为第 26 个 LTS 版本,预计维护到 2028-12。Linus 计划 6.19 走 rc8。
bcachefs 被整个移出内核主线
6.18 里最受关注的一处硬变化是 bcachefs 文件系统被从内核树中整体移除。改动本身有争议,落到使用层面的结果是:bcachefs 不再随主线内核源码一起构建,改为由外部 DKMS 模块维护,在版本状态表里的标记也从 Supported 变为 Externally maintained。
从主线迁移到 DKMS 的要点
- 6.18 的内核配置里已经没有 bcachefs 对应的 Kconfig 项,升级后
CONFIG_BCACHEFS*不再生效,需要另行获取外部模块源码并构建。DKMS 的意义在于内核小版本更新后自动重建模块,避免每次升级内核都手动重编。 - 模块要被 initramfs 收录,否则挂载发生在 initramfs 阶段的文件系统会找不到驱动。用
dracut --force --add-drivers之类的方式重建 initramfs,或在相应配置里声明额外模块。 - 启用 Secure Boot 时,外部构建的模块需要按本机策略签名,未签名模块会被拒绝加载。
- 风险集中在两点:一是根文件系统或关键挂载点使用 bcachefs 时,模块加载失败会直接导致无法开机,升级前应确认有可回退的内核与 initramfs;二是 on-disk 格式与工具链(
bcachefs-tools)的版本匹配不再由内核发布节奏保证,需要跟着外部项目走。多机环境建议先在非关键节点上验证一轮升级流程。
内存分配:slub sheaves 与 kfree_rcu 批处理
新增 slub "sheaves",本质是 per-CPU 缓存,让分配尽量在本地完成,减少跨 CPU 同步,分配路径与释放路径都因此提速。同时新增 kfree_rcu() 的批处理与回收机制。
dm-pcache:用持久内存给块设备做缓存
新增 device-mapper target dm-pcache,把持久内存作为较慢块设备的缓存使用。在 6.18 的概述材料里,dm-pcache 与 device mapper persistent cache 指的是同一个东西。
网络
- UDP RX 性能与扩展性大幅提升,做法是 NUMA-aware locking,并重排数据结构的二进制布局。压力场景下再提升约 50%,极端情况更高;phoronix / cnx 的报道给出的数字是最高约 47%。
- TCP 支持 Accurate Explicit Congestion Notification。
- TCP 连接支持 PSP 加密,定位类似 IPsec / TLS,但硬件卸载能力更强。
其他内核侧变化
- swap 性能提升:以 swap table 作为 swap cache 后端,提升幅度 5–20%。
- BPF:BPF signed programs;PowerPC 上的 BPF arenas。
- 进程命名空间可以作为 file handle 管理,方式类似 pidfd。
- 新增
microcode=命令行选项,用于控制 x86 microcode loader 的行为。 - Rust 支持扩展:atomic、maple trees、DebugFS、bitmaps;Arm Mali CSF Tyr GPU 驱动用 Rust 编写;Rust Binder 驱动。
- NFS 服务端更易扩展(移除缓存)。
- Btrfs 初步支持 block size 大于 page size。
- KVM:虚拟化 CET(Intel/AMD)、AMD SEV-SNP CipherText Hiding、Kexec HandOver 保留 vmalloc 分配。
6.17 引入的内容与 EOL
6.17 发布于 2025-09-28,引入了 attack vector controls(按攻击向量选择 CPU 缓解措施,减少手工配置)、file_getattr / file_setattr 新 syscall、更好的 core dump、优先级继承(proxy execution 初始版)、调度器无条件以 SMP 编译、per-NUMA-node proactive reclaim、新的 fallocate(2) flag FALLOC_FL_WRITE_ZEROES(更高效地写零)、线性时序逻辑监视器。6.17 已于 2025-12-18 EOL。
来源:KernelNewbies Linux_6.18、phoronix "Linux 6.18 Released"、9to5linux、CNX Software、Wikipedia Linux kernel version history。