On Fri, Jun 4, 2021 at 8:39 PM Liam Howlett <liam.howlett@xxxxxxxxxx> wrote: > > > Particularly the following paragraph: > > ... > > Vlastimil Babka points out another race which this patch protects against. > > try_to_unmap_one() might reach its mlock_vma_page() TestSetPageMlocked a > > moment after munlock_vma_pages_all() did its Phase 1 TestClearPageMlocked: > > leaving PageMlocked and unevictable when it should be evictable. mmap_sem > > is ineffective because exit_mmap() does not hold it; page lock ineffective > > because __munlock_pagevec() only takes it afterwards, in Phase 2; pte lock > > is effective because __munlock_pagevec_fill() takes it to get the page, > > after VM_LOCKED was cleared from vm_flags, so visible to try_to_unmap_one. > > ... > > So this is saying the race with exit_mmap() isn't benign after all? > Yes, not benign at all.