All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@kernel.org>
To: Wei Yang <richard.weiyang@gmail.com>
Cc: Linux-MM <linux-mm@kvack.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>, Vlastimil Babka <vbabka@suse.cz>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Reza Arbab <arbab@linux.vnet.ibm.com>,
	Yasuaki Ishimatsu <yasu.isimatu@gmail.com>,
	Xishi Qiu <qiuxishi@huawei.com>,
	Kani Toshimitsu <toshi.kani@hpe.com>,
	slaoub@gmail.com, Joonsoo Kim <js1304@gmail.com>,
	Daniel Kiper <daniel.kiper@oracle.com>,
	Igor Mammedov <imammedo@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] mm, memory_hotplug: remove zone restrictions
Date: Fri, 30 Jun 2017 10:39:26 +0200	[thread overview]
Message-ID: <20170630083926.GA22923@dhcp22.suse.cz> (raw)
In-Reply-To: <CADZGycaXs-TsVN2xy_rpFE_ML5_rs=iYN6ZQZsAfjTVHFyLyEQ@mail.gmail.com>

On Fri 30-06-17 11:09:51, Wei Yang wrote:
> On Thu, Jun 29, 2017 at 3:35 PM, Michal Hocko <mhocko@kernel.org> wrote:
> > From: Michal Hocko <mhocko@suse.com>
> >
> 
> Michal,
> 
> I love the idea very much.
> 
> > Historically we have enforced that any kernel zone (e.g ZONE_NORMAL) has
> > to precede the Movable zone in the physical memory range. The purpose of
> > the movable zone is, however, not bound to any physical memory restriction.
> > It merely defines a class of migrateable and reclaimable memory.
> >
> > There are users (e.g. CMA) who might want to reserve specific physical
> > memory ranges for their own purpose. Moreover our pfn walkers have to be
> > prepared for zones overlapping in the physical range already because we
> > do support interleaving NUMA nodes and therefore zones can interleave as
> > well. This means we can allow each memory block to be associated with a
> > different zone.
> >
> > Loosen the current onlining semantic and allow explicit onlining type on
> > any memblock. That means that online_{kernel,movable} will be allowed
> > regardless of the physical address of the memblock as long as it is
> > offline of course. This might result in moveble zone overlapping with
> > other kernel zones. Default onlining then becomes a bit tricky but still
> 
> As here mentioned, we just remove the restriction for zone_movable.
> For other zones, we still keep the restriction and the order as before.

All other zones except for ZONE_NORMAL are subject of the physical
memory restrictions.
 
> Maybe the title is a little misleading. Audience may thinks no restriction
> for all zones.

I thought the context was clear from the fact that this is a hotplug
related patch. As such we do not allow online_{dma,dma32,normal} we only
allow to online into a kernel zone. I can update the wording but do not
have a good idea how.

[...]
> As I spotted on the previous patch, after several round of online/offline,
> The output of valid_zones will differ.
> 
> For example in this case, after I offline memory37 and 41, I expect this:
> 
>  memory34/valid_zones:Normal
>  memory35/valid_zones:Normal Movable
>  memory36/valid_zones:Normal Movable
>  memory37/valid_zones:Normal Movable
>  memory38/valid_zones:Normal Movable
>  memory39/valid_zones:Normal Movable
>  memory40/valid_zones:Normal Movable
>  memory41/valid_zones:Normal Movable
> 
> While the current result would be
> 
>  memory34/valid_zones:Normal
>  memory35/valid_zones:Normal Movable
>  memory36/valid_zones:Normal Movable
>  memory37/valid_zones:Movable Normal
>  memory38/valid_zones:Movable Normal
>  memory39/valid_zones:Movable Normal
>  memory40/valid_zones:Movable Normal
>  memory41/valid_zones:Movable Normal

You haven't written your sequence of onlining but if you used the same
one as mentioned in the patch then you should get
memory34/valid_zones:Normal
memory35/valid_zones:Normal Movable
memory36/valid_zones:Normal Movable
memory37/valid_zones:Normal Movable
memory38/valid_zones:Normal Movable
memory39/valid_zones:Normal
memory40/valid_zones:Movable Normal
memory41/valid_zones:Movable Normal

Even if you kept 37 as movable and offline 38 you wouldn't get 38-41
movable by default because...

