linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mm/vma: Do not register private-anon mappings with khugepaged during mmap
@ 2025-03-06  6:30 Dev Jain
  2025-03-06  6:38 ` Andrew Morton
  2025-03-06  8:18 ` Lorenzo Stoakes
  0 siblings, 2 replies; 6+ messages in thread
From: Dev Jain @ 2025-03-06  6:30 UTC (permalink / raw)
  To: akpm, Liam.Howlett, lorenzo.stoakes, vbabka, jannh, linux-mm,
	linux-kernel
  Cc: ryan.roberts, anshuman.khandual, aneesh.kumar, yang, david,
	willy, hughd, ziy, Dev Jain

We already are registering private-anon VMAs with khugepaged during fault
time, in do_huge_pmd_anonymous_page(). Commit "register suitable readonly
file vmas for khugepaged" moved the khugepaged registration logic from
shmem_mmap to the generic mmap path. Make this logic specific for non-anon
mappings.

Fixes: 613bec092fe7 ("mm: mmap: register suitable readonly file vmas for khugepaged")
Signed-off-by: Dev Jain <dev.jain@arm.com>
---
 mm/vma.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mm/vma.c b/mm/vma.c
index af1d549b179c..730a26bf14a5 100644
--- a/mm/vma.c
+++ b/mm/vma.c
@@ -2377,7 +2377,8 @@ static int __mmap_new_vma(struct mmap_state *map, struct vm_area_struct **vmap)
 	 * vma_merge_new_range() calls khugepaged_enter_vma() too, the below
 	 * call covers the non-merge case.
 	 */
-	khugepaged_enter_vma(vma, map->flags);
+	if (!vma_is_anonymous(vma))
+		khugepaged_enter_vma(vma, map->flags);
 	ksm_add_vma(vma);
 	*vmap = vma;
 	return 0;
-- 
2.30.2



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

end of thread, other threads:[~2025-03-06 16:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-06  6:30 [PATCH] mm/vma: Do not register private-anon mappings with khugepaged during mmap Dev Jain
2025-03-06  6:38 ` Andrew Morton
2025-03-06  7:44   ` Dev Jain
2025-03-06  8:18 ` Lorenzo Stoakes
2025-03-06 14:32   ` Dev Jain
2025-03-06 16:10     ` Lorenzo Stoakes

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