> > Shameless plug: zswap will much less likely hit the limit (global or > cgroup) with the shrinker enabled ;) It will proactively reclaim the > objects way ahead of the limit. Hi Nhat,glad to hear from you. Back to the beginning, the original intention of this patch is to solve the problem that shrink_work() fails to reclaim memory in two situations. The zswap_writeback_entry() will failed for !page_was_allocated because zswap_load will have two copies of the same page in memory (compressed and uncompressed) after faulting in a page from zswap when zswap_exclusive_loads disabled. A simple test: 1): Turn off zswap_exclusive_loads_enabled. 2): Run a read-only program and allocate more memory than the limit, so the limit will be reached and shrinker will fail. > > It comes with its own can of worms, of course - it's unlikely to work > for all workloads in its current form, but perhaps worth experimenting > with/improved upon? >