> The reason is the same, we don't adjust the zone's range when offline
> memory.

.. of this.

> This is also a known issue?

yes and to be honest I do not plan to fix it unless somebody has a real
life usecase for it. Now that we allow explicit onlininig type anywhere
it seems like a reasonable behavior and this will allow us to remove
quite some code which is always a good deal wrt longterm maintenance.

Thanks!
-- 
Michal Hocko
SUSE Labs

WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@kernel.org>
To: Wei Yang <richard.weiyang@gmail.com>
Cc: Linux-MM <linux-mm@kvack.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>, Vlastimil Babka <vbabka@suse.cz>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Reza Arbab <arbab@linux.vnet.ibm.com>,
	Yasuaki Ishimatsu <yasu.isimatu@gmail.com>,
	Xishi Qiu <qiuxishi@huawei.com>,
	Kani Toshimitsu <toshi.kani@hpe.com>,
	slaoub@gmail.com, Joonsoo Kim <js1304@gmail.com>,
	Daniel Kiper <daniel.kiper@oracle.com>,
	Igor Mammedov <imammedo@redhat.com>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] mm, memory_hotplug: remove zone restrictions
Date: Fri, 30 Jun 2017 10:39:26 +0200	[thread overview]
Message-ID: <20170630083926.GA22923@dhcp22.suse.cz> (raw)
In-Reply-To: <CADZGycaXs-TsVN2xy_rpFE_ML5_rs=iYN6ZQZsAfjTVHFyLyEQ@mail.gmail.com>

On Fri 30-06-17 11:09:51, Wei Yang wrote:
> On Thu, Jun 29, 2017 at 3:35 PM, Michal Hocko <mhocko@kernel.org> wrote:
> > From: Michal Hocko <mhocko@suse.com>
> >
> 
> Michal,
> 
> I love the idea very much.
> 
> > Historically we have enforced that any kernel zone (e.g ZONE_NORMAL) has
> > to precede the Movable zone in the physical memory range. The purpose of
> > the movable zone is, however, not bound to any physical memory restriction.
> > It merely defines a class of migrateable and reclaimable memory.
> >
> > There are users (e.g. CMA) who might want to reserve specific physical
> > memory ranges for their own purpose. Moreover our pfn walkers have to be
> > prepared for zones overlapping in the physical range already because we
> > do support interleaving NUMA nodes and therefore zones can interleave as
> > well. This means we can allow each memory block to be associated with a
> > different zone.
> >
> > Loosen the current onlining semantic and allow explicit onlining type on
> > any memblock. That means that online_{kernel,movable} will be allowed
> > regardless of the physical address of the memblock as long as it is
> > offline of course. This might result in moveble zone overlapping with
> > other kernel zones. Default onlining then becomes a bit tricky but still
> 
> As here mentioned, we just remove the restriction for zone_movable.
> For other zones, we still keep the restriction and the order as before.

All other zones except for ZONE_NORMAL are subject of the physical
memory restrictions.
 
> Maybe the title is a little misleading. Audience may thinks no restriction
> for all zones.

I thought the context was clear from the fact that this is a hotplug
related patch. As such we do not allow online_{dma,dma32,normal} we only
allow to online into a kernel zone. I can update the wording but do not
have a good idea how.

[...]
> As I spotted on the previous patch, after several round of online/offline,
> The output of valid_zones will differ.
> 
> For example in this case, after I offline memory37 and 41, I expect this:
> 
>  memory34/valid_zones:Normal
>  memory35/valid_zones:Normal Movable
>  memory36/valid_zones:Normal Movable
>  memory37/valid_zones:Normal Movable
>  memory38/valid_zones:Normal Movable
>  memory39/valid_zones:Normal Movable
>  memory40/valid_zones:Normal Movable
>  memory41/valid_zones:Normal Movable
> 
> While the current result would be
> 
>  memory34/valid_zones:Normal
>  memory35/valid_zones:Normal Movable
>  memory36/valid_zones:Normal Movable
>  memory37/valid_zones:Movable Normal
>  memory38/valid_zones:Movable Normal
>  memory39/valid_zones:Movable Normal
>  memory40/valid_zones:Movable Normal
>  memory41/valid_zones:Movable Normal

