v6
2026-09-06
[PATCH v5 0/3] mm/zswap: shrink zswap_entry via a pool id · v6
zswap 用 xarray 按 id 管理 pool,entry 改存 pool id 并配合 queue_rcu_work 释放退役 pool,显著缩小 zswap_entry。
原始补丁链接
子 Patch(3)
1/3
mm/zswap: release retired pools via queue_rcu_work() instead of synchronize_rcu()
[mm/zswap: release retired pools via queue_rcu_work() instead of synchronize_rcu()] When a pool’s last reference is dropped, __zswap_pool_empty() removes it from the pool list and schedules __zswap_po
2/3
mm/zswap: replace the zswap_pools list with an allocating xarray
[mm/zswap: replace the zswap_pools list with an allocating xarray] Originally zswap kept its pools on an RCU list whose head also served as the current pool. Convert the pool table to an allocating xa
3/3
mm/zswap: reference the pool by id to shrink struct zswap_entry
[mm/zswap: reference the pool by id to shrink struct zswap_entry] struct zswap_entry is one allocation per stored page, so its size is pure overhead. It currently embeds an 8-byte pool pointer, even t