Re: [PATCH 10/13] mm/munlock: mlock_page() munlock_page() batch by pagevec

From: Hugh Dickins
Date: Wed Feb 09 2022 - 10:45:26 EST


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@xxxxxxxxxxxxxx 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@xxxxxxxxxx/

but there I'm wondering if it's complete: I'll settle it later today.

Hugh