On Tue, Jul 01, 2025 at 11:15:25AM +0530, Dev Jain wrote:
Sorry I am not following, don't know in detail about the VMA merge stuff.Rik's patch aligned each to 2 MiB boundary. So you'd get gaps:
Are you saying the after the patch, the VMAs will eventually get merged?
Is it possible in the kernel to get a merge in the "future"; as I understand
it only happens at mmap() time?
Suppose before the patch, you have two consecutive VMAs between (PMD, 2*PMD) size.
If they are able to get merged after the patch, why won't they be merged before the patch,
since the VMA characteristics are the same?
0 2MB 4MB 6MB 8MB 10MB
|-------------.------| |-------------.------| |-------------.------|
| . | | . | | . |
| . | | . | | . |
|-------------.------| |-------------.------| |-------------.------|
huge mapped 4k m'd
If you don't force alignment then subsequent mappings will be adjacent to one
another and those non-huge page parts can be merged.
Vlasta's fix up means we only try to get the THP up-front if the length is
already aligned at which point you won't end up with these gaps.