v1
2026-10-17
CXL毒页不入分配器 · v1
CXL region probe 读取设备 poison list,在 dax/kmem 上线前扣留坏 DPA 的 frame,避免毒化内存进入 buddy 触发 MCE/SIGBUS。
原始补丁链接
子 Patch(5)
1/5
cxl/mbox: Add Get Poison List snapshot support
cxl_mem_get_poison() uses a device-owned output buffer for each Get Poison List response. It traces the records before issuing the next command, which overwrites that buffer when the device sets the M
2/5
cxl/region: Factor decoder poison-list retrieval
poison_by_decoder() performs two different operations: it queries an unmapped DPA gap preceding an endpoint decoder, then queries the DPA resource assigned to that decoder and its region. Factor the
3/5
mm/memory-failure: Add a pre-online poison registry
A frame can be known bad before its backing memory is onlined. A CXL Type-3 device retains poison as DPA-based Media Error Records and can report those records through GET_POISON_LIST after a reboot,
4/5
mm/page_alloc: Keep pre-online poison out of the buddy allocator
The inherited-poison path checks initialized blocks before releasing them to the buddy allocator. CXL device poison discovered before hot-added memory is onlined is recorded separately in the pre-onli
5/5
cxl/region: Register device poison before exposing RAM
The trigger_poison_list interface may retrieve poison after CXL memory is already online, which is too late to prevent known-bad frames from entering the page allocator. During RAM-region probe, retr