On Fri, Aug 15, 2025 at 11:36:26PM +0200, Alejandro Colomar wrote: > Hi Lorenzo, > > On Mon, Aug 11, 2025 at 03:59:39PM +0100, Lorenzo Stoakes wrote: > > There is pre-existing logic that appears to be undocumented for an mremap() > > shrink operation, where it turns out that the usual 'input range must span > > a single mapping' requirement no longer applies. > > > > In fact, it turns out that the input range specified by [old_address, > > old_address + old_size) may span any number of mappings. > > > > If shrinking in-place (that is, neither the MREMAP_FIXED nor > > MREMAP_DONTUNMAP flags are specified), then the new span may also span any > > number of VMAs - [old_address, old_address + new_size). > > > > If shrinking and moving, the range specified by [old_address, old_address + > > new_size) must span a single VMA. > > > > There must be at least one VMA contained within the [old_address, > > old_address + old_size) range, and old_address must be within the range of > > a VMA. > > > > Explicitly document this. > > > > Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx> > > --- > > man/man2/mremap.2 | 31 +++++++++++++++++++++++++++++-- > > 1 file changed, 29 insertions(+), 2 deletions(-) > > > > diff --git a/man/man2/mremap.2 b/man/man2/mremap.2 > > index 6d14bf627..53d4eda29 100644 > > --- a/man/man2/mremap.2 > > +++ b/man/man2/mremap.2 > > @@ -47,8 +47,35 @@ The > > .B MREMAP_DONTUNMAP > > flag may also be specified. > > .P > > -If the operation is not > > -simply moving mappings, > > +Equally, if the operation performs a shrink, > > +that is if > > Missing comma. Could you fix that up? Thnks! > > > +.I old_size > > +is greater than > > +.IR new_size , > > +then > > +.I old_size > > +may also span multiple mappings > > +which do not have to be > > +adjacent to one another. > > I'm wondering if there's a missing comma or not before 'which'. > The meaning of the sentence would be different. > > So, I should ask: > > Does old_size > new_size mean that old_size may span multiple mappings > and you're commenting that multiple mappings need not be adjacent? Yes. > > Or are multiple mappings always allowed and old_size > new_size allows > non-adjacent ones? No. > > I suspect it's the former, right? Then, it's missing a comma, right? Yes could you fix that up? > > > Other than this, the patch looks good. Thanks! > > > Have a lovely night! > Alex > > > +If this shrink is performed > > +in-place, > > +that is, > > +neither > > +.BR MREMAP_FIXED , > > +nor > > +.B MREMAP_DONTUNMAP > > +are specified, > > +.I new_size > > +may also span multiple VMAs. > > +However, if the range is moved, > > +then > > +.I new_size > > +must span only a single mapping. > > +.P > > +If the operation is neither a > > +.B MREMAP_FIXED > > +move > > +nor a shrink, > > then > > .I old_size > > must span only a single mapping. > > -- > > 2.50.1 > > > > -- > <https://www.alejandro-colomar.es/>