Re: [RFC PATCH v2 0/4] mm/swap: reserve swap areas for deliberate offload
From: Chris Li
Date: Sat Sep 26 2026 - 19:32:31 EST
On Fri, Sep 25, 2026 at 6:55 PM Matthias Goergens
<matthias.goergens@xxxxxxxxx> wrote:
> The series fixes zram selftest device tracking and error reporting, adds
> the swap policy with DRM eligibility checks, and tests routing, workingset
> activation and retained-entry write refusal. It is based on mm-new at
> 995829088503.
Hi Matthias,
I can't find mm-new 995829088503 anymore.
Your patch does not apply cleanly to the current tip of mm-new
mm-unstable, or mm-stable branches.
Do you have a git repo with your patch applied?
mm-new is whatever Andrew can find on the mailing list, regardless of
whether it has been reviewed. That mm-new branch is very unstable,
even more so than mm-unstable, which should at least have some review
already. Maybe consider using mm-stable or mm-unstable as base next
time.
Chris
>
> Feedback is particularly welcome on:
>
> - Activation-time eligibility versus backend placement or migration:
> is retained-entry refusal, with possible reclaim churn or OOM,
> acceptable without migration?
> - Eligible-capacity accounting, including overcommit limits and OOM
> scoring; cache recovery, cluster invalidation and workingset activation.
> - Persistent activation and visibility: current swap listings do not
> expose the policy.
>
> Validation includes x86 builds, affected arm64 MTE objects and builds
> without swap or memory cgroups. QEMU tests covered routing, retained-entry
> recovery, data integrity and cleanup, with negative controls for write
> refusal and teardown failure.
>
> I have also been using this policy on my own machine with experimental
> bcachefs swap support, with no problems observed so far. Deliberate stress
> testing is confined to VMs; I do not deliberately stress-test this machine.
>
> Changes since v1, incorporating Sashiko's public review [7]:
>
> - Improve selftest isolation, retained-swap measurement and memlock skips.
> - Track allocated zram devices, wait for udev probes and report cleanup
> errors without deleting data through a mount that could not be released.
> - Clarify activation, capacity reporting and conventional fallback limits.
>
> [1] https://patchew.org/linux/20260825153238.2695446-1-nphamcs@xxxxxxxxx/
> [2] https://patchew.org/linux/20260713025644.170839-1-youngjun.park@xxxxxxx/
> [3] https://openzfs.github.io/openzfs-docs/Project%20and%20Community/FAQ.html#using-a-zvol-for-a-swap-device-on-linux
> [4] https://engineering.fb.com/2022/06/20/data-infrastructure/transparent-memory-offloading-more-memory-at-a-fraction-of-the-cost-and-power/
> [5] https://www.kernel.org/doc/html/latest/admin-guide/mm/damon/reclaim.html
> [6] https://www.kernel.org/doc/html/latest/admin-guide/mm/zswap.html
> [7] https://sashiko.dev/#/patchset/20260914104501.3960616-1-matthias.goergens@xxxxxxxxx
> [8] https://github.com/util-linux/util-linux/pull/4633
> [9] https://lore.kernel.org/all/20260914105606.3997649-1-matthias.goergens@xxxxxxxxx/
>
> v1: https://lore.kernel.org/all/20260914104501.3960616-1-matthias.goergens@xxxxxxxxx/
>
> Matthias Goergens (4):
> selftests: zram: track owned devices and report cleanup failures
> mm: restrict offload-only swap to proactive reclaim
> selftests: zram: cover offload-only swap policy
> selftests: zram: cover retained offload-only entries
>
> Documentation/mm/swap.rst | 105 ++++
> drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 2 +-
> .../gpu/drm/i915/gem/selftests/huge_pages.c | 6 +-
> drivers/gpu/drm/msm/msm_gem_shrinker.c | 2 +-
> drivers/gpu/drm/panthor/panthor_gem.c | 2 +-
> drivers/gpu/drm/ttm/ttm_backup.c | 2 +-
> drivers/gpu/drm/xe/tests/xe_bo.c | 2 +-
> include/linux/swap.h | 29 +-
> include/linux/vm_event_item.h | 1 +
> mm/memcontrol.c | 20 +-
> mm/page_io.c | 24 +-
> mm/swapfile.c | 123 ++++-
> mm/vmscan.c | 31 +-
> mm/vmstat.c | 1 +
> tools/testing/selftests/zram/.gitignore | 2 +
> tools/testing/selftests/zram/Makefile | 4 +-
> tools/testing/selftests/zram/README | 20 +-
> tools/testing/selftests/zram/config | 10 +-
> tools/testing/selftests/zram/settings | 1 +
> tools/testing/selftests/zram/swap_offload.c | 425 +++++++++++++++++
> .../selftests/zram/workingset_offload.c | 207 ++++++++
> tools/testing/selftests/zram/zram.sh | 9 +
> tools/testing/selftests/zram/zram01.sh | 9 +-
> tools/testing/selftests/zram/zram02.sh | 9 +-
> tools/testing/selftests/zram/zram03.sh | 174 +++++++
> tools/testing/selftests/zram/zram04.sh | 164 +++++++
> tools/testing/selftests/zram/zram05.sh | 447 ++++++++++++++++++
> tools/testing/selftests/zram/zram_lib.sh | 189 ++++++--
> 28 files changed, 1926 insertions(+), 94 deletions(-)
> create mode 100644 tools/testing/selftests/zram/settings
> create mode 100644 tools/testing/selftests/zram/swap_offload.c
> create mode 100644 tools/testing/selftests/zram/workingset_offload.c
> create mode 100755 tools/testing/selftests/zram/zram03.sh
> create mode 100755 tools/testing/selftests/zram/zram04.sh
> create mode 100755 tools/testing/selftests/zram/zram05.sh
>
> --
> 2.55.0
>