Re: [RFC PATCH v2 3/3] mm: mlock: update mlock_pte_range to handle large folio

From: Yu Zhao
Date: Sun Jul 16 2023 - 20:35:50 EST


On Sun, Jul 16, 2023 at 6:00 PM Yin, Fengwei <fengwei.yin@xxxxxxxxx> wrote:
>
> On 7/15/2023 2:06 PM, Yu Zhao wrote:
> > There is a problem here that I didn't have the time to elaborate: we
> > can't mlock() a folio that is within the range but not fully mapped
> > because this folio can be on the deferred split queue. When the split
> > happens, those unmapped folios (not mapped by this vma but are mapped
> > into other vmas) will be stranded on the unevictable lru.
>
> This should be fine unless I missed something. During large folio split,
> the unmap_folio() will be migrate(anon)/unmap(file) folio. Folio will be
> munlocked in unmap_folio(). So the head/tail pages will be evictable always.

It's close but not entirely accurate: munlock can fail on isolated folios.