RE: [PATCH v2 3/3] mm: handling Non-LRU pages returned by follow_page

From: Wang, Haiyue
Date: Sun Aug 14 2022 - 21:03:21 EST


> -----Original Message-----
> From: David Hildenbrand <david@xxxxxxxxxx>
> Sent: Monday, August 15, 2022 00:34
> To: Wang, Haiyue <haiyue.wang@xxxxxxxxx>; linux-mm@xxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Cc: akpm@xxxxxxxxxxxxxxxxxxxx; linmiaohe@xxxxxxxxxx; Huang, Ying <ying.huang@xxxxxxxxx>;
> songmuchun@xxxxxxxxxxxxx; naoya.horiguchi@xxxxxxxxx; alex.sierra@xxxxxxx
> Subject: Re: [PATCH v2 3/3] mm: handling Non-LRU pages returned by follow_page
>
> On 14.08.22 16:05, Haiyue Wang wrote:
> > Add the missed put_page handling for handling Non-LRU pages returned by
> > follow_page with FOLL_GET flag set.
> >
> > This is the second patch for fixing the commit
> > 3218f8712d6b ("mm: handling Non-LRU pages returned by vm_normal_pages")
> >
> > Signed-off-by: Haiyue Wang <haiyue.wang@xxxxxxxxx>
> > ---
> > mm/huge_memory.c | 2 +-
> > mm/ksm.c | 10 ++++++++++
> > mm/migrate.c | 6 +++++-
> > 3 files changed, 16 insertions(+), 2 deletions(-)
> >
> > diff --git a/mm/ksm.c b/mm/ksm.c
> > index fe3e0a39f73a..1360bb52ada6 100644
> > --- a/mm/ksm.c
> > +++ b/mm/ksm.c
> > @@ -477,6 +477,10 @@ static int break_ksm(struct vm_area_struct *vma, unsigned long addr)
> > FOLL_GET | FOLL_MIGRATION | FOLL_REMOTE);
> > if (IS_ERR_OR_NULL(page))
> > break;
> > + if (is_zone_device_page(page)) {
> > + put_page(page);
> > + break;
> > + }
>
> I think we can drop this check completely. While working on patches that
> touch this code I realized that this check is completely useless. device
> pages are never PageKsm pages and there is no need to special-case here.
>
> If a zone device page could be PageKsm, then we wouldn't handle it here
> correctly and not break ksm.
>
> So just drop it.
>

Fixed in v3.

>
>
> --
> Thanks,
>
> David / dhildenb