On Fri, Jan 03, 2020 at 04:44:59PM -0800, David Rientjes wrote: >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+ Ah, my poor English ;-) > >Acked-by: David Rientjes <rientjes@xxxxxxxxxx> -- Wei Yang Help you, Help me