背景:内核的 hwpoison 机制负责隔离出现硬件错误的内存页面,而遇到不可恢复故障时是否让主机 panic 由 vm.panic_on_unrecoverable_memory_failure 控制。此前缺少可控的端到端手段来验证这条路径。
要点
- 补丁 v3 于 2026 年 8 月 13 日发出,新增 tools/mm/memory-failure/hwpoison-panic.c,共 359 行,四个文件累计新增 363 行。
- 工具启用上述 sysctl,挑选一个内核自身占用的 PFN,把其物理地址写入 /sys/devices/system/memory/hard_offline_page。
- 用 -k 可选择 rodata(默认,仅 x86 与 riscv,从 /proc/iomem 取 Kernel rodata 段)、slab 或 pgtable(按 /proc/kpageflags 选页)。
- 必须显式带 --yes-panic-my-kernel 并具备 root 权限,成功执行时进程不会返回零退出码。
- 代码放在 tools/mm 而非 selftests/mm,因为一次成功运行就会打死系统。
对企业 IT 的意义
虚拟化宿主与数据库节点在内存报错后应继续运行还是立刻 panic 交给高可用接管,是可用性策略的关键分歧。主线提供标准触发工具后,团队可在预生产环境复现该路径,验证监控告警、热迁移与节点隔离流程是否与预期一致。
出处:原文(补丁记录),报道来自 Phoronix。