Re: [PATCH v2] mm: add lazyfree folio to lru tail

Barry Song
2024-08-21T21:47:47Z

On Wed, Aug 21, 2024 at 8:46 PM Michal Hocko <mhocko@suse.com> wrote:
>
> On Fri 16-08-24 07:48:01, gaoxu wrote:
> > Replace lruvec_add_folio with lruvec_add_folio_tail in the lru_lazyfree_fn:
> > 1. The lazy-free folio is added to the LRU_INACTIVE_FILE list. If it's
> > moved to the LRU tail, it allows for faster release lazy-free folio and
> > reduces the impact on file refault.
>
> This has been discussed when MADV_FREE was introduced. The question was
> whether this memory has a lower priority than other inactive memory that
> has been marked that way longer ago. Also consider several MADV_FREE
> users should they be LIFO from the reclaim POV?

The priority of this memory compared to other inactive memory that has been
marked for a longer time likely depends on the user's expectations - How soon
do users expect MADV_FREE to be reclaimed compared with old file folios.

art guys moved to MADV_FREE from MADV_DONTNEED without any
useful performance data and reason in the changelog:
https://android-review.googlesource.com/c/platform/art/+/2633132

Since art is the Android Java heap, it can be quite large. This increases the
likelihood of packing the file LRU and reduces the chances of reclaiming
anonymous memory, which could result in more file re-faults while helping
anonymous folio persist longer in memory.

I am really curious why art guys have moved to MADV_FREE if we have
an approach to reach them.

>
> --
> Michal Hocko
> SUSE Labs
>

Thanks
Barry