On 3/22/24 03:21, Andrew Morton wrote:
On Thu, 21 Mar 2024 16:05:22 +0530 Dev Jain dev.jain@arm.com 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.