That 4kB madvise(MADV_DONTNEED) gets rounded up to the system page size of 64kB and we end up covering still in use memory.
The following patch fixes it for me, but it just ignores any sub pages. We should keep them around so later calls have a chance at consolidating regions up to a system page size.
I think I see it:
19112 madvise( 0xc211030000, 4096, MADV_DONTNEED) = 0
That 4kB madvise( MADV_DONTNEED) gets rounded up to the system page size of 64kB and we end up covering still in use memory.
The following patch fixes it for me, but it just ignores any sub pages. We should keep them around so later calls have a chance at consolidating regions up to a system page size.