> -----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