All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: Xishi Qiu <qiuxishi@huawei.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	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>,
	Igor Mammedov <imammedo@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2] mm: drop migrate type checks from has_unmovable_pages
Date: Fri, 20 Oct 2017 10:17:00 +0200	[thread overview]
Message-ID: <20171020081700.fec53qxieeqouhwi@dhcp22.suse.cz> (raw)
In-Reply-To: <59E9A426.5070009@huawei.com>

On Fri 20-10-17 15:22:14, Xishi Qiu wrote:
> On 2017/10/20 10:13, Joonsoo Kim wrote:
> 
> > On Thu, Oct 19, 2017 at 02:21:18PM +0200, Michal Hocko wrote:
[...]
> >> >From 8cbd811d741f5dd93d1b21bb3ef94482a4d0bd32 Mon Sep 17 00:00:00 2001
> >> From: Michal Hocko <mhocko@suse.com>
> >> Date: Thu, 19 Oct 2017 14:14:02 +0200
> >> Subject: [PATCH] mm: distinguish CMA and MOVABLE isolation in
> >>  has_unmovable_pages
> >>
> >> Joonsoo has noticed that "mm: drop migrate type checks from
> >> has_unmovable_pages" would break CMA allocator because it relies on
> >> has_unmovable_pages returning false even for CMA pageblocks which in
> >> fact don't have to be movable:
> >> alloc_contig_range
> >>   start_isolate_page_range
> >>     set_migratetype_isolate
> >>       has_unmovable_pages
> >>
> >> This is a result of the code sharing between CMA and memory hotplug
> >> while each one has a different idea of what has_unmovable_pages should
> >> return. This is unfortunate but fixing it properly would require a lot
> >> of code duplication.
> >>
> >> Fix the issue by introducing the requested migrate type argument
> >> and special case MIGRATE_CMA case where CMA page blocks are handled
> >> properly. This will work for memory hotplug because it requires
> >> MIGRATE_MOVABLE.
> > 
> > Unfortunately, alloc_contig_range() can be called with
> > MIGRATE_MOVABLE so this patch cannot perfectly fix the problem.
> > 
> > I did a more thinking and found that it's strange to check if there is
> > unmovable page in the pageblock during the set_migratetype_isolate().
> > set_migratetype_isolate() should be just for setting the migratetype
> > of the pageblock. Checking other things should be done by another
> > place, for example, before calling the start_isolate_page_range() in
> > __offline_pages().
> > 
> > Thanks.
> > 
> 
> Hi Joonsoo,
> 
> How about add a flag to skip or not has_unmovable_pages() in set_migratetype_isolate()?
> Something like the skip_hwpoisoned_pages.

I believe this is what Joonsoo was proposing actually. I cannot say I
would like skip_hwpoisoned_pages and adding one more flag is just too
ugly. So I would prefer to have something that would actually make sense
from the semantic POV. If CMA really needs to work with partial CMA
blocks then MIGRATE_CMA as an indicator sounds like the right way to go
to me. But I am not a CMA expert so I might be missing some subtlety
here.
-- 
Michal Hocko
SUSE Labs

WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@kernel.org>
To: Xishi Qiu <qiuxishi@huawei.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	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>,
	Igor Mammedov <imammedo@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2] mm: drop migrate type checks from has_unmovable_pages
Date: Fri, 20 Oct 2017 10:17:00 +0200	[thread overview]
Message-ID: <20171020081700.fec53qxieeqouhwi@dhcp22.suse.cz> (raw)
In-Reply-To: <59E9A426.5070009@huawei.com>

