[PATCH 6.18.y v1 0/9] mm: backport sticky VMA flags and soft-dirty fix

Ahmed Elaidy
2026-04-24T21:13:31Z

This series backports the sticky VMA flags infrastructure and the
VM_SOFTDIRTY-on-merge fix to linux-6.18.y.

Motivation: CRIU incremental dump/restore can hit a missing-parent-pagemap
failure when VM_SOFTDIRTY is lost during VMA merge operations.

Patch 8 is the target fix:
mm: propagate VM_SOFTDIRTY on merge

The preceding patches provide required dependencies on 6.18.y and are included
to preserve upstream behavior.

Backport notes:
- Non-trivial context conflicts were resolved in:
- mm/mseal.c
- mm/vma.c
- Conflict resolution keeps upstream semantics; no intentional behavior
changes beyond context adaptation for 6.18.y.

Cc: stable@vger.kernel.org

Lorenzo Stoakes (9):
mm: introduce VM_MAYBE_GUARD and make visible in /proc/$pid/smaps
mm: add atomic VMA flags and set VM_MAYBE_GUARD as such
mm: update vma_modify_flags() to handle residual flags, document
mm: implement sticky VMA flags
mm: introduce copy-on-fork VMAs and make VM_MAYBE_GUARD one
mm: set the VM_MAYBE_GUARD flag on guard region install
tools/testing/vma: add VMA sticky userland tests
mm: propagate VM_SOFTDIRTY on merge
testing/selftests/mm: add soft-dirty merge self-test

Documentation/filesystems/proc.rst | 5 +-
fs/proc/task_mmu.c | 1 +
include/linux/mm.h | 100 +++++++++++++++++
include/trace/events/mmflags.h | 1 +
mm/khugepaged.c | 71 +++++++-----
mm/madvise.c | 24 +++--
mm/memory.c | 14 +--
mm/mlock.c | 2 +-
mm/mprotect.c | 2 +-
mm/mseal.c | 7 +-
mm/vma.c | 81 +++++++-------
mm/vma.h | 138 +++++++++++++++++-------
tools/testing/selftests/mm/soft-dirty.c | 127 +++++++++++++++++++++-
tools/testing/vma/vma.c | 92 ++++++++++++++--
tools/testing/vma/vma_internal.h | 49 +++++++++
15 files changed, 579 insertions(+), 135 deletions(-)

--
2.53.0