From: "Jose A. Perez de Azpillaga" <azpijr@gmail.com>
To: Josef Bacik <josef@toxicpanda.com>,
Andrew Morton <akpm@linux-foundation.org>,
Lorenzo Stoakes <ljs@kernel.org>,
"Liam R. Howlett" <liam@infradead.org>,
David Hildenbrand <david@kernel.org>
Cc: Vlastimil Babka <vbabka@kernel.org>, Jann Horn <jannh@google.com>,
Pedro Falcato <pfalcato@suse.de>,
Muchun Song <muchun.song@linux.dev>,
Oscar Salvador <osalvador@suse.de>,
linux-mm@kvack.org, stable@vger.kernel.org
Subject: Re: [PATCH v2 1/5] mm/mremap: fix hugetlb reservation leak on partial move
Date: Tue, 3 Nov 2026 11:42:34 +0100 [thread overview]
Message-ID: <0fdec467-55b0-4354-8bd6-58874c2c20e5@gmail.com> (raw)
In-Reply-To: <20261102-b4-mremap-pre-split-v2-1-d281dd11ad7d@toxicpanda.com>
On 11/3/26 12:45 AM, Josef Bacik wrote:
> Moving a part of a private hugetlb mapping with mremap() leaks the huge
> page reservations of the parts that stay. They are not returned when the
> mapping is unmapped, when the process exits or when the pool is resized.
>
> fixup_hugetlb_reservations() takes the reservation map away from the old
> VMA while that VMA still spans its whole range, because the moved part is
> only split off by the unmap at the end of the move. hugetlb_vm_op_close()
> then finds no map in the parts that remain and returns nothing for them:
>
> mmap() of 4 pages, MAP_PRIVATE | MAP_HUGETLB HugePages_Rsvd: 4
> mremap() of the second page to a new address HugePages_Rsvd: 4
> munmap() of all of it HugePages_Rsvd: 3
>
> The source is unmapped in this case, so the number of VMAs ends up where it
> did before and the check against sysctl_max_map_count stays as it is.
>
> Fix by splitting a hugetlb VMA in prep_move_vma() before a part of it is
> moved, as commit 597e4b9ab48a ("mm/mremap: fix locked_vm leak by splitting
> VMA for MREMAP_DONTUNMAP") does for an mlock()'d VMA. A backport needs that
> commit, which is tagged for stable itself.
>
> Fixes: 550a7d60bd5e ("mm, hugepages: add mremap() support for hugepage backed vma")
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Josef Bacik <josef@toxicpanda.com>
>
> Reviewed-by: Lorenzo Stoakes (ARM) <ljs@kernel.org>
LGTM:
Reviewed-by: Jose A. Perez de Azpillaga <azpijr@gmail.com>
--
cheers,
jose a. p-a
next prev parent reply other threads:[~2026-11-03 10:42 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-02 23:45 [PATCH v2 0/5] mm/mremap: fix accounting on a partial move Josef Bacik
2026-11-02 23:45 ` [PATCH v2 1/5] mm/mremap: fix hugetlb reservation leak on " Josef Bacik
2026-11-03 10:42 ` Jose A. Perez de Azpillaga [this message]
2026-11-02 23:45 ` [PATCH v2 2/5] selftests/mm: test a partial mremap() of hugetlb memory Josef Bacik
2026-11-03 10:48 ` Jose A. Perez de Azpillaga
2026-11-02 23:45 ` [PATCH v2 3/5] mm/mremap: reaccount on unmap failure only if accounted Josef Bacik
2026-11-03 10:53 ` Jose A. Perez de Azpillaga
2026-11-02 23:46 ` [PATCH v2 4/5] mm/mremap: restore VMA_ACCOUNT_BIT if the unmap fails Josef Bacik
2026-11-03 8:31 ` Lorenzo Stoakes (ARM)
2026-11-03 11:08 ` Jose A. Perez de Azpillaga
2026-11-02 23:46 ` [PATCH v2 5/5] selftests/mm: test mremap() with an old size of 0 Josef Bacik
2026-11-03 11:27 ` Jose A. Perez de Azpillaga
2026-11-04 5:40 ` Sarthak Sharma
2026-11-03 0:23 ` [PATCH v2 0/5] mm/mremap: fix accounting on a partial move Andrew Morton
2026-11-04 14:32 ` Josef Bacik
2026-11-04 14:46 ` Lorenzo Stoakes (ARM)
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=0fdec467-55b0-4354-8bd6-58874c2c20e5@gmail.com \
--to=azpijr@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=david@kernel.org \
--cc=jannh@google.com \
--cc=josef@toxicpanda.com \
--cc=liam@infradead.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=muchun.song@linux.dev \
--cc=osalvador@suse.de \
--cc=pfalcato@suse.de \
--cc=stable@vger.kernel.org \
--cc=vbabka@kernel.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.