You haven't written your sequence of onlining but if you used the same
one as mentioned in the patch then you should get
memory34/valid_zones:Normal
memory35/valid_zones:Normal Movable
memory36/valid_zones:Normal Movable
memory37/valid_zones:Normal Movable
memory38/valid_zones:Normal Movable
memory39/valid_zones:Normal
memory40/valid_zones:Movable Normal
memory41/valid_zones:Movable Normal

Even if you kept 37 as movable and offline 38 you wouldn't get 38-41
movable by default because...

> The reason is the same, we don't adjust the zone's range when offline
> memory.

.. of this.

> This is also a known issue?

yes and to be honest I do not plan to fix it unless somebody has a real
life usecase for it. Now that we allow explicit onlininig type anywhere
it seems like a reasonable behavior and this will allow us to remove
quite some code which is always a good deal wrt longterm maintenance.

Thanks!
-- 
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-06-30  8:39 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-29  7:35 [RFC PATCH 0/2] mm, memory_hotplug: remove zone onlining restriction Michal Hocko
2017-06-29  7:35 ` Michal Hocko
2017-06-29  7:35 ` [PATCH 1/2] mm, memory_hotplug: display allowed zones in the preferred ordering Michal Hocko
2017-06-29  7:35   ` Michal Hocko
2017-06-30  0:45   ` Joonsoo Kim
2017-06-30  0:45     ` Joonsoo Kim
2017-07-07 14:34   ` Vlastimil Babka
2017-07-07 14:34     ` Vlastimil Babka
2017-06-29  7:35 ` [PATCH 2/2] mm, memory_hotplug: remove zone restrictions Michal Hocko
2017-06-29  7:35   ` Michal Hocko
2017-06-30  1:16   ` Joonsoo Kim
2017-06-30  1:16     ` Joonsoo Kim
2017-06-30  3:09   ` Wei Yang
2017-06-30  3:09     ` Wei Yang
2017-06-30  8:39     ` Michal Hocko [this message]
2017-06-30  8:39       ` Michal Hocko
2017-06-30  9:39       ` Wei Yang
2017-06-30  9:39         ` Wei Yang
2017-06-30  9:55         ` Michal Hocko
2017-06-30  9:55           ` Michal Hocko
2017-06-30 11:01           ` Michal Hocko
2017-06-30 11:01             ` Michal Hocko
2017-07-05 23:16             ` Wei Yang
2017-07-06  6:56               ` Michal Hocko
2017-07-06  6:56                 ` Michal Hocko
2017-07-07  8:37                 ` Wei Yang
2017-07-07 12:41                   ` Michal Hocko
2017-07-07 12:41                     ` Michal Hocko
2017-07-07 15:02   ` Vlastimil Babka
2017-07-07 15:02     ` Vlastimil Babka
2017-07-10  6:45     ` Michal Hocko
2017-07-10  6:45       ` Michal Hocko
2017-07-10 11:11       ` Vlastimil Babka
2017-07-10 11:11         ` Vlastimil Babka
2017-07-10 11:17         ` Michal Hocko
2017-07-10 11:17           ` Michal Hocko
2017-07-10 12:12           ` Vlastimil Babka
2017-07-10 12:12             ` Vlastimil Babka
2017-07-10 12:30             ` Michal Hocko
2017-07-10 12:30               ` Michal Hocko
2017-07-12 12:49   ` Michal Hocko
2017-07-12 12:49     ` Michal Hocko
2017-07-14 12:12 [PATCH 0/2] mm, memory_hotplug: remove zone onlining restriction Michal Hocko
2017-07-14 12:12 ` [PATCH 2/2] mm, memory_hotplug: remove zone restrictions Michal Hocko
2017-07-14 12:12   ` Michal Hocko
2017-07-14 12:17   ` Vlastimil Babka
2017-07-14 12:17     ` Vlastimil Babka
2017-07-14 14:26   ` Reza Arbab
2017-07-14 14:26     ` Reza Arbab

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=20170630083926.GA22923@dhcp22.suse.cz \
    --to=mhocko@kernel.org \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=arbab@linux.vnet.ibm.com \
    --cc=daniel.kiper@oracle.com \
    --cc=imammedo@redhat.com \
    --cc=js1304@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=qiuxishi@huawei.com \
    --cc=richard.weiyang@gmail.com \
    --cc=slaoub@gmail.com \
    --cc=toshi.kani@hpe.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.