Hi Michal, > -----Original Message----- > From: Michal Hocko [mailto:mhocko@xxxxxxxxxx] > Sent: Monday, November 13, 2017 7:03 PM > To: Ran Wang <ran.wang_1@xxxxxxx> > Cc: linux-mm@xxxxxxxxx; Michael Ellerman <mpe@xxxxxxxxxxxxxx>; Vlastimil > Babka <vbabka@xxxxxxx>; Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>; > KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>; Reza Arbab > <arbab@xxxxxxxxxxxxxxxxxx>; Yasuaki Ishimatsu <yasu.isimatu@xxxxxxxxx>; > qiuxishi@xxxxxxxxxx; Igor Mammedov <imammedo@xxxxxxxxxx>; Vitaly > Kuznetsov <vkuznets@xxxxxxxxxx>; LKML <linux-kernel@xxxxxxxxxxxxxxx>; > Leo Li <leoyang.li@xxxxxxx>; Xiaobo Xie <xiaobo.xie@xxxxxxx> > Subject: Re: [PATCH 1/2] mm: drop migrate type checks from > has_unmovable_pages > > On Mon 13-11-17 07:33:13, Ran Wang wrote: > > Hello Michal, > > > > <snip> > > > > > Date: Fri, 13 Oct 2017 14:00:12 +0200 > > > > > > From: Michal Hocko <mhocko@xxxxxxxx> > > > > > > Michael has noticed that the memory offline tries to migrate kernel > > > code pages when doing echo 0 > > > > /sys/devices/system/memory/memory0/online > > > > > > The current implementation will fail the operation after several > > > failed page migration attempts but we shouldn't even attempt to > > > migrate that memory and fail right away because this memory is > > > clearly not migrateable. This will become a real problem when we drop > the retry loop counter resp. timeout. > > > > > > The real problem is in has_unmovable_pages in fact. We should fail > > > if there are any non migrateable pages in the area. In orther to > > > guarantee that remove the migrate type checks because > > > MIGRATE_MOVABLE is not guaranteed to contain only migrateable pages. > It is merely a heuristic. > > > Similarly MIGRATE_CMA does guarantee that the page allocator doesn't > > > allocate any non-migrateable pages from the block but CMA > > > allocations themselves are unlikely to migrateable. Therefore remove > both checks. > > > > > > Reported-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > > > Signed-off-by: Michal Hocko <mhocko@xxxxxxxx> > > > Tested-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > > > Acked-by: Vlastimil Babka <vbabka@xxxxxxx> > > > --- > > > mm/page_alloc.c | 3 --- > > > 1 file changed, 3 deletions(-) > > > > > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c index > > > 3badcedf96a7..ad0294ab3e4f 100644 > > > --- a/mm/page_alloc.c > > > +++ b/mm/page_alloc.c > > > @@ -7355,9 +7355,6 @@ bool has_unmovable_pages(struct zone *zone, > > > struct page *page, int count, > > > */ > > > if (zone_idx(zone) == ZONE_MOVABLE) > > > return false; > > > - mt = get_pageblock_migratetype(page); > > > - if (mt == MIGRATE_MOVABLE || is_migrate_cma(mt)) > > > - return false; > > > > This drop cause DWC3 USB controller fail on initialization with > > Layerscaper processors (such as LS1043A) as below: > > > > [ 2.701437] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned > bus number 1 > > [ 2.710949] cma: cma_alloc: alloc failed, req-size: 1 pages, ret: -16 > > [ 2.717411] xhci-hcd xhci-hcd.0.auto: can't setup: -12 > > [ 2.727940] xhci-hcd xhci-hcd.0.auto: USB bus 1 deregistered > > [ 2.733607] xhci-hcd: probe of xhci-hcd.0.auto failed with error -12 > > [ 2.739978] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller > > > > And I notice that someone also reported to you that DWC2 got affected > > recently, so do you have the solution now? > > Yes. It should be in linux-next. Have a look at the following email > thread: > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flkml. > kernel.org%2Fr%2F20171104082500.qvzbb2kw4suo6cgy%40dhcp22.suse.cz& > data=02%7C01%7Cran.wang_1%40nxp.com%7C5e73c6a941fc4f1c10e708d52 > a860c5b%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636461677 > 583607877&sdata=zlRxJ4LZwOBsit5qRx9yFT5qfP54wZ0z6G1z%2Bcywf5g%3D > &reserved=0 Thanks for your info, although I fail to open the link you shared, but I got patch from my colleague and the issue got fix on my side, let you know, thanks. Best Regards, Ran > -- > Michal Hocko > SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href