Re: [PATCH] selftests/mm: Confirm VA exhaustion without reliance on correctness of mmap()
From: Dev Jain
Date: Fri Mar 22 2024 - 01:13:07 EST
On 3/22/24 03:21, Andrew Morton wrote:
On Thu, 21 Mar 2024 16:05:22 +0530 Dev Jain <dev.jain@xxxxxxx> wrote:
Currently, VA exhaustion is being checked by passing a hint to mmap() and
expecting it to fail. This patch makes a stricter test by successful write()
calls from /proc/self/maps to a dump file, confirming that a free chunk is
indeed not available.
What's wrong with the current approach?
While populating the lower VA space, mmap() fails because we have
exhausted the space.
Then, in validate_lower_address_hint(), because mmap() fails, we confirm
that we have
indeed exhausted the space. There is a circular logic involved here.
Assume that there is a bug in mmap(), also assume that it exists
independent of whether
you pass a hint address or not; that for some reason it is not able to
find a 1GB chunk.
My idea is to assert the exhaustion against some other method.
Also, in the following line in validate_complete_va_space():
if (start_addr - prev_end_addr >= SZ_1GB)
I made a small error, I forgot to use MAP_CHUNK_SIZE instead of SZ_1GB.