Skip to content

mm/damon: fix DAMOS bugs in core, paddr and vaddr

SJ Park damon linux-mm lkml stable 1 version Applied

Status from this message: [merged mm-stable] mm-damon-core-handle-extreme-memory-state-in-get_in_active_mem_bp.patch removed from -mm tree

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest8 patches 3 repliesApplied 8/8

Patches in v1 All 8 applied

#Subject and filesSizeRepliesApplied
1/8mm/damon/core: skip applying scheme if region split for quota failsmm/damon/core.c+2 -10 repliesApplied
2/8mm/damon/paddr: respect folio end for DAMOS_STATmm/damon/paddr.c+1 -10 repliesApplied
3/8mm/damon/paddr: respect folio end for DAMOS actions except STATmm/damon/paddr.c+3 -30 repliesApplied
4/8mm/damon/vaddr: respect folio end for DAMOS_STATmm/damon/vaddr.c+4 -10 repliesApplied
5/8mm/damon/vaddr: respect folio end for DAMOS_MIGRATE_{HOT,COLD}mm/damon/vaddr.c+4 -10 repliesApplied
6/8mm/damon/core: handle extreme memory state in damon_get_node_mem_bp()mm/damon/core.c+7 -00 repliesApplied
7/8mm/damon/core: handle extreme memory state in get_node_memcg_used_bp()mm/damon/core.c+6 -01 replyApplied
8/8mm/damon/core: handle extreme memory state in get_in_active_mem_bp()mm/damon/core.c+1 -11 replyApplied

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/8] mm/damon: fix DAMOS bugs in core, paddr and vaddr

Fix misc bugs of DAMOS. Patch 1 makes DAMOS less stress memory allocator under extreme situation. Patches 2 and 3 fix wrong folios walking in DAMON_PADDR. Patches 4 and 5 fix wrong folios walking in DAMON_VADDR. Patches 6-8 handle extreme and unlikely memory situations that can cause divide by zero and underflow.

All bugs are discovered by Sashiko.

The bugs are not very critical, but better to be merged sooner than later. Since mm.git is closed for urgent changes, I aim for 7.3-rcX. I will drop the RFC tag after 7.3-rc1.

Changes from RFC v1.2
- RFC v1.2: https://lore.kernel.org/[email protected]
- Drop RFC tag.
- Rebase to latest mm-new.
Changes from RFC v1.1
- RFC v1.1: https://lore.kernel.org/[email protected]
- Fix wrong commit message (patch 7).
- Return 100% and 0% for used and free memory (patches 7 and 8).
- Drop incomplete last_psi_total initialization (patch 2).
- Rebase to latest mm-new.
Changes from RFC
- RFC: https://lore.kernel.org/[email protected]
- Use cached pte content (patch 5 and 6).
- Handle totalram < freeram case (patch 7).
- Fix wrong function name in commit message (patch 9).

SJ Park (8):
mm/damon/core: skip applying scheme if region split for quota fails mm/damon/paddr: respect folio end for DAMOS_STAT mm/damon/paddr: respect folio end for DAMOS actions except STAT mm/damon/vaddr: respect folio end for DAMOS_STAT mm/damon/vaddr: respect folio end for DAMOS_MIGRATE_{HOT,COLD} mm/damon/core: handle extreme memory state in damon_get_node_mem_bp() mm/damon/core: handle extreme memory state in get_node_memcg_used_bp() mm/damon/core: handle extreme memory state in get_in_active_mem_bp()

 mm/damon/core.c  | 18 ++++++++++++++++--
 mm/damon/paddr.c |  8 ++++----
 mm/damon/vaddr.c | 10 ++++++++--
 3 files changed, 28 insertions(+), 8 deletions(-)

base-commit: 0926ef526f90a707f59c0790cafdb5a9b9cdebe7

Signature · 1 line
2.47.3