linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv2 0/5] mm: Improve mlock tracking for large folios
@ 2025-09-19 12:40 Kiryl Shutsemau
  2025-09-19 12:40 ` [PATCHv2 1/5] mm/page_vma_mapped: Track if the page is mapped across page table boundary Kiryl Shutsemau
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Kiryl Shutsemau @ 2025-09-19 12:40 UTC (permalink / raw)
  To: Andrew Morton, David Hildenbrand, Hugh Dickins, Matthew Wilcox
  Cc: Lorenzo Stoakes, Liam R. Howlett, Vlastimil Babka, Mike Rapoport,
	Suren Baghdasaryan, Michal Hocko, Rik van Riel, Harry Yoo,
	Johannes Weiner, Shakeel Butt, Baolin Wang, linux-mm,
	linux-kernel, Kiryl Shutsemau

From: Kiryl Shutsemau <kas@kernel.org>

The patchset includes several fixes and improvements related to mlock
tracking of large folios.

The main objective is to reduce the undercount of Mlocked memory in
/proc/meminfo and improve the accuracy of the statistics.

Patches 1-2:

These patches address a minor race condition in folio_referenced_one()
related to mlock_vma_folio().

Currently, mlock_vma_folio() is called on large folio without the page
table lock, which can result in a race condition with unmap (i.e.
MADV_DONTNEED). This can lead to partially mapped folios on the
unevictable LRU list.

While not a significant issue, I do not believe backporting is
necessary.

Patch 3:

This patch adds mlocking logic similar to folio_referenced_one() to
try_to_unmap_one(), allowing for mlocking of large folios where
possible.

Patch 4:

This patch modifies finish_fault() to fault in the entire folio when
possible, enabling efficient mlocking upon addition to the rmap.

Patch 5:

This patch ensures that rmap mlocks large folios if they are fully
mapped, addressing the primary source of mlock undercount for large
folios.

Kiryl Shutsemau (5):
  mm/page_vma_mapped: Track if the page is mapped across page table
    boundary
  mm/rmap: Fix a mlock race condition in folio_referenced_one()
  mm/rmap: mlock large folios in try_to_unmap_one()
  mm/fault: Try to map the entire file folio in finish_fault()
  mm/rmap: Improve mlock tracking for large folios

 include/linux/rmap.h |   5 +++
 mm/memory.c          |   9 +---
 mm/page_vma_mapped.c |   1 +
 mm/rmap.c            | 101 +++++++++++++++++++++++--------------------
 4 files changed, 61 insertions(+), 55 deletions(-)

-- 
2.50.1



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2025-09-22 20:16 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-09-19 12:40 [PATCHv2 0/5] mm: Improve mlock tracking for large folios Kiryl Shutsemau
2025-09-19 12:40 ` [PATCHv2 1/5] mm/page_vma_mapped: Track if the page is mapped across page table boundary Kiryl Shutsemau
2025-09-19 20:25   ` Shakeel Butt
2025-09-22 16:13     ` Kiryl Shutsemau
2025-09-19 12:40 ` [PATCHv2 2/5] mm/rmap: Fix a mlock race condition in folio_referenced_one() Kiryl Shutsemau
2025-09-19 21:18   ` Shakeel Butt
2025-09-19 12:40 ` [PATCHv2 3/5] mm/rmap: mlock large folios in try_to_unmap_one() Kiryl Shutsemau
2025-09-19 21:27   ` Shakeel Butt
2025-09-22  9:51     ` Kiryl Shutsemau
2025-09-22 20:16       ` Shakeel Butt
2025-09-19 12:40 ` [PATCHv2 4/5] mm/fault: Try to map the entire file folio in finish_fault() Kiryl Shutsemau
2025-09-19 21:28   ` Shakeel Butt
2025-09-20  7:37   ` Matthew Wilcox
2025-09-22 16:16     ` Kiryl Shutsemau
2025-09-22  3:19   ` Baolin Wang
2025-09-19 12:40 ` [PATCHv2 5/5] mm/rmap: Improve mlock tracking for large folios Kiryl Shutsemau
2025-09-22  3:20   ` Baolin Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox