From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: Dev Jain <dev.jain@arm.com>
Cc: Aboorva Devarajan <aboorvad@linux.ibm.com>,
akpm@linux-foundation.org, Liam.Howlett@oracle.com,
shuah@kernel.org, pfalcato@suse.de, david@redhat.com,
ziy@nvidia.com, baolin.wang@linux.alibaba.com, npache@redhat.com,
ryan.roberts@arm.com, baohua@kernel.org, linux-mm@kvack.org,
linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org,
donettom@linux.ibm.com, ritesh.list@gmail.com
Subject: Re: [PATCH 1/6] mm/selftests: Fix virtual_address_range test issues.
Date: Wed, 18 Jun 2025 12:22:46 +0100 [thread overview]
Message-ID: <159f6939-e7c8-492c-8195-b7e8787a08f1@lucifer.local> (raw)
In-Reply-To: <0665a8d3-7094-4732-9518-01ac313959e1@arm.com>
On Mon, Jun 16, 2025 at 09:57:10PM +0530, Dev Jain wrote:
>
> On 16/06/25 9:36 pm, Aboorva Devarajan wrote:
> > From: Donet Tom <donettom@linux.ibm.com>
> > 3./proc/self/maps may not always have gaps smaller than MAP_CHUNK_SIZE.
> > The gap between the first high address mapping and the previous mapping
> > is not smaller than MAP_CHUNK_SIZE.
>
> For this, can't we just elide the check when we cross the high boundary?
> As I see it you are essentially nullifying the purpose of validate_complete_va_space;
> I had written that function so as to have an alternate way of checking VA exhaustion
> without relying on mmap correctness in a circular way.
>
> Btw @Lorenzo, validate_complete_va_space was written by me as my first patch ever for
> the Linux kernel : ) from the limited knowledge I have of VMA stuff, I guess the
:)
Mine was this utter triviality, but got me started :>)
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e1da1d573f67d11c2f80ffaf38d3cdd3fee97d4b
> only requirement for VMA alignment is PAGE_SIZE in this test, therefore, the only
> check required is that the gap between two VMAs should be at least MAP_CHUNK_SIZE?
> Or can such a gap still exist even when the VA has been exhausted?
VMAs are mapped at page granularity, the logic as to placement is determined by
the get unmapped area logic, for instance mm_get_unmapped_area_vmflags().
Unless a compatibility flag is set it'll be determined top-down.
I try to avoid thinking about 32-bit kernels at all so meh to all that :)
You get arch-specific stuff in arch_get_unmapped_area_topdown().
But the generic shared stuff is in vm_unmapped_area(), typically,
unmapped_area_topdown().
TL;DR, aside from arch stuff, the stack guard gap is the main additional
requirement, which puts (by default) 256 pages between an expanding stack and
the start of a new mapping. Which is 1 GB :) which maybe is why you chose this
value for MAP_CHUNK_SIZE?
For shadow stack we also have a 4 KB requirement. But only on x86-64 :)
Anyway I'm not sure there's huge value in sort of writing a test that too
closely mimics the code it is testing. Setting broad expections (which I presume
this test does) is better.
next prev parent reply other threads:[~2025-06-18 11:23 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-16 16:06 [PATCH 0/6] selftests/mm: Fix false positives and skip unsupported tests Aboorva Devarajan
2025-06-16 16:06 ` [PATCH 1/6] mm/selftests: Fix virtual_address_range test issues Aboorva Devarajan
2025-06-16 16:27 ` Dev Jain
2025-06-18 10:06 ` Donet Tom
2025-06-18 10:35 ` Dev Jain
2025-06-18 11:22 ` Lorenzo Stoakes [this message]
2025-06-18 11:28 ` Dev Jain
2025-06-18 11:37 ` Lorenzo Stoakes
2025-06-18 11:45 ` Dev Jain
2025-06-18 11:57 ` Lorenzo Stoakes
2025-06-18 11:59 ` Lorenzo Stoakes
2025-06-18 13:58 ` Dev Jain
2025-06-18 14:07 ` Lorenzo Stoakes
2025-06-18 14:17 ` Dev Jain
2025-06-18 14:35 ` Lorenzo Stoakes
2025-06-18 14:43 ` Dev Jain
2025-06-19 8:23 ` Donet Tom
2025-06-19 9:02 ` Dev Jain
2025-06-19 15:31 ` Donet Tom
2025-06-19 16:14 ` Dev Jain
2025-06-20 14:45 ` Dev Jain
2025-06-21 17:55 ` Donet Tom
2025-06-23 4:53 ` Dev Jain
2025-06-23 4:55 ` Dev Jain
2025-06-23 17:32 ` Donet Tom
2025-06-24 6:15 ` Dev Jain
2025-06-25 9:36 ` Donet Tom
2025-06-25 10:45 ` Dev Jain
2025-06-25 12:52 ` Dev Jain
2025-06-25 17:17 ` Donet Tom
2025-06-26 3:57 ` Dev Jain
2025-06-26 5:42 ` Donet Tom
2025-06-26 5:55 ` Dev Jain
2025-06-26 6:35 ` Dev Jain
2025-06-26 6:52 ` Donet Tom
2025-06-18 11:50 ` Lorenzo Stoakes
2025-06-16 16:06 ` [PATCH 2/6] selftest/mm: Fix ksm_funtional_test failures Aboorva Devarajan
2025-06-16 17:04 ` Liam R. Howlett
2025-06-17 15:10 ` donettom
2025-06-16 16:06 ` [PATCH 3/6] selftests/mm : fix test_prctl_fork_exec failure Aboorva Devarajan
2025-06-16 16:28 ` Dev Jain
2025-06-17 15:04 ` donettom
2025-06-16 16:06 ` [PATCH 4/6] mm/selftests: Fix split_huge_page_test failure on systems with 64KB page size Aboorva Devarajan
2025-06-16 16:06 ` [PATCH 5/6] selftests/mm: Fix child process exit codes in KSM tests Aboorva Devarajan
2025-06-16 16:06 ` [PATCH 6/6] selftests/mm: Mark thuge-gen as skipped if shmmax is too small or no 1G pages Aboorva Devarajan
2025-06-16 16:11 ` [PATCH 0/6] selftests/mm: Fix false positives and skip unsupported tests Lorenzo Stoakes
2025-06-17 7:53 ` Aboorva Devarajan
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=159f6939-e7c8-492c-8195-b7e8787a08f1@lucifer.local \
--to=lorenzo.stoakes@oracle.com \
--cc=Liam.Howlett@oracle.com \
--cc=aboorvad@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=david@redhat.com \
--cc=dev.jain@arm.com \
--cc=donettom@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=npache@redhat.com \
--cc=pfalcato@suse.de \
--cc=ritesh.list@gmail.com \
--cc=ryan.roberts@arm.com \
--cc=shuah@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox