From: "Lorenzo Stoakes (Oracle)" <ljs@kernel.org>
To: Sayali Patil <sayalip@linux.ibm.com>
Cc: "David Hildenbrand (Arm)" <david@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Shuah Khan <shuah@kernel.org>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
linux-kselftest@vger.kernel.org,
Ritesh Harjani <ritesh.list@gmail.com>, Zi Yan <ziy@nvidia.com>,
Michal Hocko <mhocko@kernel.org>,
Oscar Salvador <osalvador@suse.de>,
Lorenzo Stoakes <lorenzo.stoakes@oracle.com>,
Dev Jain <dev.jain@arm.com>,
Liam.Howlett@oracle.com, linuxppc-dev@lists.ozlabs.org,
Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Subject: Re: [PATCH v3 08/13] selftests/mm: ensure destination is hugetlb-backed in hugepage-mremap
Date: Tue, 7 Apr 2026 11:22:35 +0100 [thread overview]
Message-ID: <adTa3YItApOvQAlN@lucifer> (raw)
In-Reply-To: <f0905481-3ed3-49e6-a25d-4b58dca7493c@linux.ibm.com>
On Fri, Apr 03, 2026 at 11:11:25PM +0530, Sayali Patil wrote:
>
>
> On 02/04/26 14:35, Lorenzo Stoakes (Oracle) wrote:
> > On Thu, Apr 02, 2026 at 09:33:29AM +0200, David Hildenbrand (Arm) wrote:
> > > On 4/1/26 22:39, Sayali Patil wrote:
> > > >
> > > >
> > > > On 01/04/26 20:10, Lorenzo Stoakes (Oracle) wrote:
> > > > > On Wed, Apr 01, 2026 at 04:21:55PM +0200, David Hildenbrand (Arm) wrote:
> > > > >
> > > > > OK so digging in:
> > > > >
> > > > > mremap -> ... -> vrm_set_new_addr() -> get_unmapped_area() -> ... (in
> > > > > ppc arch
> > > > > code) -> slice_get_unmapped_area():
> > > > >
> > > > > unsigned long slice_get_unmapped_area(unsigned long addr, unsigned
> > > > > long len,
> > > > > unsigned long flags, unsigned int psize,
> > > > > int topdown)
> > > > > {
> > > > > ...
> > > > > /* bunch of checks */
> > > > >
> > > > > /* If we have MAP_FIXED and failed the above steps, then error out */
> > > > > if (fixed)
> > > > > return -EBUSY;
> > > > >
> > > > > ...
> > > > > }
> > > > >
> > > > > Is presumably where we hit the issue.
> > > > >
> > > > > >
> > > > > > That is weird. An mremap(MREMAP_FIXED) is really just an munmap() +
> > > > > > move.
> > > > >
> > > > > Yeah the weird bit I guess is that we _still_ invoke
> > > > > get_unmapped_area() but
> > > > > with MAP_FIXED set to indicate that we want the specific address, so it's
> > > > > subject to the above checks.
> > > > >
> > > > > >
> > > > > > Are we sure this is not some actual problem in the hugetlb
> > > > > > implementation?
> > > > >
> > > > > It seems the 'slices' check sees if the _target address_ has an
> > > > > equivalent page
> > > > > size, presumably hugetlb-mandated, and fails if they're not
> > > > > equivalent, so this
> > > > > change is just accounting for that.
> > > > >
> > > > Yes, this change accounts for that by ensuring the destination is
> > > > created with MAP_HUGETLB so it has the same page size as the source.
> > >
> > > Okay, weird, so it's the right thing to do to cover all odd arch behavior.
> > >
> > > > >
> > > > > >
> > > > > >
> > > > > > But then the test suddenly requires more hugetlb pages, no? I don't see
> > > > > > a good reason for the MAP_POPULATE, really. It will be discarded
> > > > > > either way.
> > > > >
> > > > > Yeah I'm not sure about the MAP_POPULATE being all that important here.
> > > > >
> > > > As far as I understand, without MAP_POPULATE, memory accesses would
> > > > trigger userfaults, and since the test is single-threaded and has no
> > > > background handler for the uffd, it would deadlock. MAP_POPULATE ensures
> > > > the test runs correctly by prefaulting all pages, but please let me know
> > > > if I’m mistaken.
> > >
> > > So you are saying the test would deadlock if you are not adding
> > > MAP_POPULATE? If so, please double check if that is actually the case.
> > >
> > > And if it's actually the case, please carefully document that in the
> > > patch description, and probably as a comment above the MAP_POPULATE usage.
> >
> > Do keep in mind MAP_POPULATE is not _guaranteed_ to work :)
> >
> > For guaranteed populate you need madvise(..., MADV_POPULATE_[READ/WRITE]) or to
> > directly fault in.
> >
> > >
> > > --
> > > Cheers,
> > >
> > > David
> >
> > Cheers, Lorenzo
> >
> Thanks David and Lorenzo for the input.
> I tested without MAP_POPULATE and the test works fine without it.
> I will remove it in the next version.
Thanks!
Cheers, Lorenzo
next prev parent reply other threads:[~2026-04-07 10:22 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-27 7:15 [PATCH v3 00/13] selftests/mm: fix failures and robustness improvements Sayali Patil
2026-03-27 7:15 ` [PATCH v3 01/13] selftests/mm: restore default nr_hugepages value during cleanup in charge_reserved_hugetlb.sh Sayali Patil
2026-04-01 14:52 ` Sayali Patil
2026-04-01 16:05 ` Sayali Patil
2026-03-27 7:15 ` [PATCH v3 02/13] selftests/mm: fix hugetlb pathname construction " Sayali Patil
2026-04-01 14:06 ` David Hildenbrand (Arm)
2026-03-27 7:15 ` [PATCH v3 03/13] selftests/mm: fix hugetlb pathname construction in hugetlb_reparenting_test.sh Sayali Patil
2026-04-01 14:06 ` David Hildenbrand (Arm)
2026-03-27 7:15 ` [PATCH v3 04/13] selftest/mm: fix cgroup task placement and drop memory.current checks " Sayali Patil
2026-04-01 14:08 ` David Hildenbrand (Arm)
2026-04-03 19:59 ` Sayali Patil
2026-03-27 7:15 ` [PATCH v3 05/13] selftests/mm: size tmpfs according to PMD page size in split_huge_page_test Sayali Patil
2026-04-01 16:20 ` Sayali Patil
2026-03-27 7:16 ` [PATCH v3 06/13] selftest/mm: adjust hugepage-mremap test size for large huge pages Sayali Patil
2026-04-01 14:10 ` David Hildenbrand (Arm)
2026-04-01 20:45 ` Sayali Patil
2026-03-27 7:16 ` [PATCH v3 07/13] selftest/mm: register existing mapping with userfaultfd in hugepage-mremap Sayali Patil
2026-04-01 14:18 ` David Hildenbrand (Arm)
2026-04-01 14:43 ` Sayali Patil
2026-04-02 7:31 ` David Hildenbrand (Arm)
2026-04-03 17:41 ` Sayali Patil
2026-03-27 7:16 ` [PATCH v3 08/13] selftests/mm: ensure destination is hugetlb-backed " Sayali Patil
2026-04-01 14:21 ` David Hildenbrand (Arm)
2026-04-01 14:40 ` Lorenzo Stoakes (Oracle)
2026-04-01 20:39 ` Sayali Patil
2026-04-02 7:33 ` David Hildenbrand (Arm)
2026-04-02 9:05 ` Lorenzo Stoakes (Oracle)
2026-04-03 17:41 ` Sayali Patil
2026-04-07 10:22 ` Lorenzo Stoakes (Oracle) [this message]
2026-03-27 7:16 ` [PATCH v3 09/13] selftests/mm: skip uffd-wp-mremap if UFFD write-protect is unsupported Sayali Patil
2026-04-02 6:59 ` Sayali Patil
2026-03-27 7:16 ` [PATCH v3 10/13] selftests/mm: skip uffd-stress test when nr_pages_per_cpu is zero Sayali Patil
2026-04-01 14:23 ` David Hildenbrand (Arm)
2026-03-27 7:16 ` [PATCH v3 11/13] selftests/mm: fix double increment in linked list cleanup in compaction_test Sayali Patil
2026-04-01 14:32 ` Sayali Patil
2026-04-01 14:39 ` David Hildenbrand (Arm)
2026-04-01 17:33 ` Sayali Patil
2026-03-27 7:16 ` [PATCH v3 12/13] selftests/mm: move hwpoison setup into run_test() and silence modprobe output for memory-failure category Sayali Patil
2026-04-02 7:15 ` Sayali Patil
2026-03-27 7:16 ` [PATCH v3 13/13] selftests/cgroup: extend test_hugetlb_memcg.c to support all huge page sizes Sayali Patil
2026-04-03 17:16 ` Sayali Patil
2026-03-27 18:11 ` [PATCH v3 00/13] selftests/mm: fix failures and robustness improvements Andrew Morton
2026-03-30 5:57 ` Sayali Patil
2026-03-30 22:11 ` Andrew Morton
2026-04-01 14:05 ` David Hildenbrand (Arm)
2026-04-01 15:03 ` Sayali Patil
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=adTa3YItApOvQAlN@lucifer \
--to=ljs@kernel.org \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=david@kernel.org \
--cc=dev.jain@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=mhocko@kernel.org \
--cc=osalvador@suse.de \
--cc=ritesh.list@gmail.com \
--cc=sayalip@linux.ibm.com \
--cc=shuah@kernel.org \
--cc=venkat88@linux.ibm.com \
--cc=ziy@nvidia.com \
/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.