From: Roman Gushchin <roman.gushchin@linux.dev>
To: Jan Kara <jack@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
Dev Jain <dev.jain@arm.com>,
linux-mm@kvack.org
Subject: Re: [PATCH v2] mm: readahead: make thp readahead conditional to mmap_miss logic
Date: Mon, 06 Oct 2025 10:44:07 -0700 [thread overview]
Message-ID: <87qzvg6i3c.fsf@linux.dev> (raw)
In-Reply-To: <e2zblaknfnzjtlo3df4aozoxuir6zgnycdjj4ywbu7rsnpw6hr@ocemkpucjd2d> (Jan Kara's message of "Mon, 6 Oct 2025 14:31:06 +0200")
Jan Kara <jack@suse.cz> writes:
> On Sun 05-10-25 18:54:09, Roman Gushchin wrote:
>> Commit 4687fdbb805a ("mm/filemap: Support VM_HUGEPAGE for file mappings")
>> introduced a special handling for VM_HUGEPAGE mappings: even if the
>> readahead is disabled, 1 or 2 HPAGE_PMD_ORDER pages are
>> allocated.
>>
>> This change causes a significant regression for containers with a
>> tight memory.max limit, if VM_HUGEPAGE is widely used. Prior to this
>> commit, mmap_miss logic would eventually lead to the readahead
>> disablement, effectively reducing the memory pressure in the
>> cgroup. With this change the kernel is trying to allocate 1-2 huge
>> pages for each fault, no matter if these pages are used or not
>> before being evicted, increasing the memory pressure multi-fold.
>>
>> To fix the regression, let's make the new VM_HUGEPAGE conditional
>> to the mmap_miss check, but keep independent from the ra->ra_pages.
>> This way the main intention of commit 4687fdbb805a ("mm/filemap:
>> Support VM_HUGEPAGE for file mappings") stays intact, but the
>> regression is resolved.
>>
>> The logic behind this changes is simple: even if a user explicitly
>> requests using huge pages to back the file mapping (using VM_HUGEPAGE
>> flag), under a very strong memory pressure it's better to fall back
>> to ordinary pages.
>>
>> Signed-off-by: Roman Gushchin <roman.gushchin@linux.dev>
>> Reviewed-by: Jan Kara <jack@suse.cz>
>> Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
>> Cc: Dev Jain <dev.jain@arm.com>
>> Cc: linux-mm@kvack.org
>>
>> --
>>
>> v2: fixed VM_SEQ_READ handling (by Dev Jain)
>
> OK, but now we'll do mmap_miss detection and bail-out even for VM_SEQ_READ
> | VM_HUGEPAGE vmas. And without VM_HUGEPAGE we won't do it which is really
> odd. So I think you want to make the whole mmap_miss logic conditional on
> !VM_SEQ_READ...
Yeah, agree, good point.
Thanks!
prev parent reply other threads:[~2025-10-06 17:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-06 1:54 [PATCH v2] mm: readahead: make thp readahead conditional to mmap_miss logic Roman Gushchin
2025-10-06 4:48 ` Dev Jain
2025-10-06 12:31 ` Jan Kara
2025-10-06 17:44 ` Roman Gushchin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87qzvg6i3c.fsf@linux.dev \
--to=roman.gushchin@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=dev.jain@arm.com \
--cc=jack@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.