v3
2026-09-10
优化 zswap 失效与存储 · v3
将 zswap_invalidate() 改为按范围处理,zswap 未使用时跳过 xarray 查找,并在 zswap_store() 中复用以减少逐槽查找和重复逻辑。
原始补丁链接
子 Patch(3)
1/3
mm: zswap: convert zswap_invalidate() to take a range
zswap_invalidate() 改为接收 type、offset 和 nr_entries,支持一次失效整个 swap 范围;swap_range_free() 不再逐 slot 循环调用。
2/3
mm: zswap: skip xarray walk in zswap_invalidate() when zswap is unused
在 zswap_invalidate() 内加入 zswap_never_enabled() 判断,未启用 zswap 时直接返回,省去 per-area xarray 遍历。
3/3
mm: zswap: reuse zswap_invalidate() in zswap_store()
zswap_store() 的 check_old 路径复用 zswap_invalidate(),靠其 zswap_never_enabled() 与 xa_empty() 短路,消除重复 per-slot 释放和多余查找。