All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: Ran Wang <ran.wang_1@nxp.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Vlastimil Babka <vbabka@suse.cz>,
	Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Reza Arbab <arbab@linux.vnet.ibm.com>,
	Yasuaki Ishimatsu <yasu.isimatu@gmail.com>,
	"qiuxishi@huawei.com" <qiuxishi@huawei.com>,
	Igor Mammedov <imammedo@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	LKML <linux-kernel@vger.kernel.org>, Leo Li <leoyang.li@nxp.com>,
	Xiaobo Xie <xiaobo.xie@nxp.com>
Subject: Re: [PATCH 1/2] mm: drop migrate type checks from has_unmovable_pages
Date: Mon, 13 Nov 2017 12:02:32 +0100	[thread overview]
Message-ID: <20171113110232.ivd6l52y7j2q2iaq@dhcp22.suse.cz> (raw)
In-Reply-To: <AM3PR04MB14895AE080F9F21E98045D99F12B0@AM3PR04MB1489.eurprd04.prod.outlook.com>

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@suse.com>
> > 
> > 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@ellerman.id.au>
> > Signed-off-by: Michal Hocko <mhocko@suse.com>
> > Tested-by: Michael Ellerman <mpe@ellerman.id.au>
> > Acked-by: Vlastimil Babka <vbabka@suse.cz>
> > ---
> >  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: 
http://lkml.kernel.org/r/20171104082500.qvzbb2kw4suo6cgy@dhcp22.suse.cz

-- 
Michal Hocko
SUSE Labs

WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@kernel.org>
To: Ran Wang <ran.wang_1@nxp.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Vlastimil Babka <vbabka@suse.cz>,
	Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Reza Arbab <arbab@linux.vnet.ibm.com>,
	Yasuaki Ishimatsu <yasu.isimatu@gmail.com>,
	"qiuxishi@huawei.com" <qiuxishi@huawei.com>,
	Igor Mammedov <imammedo@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	LKML <linux-kernel@vger.kernel.org>, Leo Li <leoyang.li@nxp.com>,
	Xiaobo Xie <xiaobo.xie@nxp.com>
Subject: Re: [PATCH 1/2] mm: drop migrate type checks from has_unmovable_pages
Date: Mon, 13 Nov 2017 12:02:32 +0100	[thread overview]
Message-ID: <20171113110232.ivd6l52y7j2q2iaq@dhcp22.suse.cz> (raw)
In-Reply-To: <AM3PR04MB14895AE080F9F21E98045D99F12B0@AM3PR04MB1489.eurprd04.prod.outlook.com>

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@suse.com>
> > 
> > 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@ellerman.id.au>
> > Signed-off-by: Michal Hocko <mhocko@suse.com>
> > Tested-by: Michael Ellerman <mpe@ellerman.id.au>
> > Acked-by: Vlastimil Babka <vbabka@suse.cz>
> > ---
> >  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: 
http://lkml.kernel.org/r/20171104082500.qvzbb2kw4suo6cgy@dhcp22.suse.cz

-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2017-11-13 11:02 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <AM3PR04MB14892A9D6D2FBCE21B8C1F0FF12B0@AM3PR04MB1489.eurprd04.prod.outlook.com>
2017-11-13  7:33 ` [PATCH 1/2] mm: drop migrate type checks from has_unmovable_pages Ran Wang
2017-11-13  7:33   ` Ran Wang
2017-11-13 11:02   ` Michal Hocko [this message]
2017-11-13 11:02     ` Michal Hocko
2017-11-14  6:10     ` Ran Wang
2017-11-14  6:10       ` Ran Wang
2017-11-14  7:06       ` Michal Hocko
2017-11-14  7:06         ` Michal Hocko
2017-11-14  7:45         ` Ran Wang
2017-11-14  7:45           ` Ran Wang
2017-10-13 11:58 [PATCH 1/2] mm, memory_hotplug: do not fail offlining too early Michal Hocko
2017-10-13 12:00 ` [PATCH 1/2] mm: drop migrate type checks from has_unmovable_pages Michal Hocko
2017-10-13 12:00   ` Michal Hocko
2017-10-17 11:41   ` Michael Ellerman
2017-10-17 11:41     ` Michael Ellerman
2017-10-17 12:03     ` Michal Hocko
2017-10-17 12:03       ` Michal Hocko
2017-10-17 13:02   ` Vlastimil Babka
2017-10-17 13:02     ` Vlastimil Babka
2017-10-19  2:51   ` Joonsoo Kim
2017-10-19  2:51     ` Joonsoo Kim
2017-10-19  7:15     ` Michal Hocko
2017-10-19  7:15       ` Michal Hocko
2017-10-19  7:33       ` Joonsoo Kim
2017-10-19  7:33         ` Joonsoo Kim
2017-10-19  8:20         ` Michal Hocko
2017-10-19  8:20           ` Michal Hocko
2017-10-19 12:21           ` Michal Hocko
2017-10-19 12:21             ` Michal Hocko
2017-10-20  2:13             ` Joonsoo Kim
2017-10-20  2:13               ` Joonsoo Kim
2017-10-20  5:59               ` Michal Hocko
2017-10-20  5:59                 ` Michal Hocko
2017-10-20  6:50                 ` Joonsoo Kim
2017-10-20  6:50                   ` Joonsoo Kim
2017-10-20  7:02                   ` Michal Hocko
2017-10-20  7:02                     ` Michal Hocko
2017-10-23  5:23                     ` Joonsoo Kim
2017-10-23  5:23                       ` Joonsoo Kim
2017-10-23  8:10                       ` Michal Hocko
2017-10-23  8:10                         ` Michal Hocko
2017-10-24  4:44                         ` Joonsoo Kim
2017-10-24  4:44                           ` Joonsoo Kim
2017-10-24  7:44                           ` Michal Hocko
2017-10-24  7:44                             ` Michal Hocko
2017-10-24  8:12                           ` Vlastimil Babka
2017-10-24  8:12                             ` Vlastimil Babka
2017-10-24 12:25                             ` Michal Hocko
2017-10-24 12:25                               ` Michal Hocko
2017-10-26  2:47                             ` Joonsoo Kim
2017-10-26  2:47                               ` Joonsoo Kim
2017-10-26  7:41                               ` Michal Hocko
2017-10-26  7:41                                 ` Michal Hocko
2017-10-20  7:22               ` Xishi Qiu
2017-10-20  7:22                 ` Xishi Qiu
2017-10-20  8:17                 ` Michal Hocko
2017-10-20  8:17                   ` Michal Hocko
2017-10-23  5:26                   ` Joonsoo Kim
2017-10-23  5:26                     ` Joonsoo Kim
2017-10-26 13:04             ` Vlastimil Babka
2017-10-26 13:04               ` Vlastimil Babka
2017-10-26 13:59             ` Michal Hocko
2017-10-26 13:59               ` Michal Hocko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171113110232.ivd6l52y7j2q2iaq@dhcp22.suse.cz \
    --to=mhocko@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=arbab@linux.vnet.ibm.com \
    --cc=imammedo@redhat.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=leoyang.li@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mpe@ellerman.id.au \
    --cc=qiuxishi@huawei.com \
    --cc=ran.wang_1@nxp.com \
    --cc=vbabka@suse.cz \
    --cc=vkuznets@redhat.com \
    --cc=xiaobo.xie@nxp.com \
    --cc=yasu.isimatu@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.