On Wed, 9 Feb 2022, Geert Uytterhoeven wrote: > > Thanks for your patch, which is now commit cbaf47432c909044 > ("mm/munlock: mlock_page() munlock_page() batch by pagevec") in > next-20220209. > > > --- a/mm/internal.h > > +++ b/mm/internal.h > > @@ -402,7 +402,8 @@ extern int mlock_future_check(struct mm_struct *mm, unsigned long flags, > > * > > * mlock is usually called at the end of page_add_*_rmap(), > > * munlock at the end of page_remove_rmap(); but new anon > > - * pages are managed in lru_cache_add_inactive_or_unevictable(). > > + * pages are managed by lru_cache_add_inactive_or_unevictable() > > + * calling mlock_new_page(). > > * > > * @compound is used to include pmd mappings of THPs, but filter out > > * pte mappings of THPs, which cannot be consistently counted: a pte > > @@ -425,6 +426,9 @@ static inline void munlock_vma_page(struct page *page, > > (compound || !PageTransCompound(page))) > > munlock_page(page); > > } > > +void mlock_new_page(struct page *page); > > +bool need_mlock_page_drain(int cpu); > > +void mlock_page_drain(int cpu); > > This is inside an #ifdef CONFIG_MMU section. > > > --- a/mm/swap.c > > +++ b/mm/swap.c > > > @@ -640,6 +634,7 @@ void lru_add_drain_cpu(int cpu) > > pagevec_lru_move_fn(pvec, lru_lazyfree_fn); > > > > activate_page_drain(cpu); > > + mlock_page_drain(cpu); > > noreply@ellerman.id.au reported for m5272c3_defconfig: > > mm/swap.c:637:2: error: implicit declaration of function > ‘mlock_page_drain’ [-Werror=implicit-function-declaration] > > http://kisskb.ellerman.id.au/kisskb/buildresult/14694567/ Hi Geert, thanks for your report: SeongJae has posted a fix https://lore.kernel.org/lkml/20220209094158.21941-2-sj@kernel.org/ but there I'm wondering if it's complete: I'll settle it later today. Hugh