Re: [RFC PATCH] mm: thp: grab the lock before manipulation defer list

From: David Rientjes
Date: Fri Jan 03 2020 - 19:45:03 EST


On Sat, 4 Jan 2020, Wei Yang wrote:

> On Fri, Jan 03, 2020 at 11:29:06AM -0800, David Rientjes wrote:
> >On Fri, 3 Jan 2020, Wei Yang wrote:
> >
> >> As all the other places, we grab the lock before manipulate the defer list.
> >> Current implementation may face a race condition.
> >>
> >> Fixes: 87eaceb3faa5 ("mm: thp: make deferred split shrinker memcg aware")
> >>
> >> Signed-off-by: Wei Yang <richardw.yang@xxxxxxxxxxxxxxx>
> >>
> >> ---
> >> I notice the difference during code reading and just confused about the
> >> difference. No specific test is done since limited knowledge about cgroup.
> >>
> >> Maybe I miss something important?
> >
> >The check for !list_empty(page_deferred_list(page)) must certainly be
> >serialized with doing list_del_init(page_deferred_list(page)).
> >
>
> Hi David
>
> Would you mind giving more information? You mean list_empty and list_del_init
> is atomic?
>

I mean your patch is obviously correct :) It should likely also have a
stable@xxxxxxxxxxxxxxx # 5.4+

Acked-by: David Rientjes <rientjes@xxxxxxxxxx>