On Fri 20-10-17 15:22:14, Xishi Qiu wrote:
> On 2017/10/20 10:13, Joonsoo Kim wrote:
> 
> > On Thu, Oct 19, 2017 at 02:21:18PM +0200, Michal Hocko wrote:
[...]
> >> >From 8cbd811d741f5dd93d1b21bb3ef94482a4d0bd32 Mon Sep 17 00:00:00 2001
> >> From: Michal Hocko <mhocko@suse.com>
> >> Date: Thu, 19 Oct 2017 14:14:02 +0200
> >> Subject: [PATCH] mm: distinguish CMA and MOVABLE isolation in
> >>  has_unmovable_pages
> >>
> >> Joonsoo has noticed that "mm: drop migrate type checks from
> >> has_unmovable_pages" would break CMA allocator because it relies on
> >> has_unmovable_pages returning false even for CMA pageblocks which in
> >> fact don't have to be movable:
> >> alloc_contig_range
> >>   start_isolate_page_range
> >>     set_migratetype_isolate
> >>       has_unmovable_pages
> >>
> >> This is a result of the code sharing between CMA and memory hotplug
> >> while each one has a different idea of what has_unmovable_pages should
> >> return. This is unfortunate but fixing it properly would require a lot
> >> of code duplication.
> >>
> >> Fix the issue by introducing the requested migrate type argument
> >> and special case MIGRATE_CMA case where CMA page blocks are handled
> >> properly. This will work for memory hotplug because it requires
> >> MIGRATE_MOVABLE.
> > 
> > Unfortunately, alloc_contig_range() can be called with
> > MIGRATE_MOVABLE so this patch cannot perfectly fix the problem.
> > 
> > I did a more thinking and found that it's strange to check if there is
> > unmovable page in the pageblock during the set_migratetype_isolate().
> > set_migratetype_isolate() should be just for setting the migratetype
> > of the pageblock. Checking other things should be done by another
> > place, for example, before calling the start_isolate_page_range() in
> > __offline_pages().
> > 
> > Thanks.
> > 
> 
> Hi Joonsoo,
> 
> How about add a flag to skip or not has_unmovable_pages() in set_migratetype_isolate()?
> Something like the skip_hwpoisoned_pages.

I believe this is what Joonsoo was proposing actually. I cannot say I
would like skip_hwpoisoned_pages and adding one more flag is just too
ugly. So I would prefer to have something that would actually make sense
from the semantic POV. If CMA really needs to work with partial CMA
blocks then MIGRATE_CMA as an indicator sounds like the right way to go
to me. But I am not a CMA expert so I might be missing some subtlety
here.
-- 
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-10-20  8:18 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-18  7:08 [PATCH v2 0/2] mm, memory_hotplug: redefine memory offline retry logic Michal Hocko
2017-09-18  7:08 ` Michal Hocko
2017-09-18  7:08 ` [PATCH 1/2] mm, memory_hotplug: do not fail offlining too early Michal Hocko
2017-09-18  7:08   ` Michal Hocko
2017-10-10 12:05   ` Michael Ellerman
2017-10-10 12:05     ` Michael Ellerman
2017-10-10 12:27     ` Michal Hocko
2017-10-10 12:27       ` Michal Hocko
2017-10-11  2:37       ` Michael Ellerman
2017-10-11  2:37         ` Michael Ellerman
2017-10-11  5:19         ` Michael Ellerman
2017-10-11  5:19           ` Michael Ellerman
2017-10-11 14:05           ` Anshuman Khandual
2017-10-11 14:05             ` Anshuman Khandual
2017-10-11 14:16             ` Michal Hocko
2017-10-11 14:16               ` Michal Hocko
2017-10-11  6:51         ` Michal Hocko
2017-10-11  6:51           ` Michal Hocko
2017-10-11  8:04           ` Vlastimil Babka
2017-10-11  8:04             ` Vlastimil Babka
2017-10-11  8:13             ` Michal Hocko
2017-10-11  8:13               ` Michal Hocko
2017-10-11 11:17               ` Vlastimil Babka
2017-10-11 11:17                 ` Vlastimil Babka
2017-10-11 11:24                 ` Michal Hocko
2017-10-11 11:24                   ` Michal Hocko
2017-10-13 11:42             ` Michael Ellerman
2017-10-13 11:42               ` Michael Ellerman
2017-10-13 11:58               ` Michal Hocko
2017-10-13 11:58                 ` 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-13 12:00                   ` [PATCH 2/2] mm, page_alloc: fail has_unmovable_pages when seeing reserved pages Michal Hocko
2017-10-13 12:00                     ` Michal Hocko
2017-10-13 12:04                     ` Vlastimil Babka
2017-10-13 12:04                       ` Vlastimil Babka
2017-10-13 12:07                       ` Michal Hocko
2017-10-13 12:07                         ` Michal Hocko
2017-10-17 13:03                         ` Vlastimil Babka
2017-10-17 13:03                           ` Vlastimil Babka
2017-10-17 11:41                   ` [PATCH 1/2] mm: drop migrate type checks from has_unmovable_pages 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 [this message]
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
2017-09-18  7:08 ` [PATCH 2/2] mm, memory_hotplug: remove timeout from __offline_memory Michal Hocko
2017-09-18  7:08   ` Michal Hocko
     [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
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

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=20171020081700.fec53qxieeqouhwi@dhcp22.suse.cz \
    --to=mhocko@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=arbab@linux.vnet.ibm.com \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=imammedo@redhat.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mpe@ellerman.id.au \
    --cc=qiuxishi@huawei.com \
    --cc=vbabka@suse.cz \
    --cc=vkuznets@redhat.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.