Re: [Patch v2] mm: thp: grab the lock before manipulation defer list

Michal Hocko
2020-01-14T09:31:22Z

On Sat 11-01-20 03:03:52, Kirill A. Shutemov wrote:
> On Thu, Jan 09, 2020 at 10:30:54PM +0800, Wei Yang wrote:
> > As all the other places, we grab the lock before manipulate the defer list.
> > Current implementation may face a race condition.
> >
> > For example, the potential race would be:
> >
> > CPU1 CPU2
> > mem_cgroup_move_account split_huge_page_to_list
> > !list_empty
> > lock
> > !list_empty
> > list_del
> > unlock
> > lock
> > # !list_empty might not hold anymore
> > list_del_init
> > unlock
>
> I don't think this particular race is possible. Both parties take page
> lock before messing with deferred queue, but anytway:
>
> Acked-by: Kirill A. Shutemov <kirill.shutemov-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

I am confused, if the above race is not possible then what would be a
real race? We really do not want to have a patch with a misleading
changelog, do we?
--
Michal Hocko
SUSE Labs