We have added new functionality to mremap() in Linux 6.17, permitting the move of multiple VMAs when performing a move alone (that is - providing MREMAP_MAYMOVE | MREMAP_FIXED flags and specifying old_size == new_size). We document this new feature. Additionally, we document previously undocumented behaviour around shrinking of input VMA ranges which permits the input range to span multiple VMAs. v4: * Update description of newly discovered mremap() behaviour to highlight the fact that, if in-place, [old_address, old_address + new_length) may span multiple VMAs also. * Fix up commit message for 2/2 to correct typo on specified range. * Added code sample to 1/2 as per Alejandro. v3: * Use more precise language around mremap() move description as per Jann. * Fix some typos in commit messages. https://lore.kernel.org/all/cover.1753795807.git.lorenzo.stoakes@xxxxxxxxxx/ v2: * Split out the two man page changes as requested by Alejandro. https://lore.kernel.org/all/cover.1753711160.git.lorenzo.stoakes@xxxxxxxxxx/ v1: https://lore.kernel.org/all/20250723174634.75054-1-lorenzo.stoakes@xxxxxxxxxx/ Lorenzo Stoakes (2): man/man2/mremap.2: describe multiple mapping move man/man2/mremap.2: describe previously undocumented shrink behaviour man/man2/mremap.2 | 111 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 100 insertions(+), 11 deletions(-) -- 2.50.1