Re: [PATCH 5.10 001/106] mm/mlock: remove lru_lock on TestClearPageMlocked

From: Greg Kroah-Hartman
Date: Tue Dec 13 2022 - 09:28:30 EST


On Mon, Dec 12, 2022 at 12:35:57PM -0800, Hugh Dickins wrote:
> On Mon, 12 Dec 2022, Greg Kroah-Hartman wrote:
>
> > From: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx>
> >
> > [ Upstream commit 3db19aa39bac33f2e850fa1ddd67be29b192e51f ]
> >
> > In the func munlock_vma_page, comments mentained lru_lock needed for
> > serialization with split_huge_pages. But the page must be PageLocked as
> > well as pages in split_huge_page series funcs. Thus the PageLocked is
> > enough to serialize both funcs.
> >
> > Further more, Hugh Dickins pointed: before splitting in
> > split_huge_page_to_list, the page was unmap_page() to remove pmd/ptes
> > which protect the page from munlock. Thus, no needs to guard
> > __split_huge_page_tail for mlock clean, just keep the lru_lock there for
> > isolation purpose.
> >
> > LKP found a preempt issue on __mod_zone_page_state which need change to
> > mod_zone_page_state. Thanks!
> >
> > Link: https://lkml.kernel.org/r/1604566549-62481-13-git-send-email-alex.shi@xxxxxxxxxxxxxxxxx
> > Signed-off-by: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx>
> > Acked-by: Hugh Dickins <hughd@xxxxxxxxxx>
> > Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>
> > Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
> > Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
> > Cc: Alexander Duyck <alexander.duyck@xxxxxxxxx>
> > Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx>
> > Cc: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx>
> > Cc: "Chen, Rong A" <rong.a.chen@xxxxxxxxx>
> > Cc: Daniel Jordan <daniel.m.jordan@xxxxxxxxxx>
> > Cc: "Huang, Ying" <ying.huang@xxxxxxxxx>
> > Cc: Jann Horn <jannh@xxxxxxxxxx>
> > Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
> > Cc: Kirill A. Shutemov <kirill@xxxxxxxxxxxxx>
> > Cc: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
> > Cc: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx>
> > Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
> > Cc: Michal Hocko <mhocko@xxxxxxxxxx>
> > Cc: Michal Hocko <mhocko@xxxxxxxx>
> > Cc: Mika Penttilä <mika.penttila@xxxxxxxxxxxx>
> > Cc: Minchan Kim <minchan@xxxxxxxxxx>
> > Cc: Shakeel Butt <shakeelb@xxxxxxxxxx>
> > Cc: Tejun Heo <tj@xxxxxxxxxx>
> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > Cc: Vladimir Davydov <vdavydov.dev@xxxxxxxxx>
> > Cc: Wei Yang <richard.weiyang@xxxxxxxxx>
> > Cc: Yang Shi <yang.shi@xxxxxxxxxxxxxxxxx>
> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> > Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> > Stable-dep-of: 829ae0f81ce0 ("mm: migrate: fix THP's mapcount on isolation")
> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
>
> NAK from me to patches 001 through 007 here: 001 through 006 are a
> risky subset of patches and followups to a per-memcg per-node lru_lock
> series from Alex Shi, which made subtle changes to locking, memcg
> charging, lru management, page migration etc.
>
> The whole series could be backported to 5.10 (I did so myself for
> internal usage), but cherry-picking parts of it into 5.10-stable is
> misguided and contrary to stable principles.
>
> Maybe there is in fact nothing wrong with the selection made:
> but then give linux-mm guys two or three weeks to review and
> test and give the thumbs up to that selection.
>
> Much easier, quicker and safer would be to adjust 007 (I presume
> the reason behind 001 through 006) to fit the 5.10-stable tree:
> I can do that myself if you ask, but not until later this week.

All now dropped, thanks.

greg k-h