linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv3 0/5] mm: Improve mlock tracking for large folios
@ 2025-09-23 11:03 Kiryl Shutsemau
  2025-09-23 11:03 ` [PATCHv3 1/5] mm/rmap: Fix a mlock race condition in folio_referenced_one() Kiryl Shutsemau
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Kiryl Shutsemau @ 2025-09-23 11:03 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-5:

These patches modifies finish_fault() and faultaround to map in the
entire folio when possible, enabling efficient mlocking upon addition to
the rmap.

Patch 6:

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

v3:
 - Map entire folios on faultaround where possible;
 - Fix comments and commit messages;
 - Apply tags;

Kiryl Shutsemau (5):
  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/filemap: Map entire large folio faultaround
  mm/rmap: Improve mlock tracking for large folios

 mm/filemap.c |  15 +++++++
 mm/memory.c  |   9 +----
 mm/rmap.c    | 109 ++++++++++++++++++++++++++++-----------------------
 3 files changed, 78 insertions(+), 55 deletions(-)

-- 
2.50.1



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

end of thread, other threads:[~2025-09-23 11:05 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-09-23 11:03 [PATCHv3 0/5] mm: Improve mlock tracking for large folios Kiryl Shutsemau
2025-09-23 11:03 ` [PATCHv3 1/5] mm/rmap: Fix a mlock race condition in folio_referenced_one() Kiryl Shutsemau
2025-09-23 11:03 ` [PATCHv3 2/5] mm/rmap: mlock large folios in try_to_unmap_one() Kiryl Shutsemau
2025-09-23 11:03 ` [PATCHv3 3/5] mm/fault: Try to map the entire file folio in finish_fault() Kiryl Shutsemau
2025-09-23 11:03 ` [PATCHv3 4/5] mm/filemap: Map entire large folio faultaround Kiryl Shutsemau
2025-09-23 11:03 ` [PATCHv3 5/5] mm/rmap: Improve mlock tracking for large folios Kiryl Shutsemau
2025-09-23 11:05 ` [PATCHv3 0/5] mm: " Kiryl Shutsemau

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