v1
2026-09-03
arm64 页表读取改用 pxdp_get · v1
arm64 将页表项 READ_ONCE() 访问改为通用 MM 的 pxdp_get() 系列访问器,为将来 128 位页表项原子读做准备,当前行为不变。
原始补丁链接
子 Patch(4)
1/4
arm64/mm: Convert READ_ONCE() as pmdp_get() while accessing PMD
arm64 PMD 读取从 READ_ONCE() 改为 pmdp_get();为未来 D128 128 位页表,READ_ONCE 无法保证 128 位单拷贝原子,统一走可覆盖的 helper。
2/4
arm64/mm: Convert READ_ONCE() as pudp_get() while accessing PUD
arm64 PUD 读取从 READ_ONCE() 改为 pudp_get();避免为 128 位页表扩展通用 READ_ONCE 语义,并规避运行时撕裂风险。
3/4
arm64/mm: Convert READ_ONCE() as p4dp_get() while accessing P4D
arm64 P4D 读取从 READ_ONCE() 改为 p4dp_get();使访问 helper 能按 D128 提供 128 位安全读,而不是依赖 READ_ONCE 的通用保证。
4/4
arm64/mm: Convert READ_ONCE() as pgdp_get() while accessing PGD
arm64 PGD 读取从 READ_ONCE() 改为 pgdp_get();配合 128 位翻译表项支持,保证单拷贝原子性并限制对通用 READ_ONCE API 的改动。