Re: [PATCH 00/11] mm/mremap: introduce more mergeable mremap via MREMAP_RELOCATE_ANON

Lorenzo Stoakes
2025-06-20T19:29:41Z

On Fri, Jun 20, 2025 at 07:59:17PM +0100, Pedro Falcato wrote:
> On Tue, Jun 17, 2025 at 11:57:11AM +0100, Lorenzo Stoakes wrote:
> > On Tue, Jun 17, 2025 at 10:45:53AM +0200, David Hildenbrand wrote:
> > > mremap() is already an expensive operation ... so I think we need a pretty
> > > convincing case to make this configurable by the user at all for each
> > > individual mremap() invocation.
> >
> > My measurements suggest, unless you hit a very unfortunate case of -huge
> > faulted in range all mapped PTE- that the work involved is not all that
> > much more substantial in terms of order of magnitude than a normal mremap()
> > operation.
> >
>
> Could you share your measurements and/or post them on the cover letter for the
> next version?

Yeah am going to experiment nad gather some data for the next respin and see
what might be possible.

I will present this kind of data then.

>
> If indeed it makes no practical difference, maybe we could try to enable it by
> default and see what happens...

Well it makes a difference, but the question is how much it matters (we have to
traverse every single PTE for faulted-in memory vs. if we move page tables we
can potentially move at PMD granularity saving 512 traversals, but if the folios
are large then we're not really slower...).

I have some ideas... :)

>
> Or: separate but maybe awful idea, but if the problem is the number of VMAs
> maybe we could try harder based on the map count? i.e if
> map_count > (max_map_count / 2), try to relocate anon.

Interesting, though that'd make some things randomly merge and other stuff not,
and you really have to consistently do this stuff to make things mergeable.

Potentially deciding whether to do it based on heuristics isn't out of the realm
of possiblity though.

Generally speaking I'm going to experiment and come back with something...

>
> --
> Pedro