All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sayali Patil <sayalip@linux.ibm.com>
To: Zi Yan <ziy@nvidia.com>
Cc: 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>,
	David Hildenbrand <david@kernel.org>,
	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,
	Miaohe Lin <linmiaohe@huawei.com>,
	Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Subject: Re: [PATCH v4 08/15] selftest/mm: align memory size to huge page size in hugepage-mremap test
Date: Wed, 8 Apr 2026 20:00:23 +0530	[thread overview]
Message-ID: <162ca3d6-c5b6-4c36-8e20-313fcc4e3eb4@linux.ibm.com> (raw)
In-Reply-To: <15910BAF-8D1D-4EAA-85A6-2E4CD3700513@nvidia.com>



On 07/04/26 20:27, Zi Yan wrote:
> On 6 Apr 2026, at 5:19, Sayali Patil wrote:
> 
>> The hugepage-mremap selftest uses a default mapping size of 10MB
>> when no argument is provided. This size is not guaranteed to be
>> aligned to the system hugepage size, which can cause munmap() to fail
>> and mremap() to succeed where a failure is expected.
>>
>> Align the mapping length to the runtime hugepage size using
>> default_huge_page_size() to ensure the mapping is properly
>> aligned. Also handle the case where
>> default_huge_page_size() returns 0 by skipping the test.
>>
>> Before patch:
>>    running ./hugepage-mremap
>>    ------------------------------
>>    TAP version 13
>>    1..1
>>    Map haddr: Returned address is 0x7eaa40000000
>>    Map daddr: Returned address is 0x7daa40000000
>>    Map vaddr: Returned address is 0x7faa40000000
>>    Address returned by mmap() = 0x7fffaa600000
>>    Mremap: Returned address is 0x7faa40000000
>>    First hex is 0
>>    First hex is 3020100
>>    Bail out! mremap: Expected failure, but call succeeded
>>    Planned tests != run tests (1 != 0)
>>    Totals: pass:0 fail:0 xfail:0 xpass:0 skip:0 error:0
>>    [FAIL]
>> not ok 1 hugepage-mremap # exit=1
>>
>> After patch:
>>    running ./hugepage-mremap
>>    -------------------------
>>    TAP version 13
>>    1..1
>>    Map haddr: Returned address is 0x7eaa40000000
>>    Map daddr: Returned address is 0x7daa40000000
>>    Map vaddr: Returned address is 0x7faa40000000
>>    Address returned by mmap() = 0x7fff13000000
>>    Mremap: Returned address is 0x7faa40000000
>>    First hex is 0
>>    First hex is 3020100
>>    ok 1 Read same data
>>    Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0
>>    [PASS]
>> ok 1 hugepage-mremap
>>
>> Fixes: f77a286de48c ("mm, hugepages: make memory size variable in hugepage-mremap selftest")
>> Signed-off-by: Sayali Patil <sayalip@linux.ibm.com>
>> ---
>>   tools/testing/selftests/mm/hugepage-mremap.c | 10 ++++++++++
>>   1 file changed, 10 insertions(+)
>>
>> diff --git a/tools/testing/selftests/mm/hugepage-mremap.c b/tools/testing/selftests/mm/hugepage-mremap.c
>> index b8f7d92e5a35..f66e4d806477 100644
>> --- a/tools/testing/selftests/mm/hugepage-mremap.c
>> +++ b/tools/testing/selftests/mm/hugepage-mremap.c
>> @@ -32,6 +32,7 @@
>>
>>   #define PROTECTION (PROT_READ | PROT_WRITE | PROT_EXEC)
>>   #define FLAGS (MAP_SHARED | MAP_ANONYMOUS)
>> +#define ALIGN(x, a) (((x) + ((a) - 1)) & ~((a) - 1))
>>
>>   static void check_bytes(char *addr)
>>   {
>> @@ -110,6 +111,7 @@ int main(int argc, char *argv[])
>>   {
>>   	size_t length = 0;
>>   	int ret = 0, fd;
>> +	size_t hpage_size;
>>
>>   	ksft_print_header();
>>   	ksft_set_plan(1);
>> @@ -126,6 +128,14 @@ int main(int argc, char *argv[])
>>   		length = DEFAULT_LENGTH_MB;
>>
>>   	length = MB_TO_BYTES(length);
>> +
>> +	hpage_size = default_huge_page_size();
>> +	if (!hpage_size)
>> +		ksft_exit_skip("Unable to determine huge page size\n");
>> +
>> +	/* Ensure length is hugepage aligned */
>> +	length = ALIGN(length, hpage_size);
>> +
>>   	fd = memfd_create(argv[0], MFD_HUGETLB);
>>   	if (fd < 0)
>>   		ksft_exit_fail_msg("Open failed: %s\n", strerror(errno));
>> -- 
>> 2.52.0
> 
> LGTM. BTW, it seems that multiple files, pkey-helpers.h, migration.c,
> uffed-unit-test.c, hmm-tests.c, have their own ALIGN or ALIGN_UP.
> They can be moved to vm_utils.h, later if someone wants to do a cleanup.
> 
> Reviewed-by: Zi Yan <ziy@nvidia.com>
> 
> Best Regards,
> Yan, Zi
> 
Yes, I noticed that as well. I am planning to clean that up separately 
later.

Thanks,
Sayali

  reply	other threads:[~2026-04-08 14:31 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-06  9:19 [PATCH v4 00/15] selftests/mm: fix failures and robustness improvements Sayali Patil
2026-04-06  9:19 ` [PATCH v4 01/15] selftests/mm: restore default nr_hugepages value via EXIT trap in charge_reserved_hugetlb.sh Sayali Patil
2026-04-07 14:38   ` Zi Yan
2026-04-06  9:19 ` [PATCH v4 02/15] selftests/mm: fix hugetlb pathname construction " Sayali Patil
2026-04-06  9:19 ` [PATCH v4 03/15] selftests/mm: restore default nr_hugepages value via EXIT trap in hugetlb_reparenting_test.sh Sayali Patil
2026-04-07 14:39   ` Zi Yan
2026-04-06  9:19 ` [PATCH v4 04/15] selftests/mm: fix hugetlb pathname construction " Sayali Patil
2026-04-06  9:19 ` [PATCH v4 05/15] selftests/mm: fix cgroup task placement and drop memory.current checks " Sayali Patil
2026-04-06  9:19 ` [PATCH v4 06/15] selftests/mm: size tmpfs according to PMD page size in split_huge_page_test Sayali Patil
2026-04-06  9:19 ` [PATCH v4 07/15] selftests/mm: free dynamically allocated PMD-sized buffers " Sayali Patil
2026-04-07 14:44   ` Zi Yan
2026-04-06  9:19 ` [PATCH v4 08/15] selftest/mm: align memory size to huge page size in hugepage-mremap test Sayali Patil
2026-04-07 14:57   ` Zi Yan
2026-04-08 14:30     ` Sayali Patil [this message]
2026-04-06  9:19 ` [PATCH v4 09/15] selftest/mm: register existing mapping with userfaultfd in hugepage-mremap Sayali Patil
2026-04-06  9:19 ` [PATCH v4 10/15] selftests/mm: ensure destination is hugetlb-backed " Sayali Patil
2026-04-06  9:19 ` [PATCH v4 11/15] selftests/mm: skip uffd-wp-mremap if UFFD write-protect is unsupported Sayali Patil
2026-04-06  9:19 ` [PATCH v4 12/15] selftests/mm: skip uffd-stress test when nr_pages_per_cpu is zero Sayali Patil
2026-04-06  9:19 ` [PATCH v4 13/15] selftests/mm: move hwpoison setup into run_test() and silence modprobe output for memory-failure category Sayali Patil
2026-04-07 14:51   ` Zi Yan
2026-04-08  8:36     ` Sayali Patil
2026-04-08 15:40       ` Zi Yan
2026-04-09 16:48         ` Sayali Patil
2026-04-06  9:19 ` [PATCH v4 14/15] selftests/mm: clarify alternate unmapping in compaction_test Sayali Patil
2026-04-06  9:19 ` [PATCH v4 15/15] selftests/cgroup: extend test_hugetlb_memcg.c to support all huge page sizes Sayali Patil
2026-04-07 12:07   ` Sayali Patil
2026-04-07 13:08 ` [PATCH v4 00/15] selftests/mm: fix failures and robustness improvements Venkat

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=162ca3d6-c5b6-4c36-8e20-313fcc4e3eb4@linux.ibm.com \
    --to=sayalip@linux.ibm.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=david@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=linmiaohe@huawei.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=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.