From: Tang Chen <tangchen@cn.fujitsu.com>
To: Vlastimil Babka <vbabka@suse.cz>,
Changsheng Liu <liuchangsheng@inspur.com>,
akpm@linux-foundation.org, isimatu.yasuaki@jp.fujitsu.com,
yasu.isimatu@gmail.com
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
wangnan0@huawei.com, dave.hansen@intel.com, yinghai@kernel.org,
toshi.kani@hp.com, qiuxishi@huawei.com, wunan@inspur.com,
yanxiaofeng@inspur.com, fandd@inspur.com,
Changsheng Liu <liuchangcheng@inspur.com>
Subject: Re: [PATCH V7] mm: memory hot-add: memory can not be added to movable zone defaultly
Date: Wed, 21 Oct 2015 17:18:36 +0800 [thread overview]
Message-ID: <5627586C.6000502@cn.fujitsu.com> (raw)
In-Reply-To: <56275423.6050506@suse.cz>
On 10/21/2015 05:00 PM, Vlastimil Babka wrote:
> On 10/21/2015 04:20 AM, Changsheng Liu wrote:
>>
>>
>> 在 2015/10/15 0:18, Vlastimil Babka 写道:
>>> On 10/12/2015 08:58 AM, Changsheng Liu wrote:
>>>> From: Changsheng Liu <liuchangcheng@inspur.com>
>>>>
>>>> After the user config CONFIG_MOVABLE_NODE,
>>>> When the memory is hot added, should_add_memory_movable() return 0
>>>> because all zones including ZONE_MOVABLE are empty,
>>>> so the memory that was hot added will be assigned to ZONE_NORMAL
>>>> and ZONE_NORMAL will be created firstly.
>>>> But we want the whole node to be added to ZONE_MOVABLE by default.
>>>>
>>>> So we change should_add_memory_movable(): if the user config
>>>> CONFIG_MOVABLE_NODE and sysctl parameter hotadd_memory_as_movable is 1
>>>> and the ZONE_NORMAL is empty or the pfn of the hot-added memory
>>>> is after the end of the ZONE_NORMAL it will always return 1
>>>> and then the whole node will be added to ZONE_MOVABLE by default.
>>>> If we want the node to be assigned to ZONE_NORMAL,
>>>> we can do it as follows:
>>>> "echo online_kernel > /sys/devices/system/memory/memoryXXX/state"
>>>>
>>>> By the patch, the behavious of kernel is changed by sysctl,
>>>> user can automatically create movable memory
>>>> by only the following udev rule:
>>>> SUBSYSTEM=="memory", ACTION=="add",
>>>> ATTR{state}=="offline", ATTR{state}="online"
>> I'm sorry for replying you so late due to the busy business trip.
>>> So just to be clear, we are adding a new sysctl, because the existing
>>> movable_node kernel option, which is checked by
>>> movable_node_is_enabled(), and
>>> does the same thing for non-hot-added-memory (?) cannot be reused
>>> for hot-added
>>> memory, as that would be a potentially surprising behavior change?
>>> Correct? Then
>>> this should be mentioned in the changelog too, and wherever
>>> "movable_node" is
>>> documented should also mention the new sysctl. Personally, I would
>>> expect
>>> movable_node to affect hot-added memory as well, and would be
>>> surprised that it
>>> doesn't...
>> I think it can let the user decides when to use this feature.
>> The user can enable the feature when making the hot_added memory
>> of a node movable and
>> make the feature disable to assign the hot_added memory of the
>> next
>> node to ZONE_NORMAL .
>
> So you mean sysctl is more flexible than boot option. OK, but wasn't
> such flexibility already provided by "echo online_kernel" vs "echo
> online_movable"? It doesn't sound like a strong reason for a new
> sysctl? Not doing surprising behavior change maybe does...
> .
>
Hi Vlastimil,
The current kernel will add hot-added memory to ZONE_NORMAL by default.
If users use a udev rule as below:
SUBSYSTEM=="memory", ACTION=="add", ATTR{state}=="offline", ATTR{state}="online"
it will online the memory as normal memory, which will not be hotpluggable.
Please refer to: https://lkml.org/lkml/2015/10/9/58
I think this is the root motivation of the patch.
But BTW, I'm quite familiar with udev rules, but can something like this
work ?
SUBSYSTEM=="memory", ACTION=="add", ATTR{state}=="offline", ATTR{state}="online_movable"
I'm not sure. I added Ishimatu in.
For now, I think, if the above rule works, we don't need this patch. If
not, maybe we should just change the kernel behavior to make the
hot-added memory be added to ZONE_MOVABLE by default.
I don't have objection. But a sysctl doesn't sound necessary.
Thanks.
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Tang Chen <tangchen@cn.fujitsu.com>
To: Vlastimil Babka <vbabka@suse.cz>,
Changsheng Liu <liuchangsheng@inspur.com>,
<akpm@linux-foundation.org>, <isimatu.yasuaki@jp.fujitsu.com>,
<yasu.isimatu@gmail.com>
Cc: <linux-mm@kvack.org>, <linux-kernel@vger.kernel.org>,
<wangnan0@huawei.com>, <dave.hansen@intel.com>,
<yinghai@kernel.org>, <toshi.kani@hp.com>, <qiuxishi@huawei.com>,
<wunan@inspur.com>, <yanxiaofeng@inspur.com>, <fandd@inspur.com>,
Changsheng Liu <liuchangcheng@inspur.com>,
Yasuaki Ishimatsu <yasu.isimatu@gmail.com>
Subject: Re: [PATCH V7] mm: memory hot-add: memory can not be added to movable zone defaultly
Date: Wed, 21 Oct 2015 17:18:36 +0800 [thread overview]
Message-ID: <5627586C.6000502@cn.fujitsu.com> (raw)
In-Reply-To: <56275423.6050506@suse.cz>
On 10/21/2015 05:00 PM, Vlastimil Babka wrote:
> On 10/21/2015 04:20 AM, Changsheng Liu wrote:
>>
>>
>> 在 2015/10/15 0:18, Vlastimil Babka 写道:
>>> On 10/12/2015 08:58 AM, Changsheng Liu wrote:
>>>> From: Changsheng Liu <liuchangcheng@inspur.com>
>>>>
>>>> After the user config CONFIG_MOVABLE_NODE,
>>>> When the memory is hot added, should_add_memory_movable() return 0
>>>> because all zones including ZONE_MOVABLE are empty,
>>>> so the memory that was hot added will be assigned to ZONE_NORMAL
>>>> and ZONE_NORMAL will be created firstly.
>>>> But we want the whole node to be added to ZONE_MOVABLE by default.
>>>>
>>>> So we change should_add_memory_movable(): if the user config
>>>> CONFIG_MOVABLE_NODE and sysctl parameter hotadd_memory_as_movable is 1
>>>> and the ZONE_NORMAL is empty or the pfn of the hot-added memory
>>>> is after the end of the ZONE_NORMAL it will always return 1
>>>> and then the whole node will be added to ZONE_MOVABLE by default.
>>>> If we want the node to be assigned to ZONE_NORMAL,
>>>> we can do it as follows:
>>>> "echo online_kernel > /sys/devices/system/memory/memoryXXX/state"
>>>>
>>>> By the patch, the behavious of kernel is changed by sysctl,
>>>> user can automatically create movable memory
>>>> by only the following udev rule:
>>>> SUBSYSTEM=="memory", ACTION=="add",
>>>> ATTR{state}=="offline", ATTR{state}="online"
>> I'm sorry for replying you so late due to the busy business trip.
>>> So just to be clear, we are adding a new sysctl, because the existing
>>> movable_node kernel option, which is checked by
>>> movable_node_is_enabled(), and
>>> does the same thing for non-hot-added-memory (?) cannot be reused
>>> for hot-added
>>> memory, as that would be a potentially surprising behavior change?
>>> Correct? Then
>>> this should be mentioned in the changelog too, and wherever
>>> "movable_node" is
>>> documented should also mention the new sysctl. Personally, I would
>>> expect
>>> movable_node to affect hot-added memory as well, and would be
>>> surprised that it
>>> doesn't...
>> I think it can let the user decides when to use this feature.
>> The user can enable the feature when making the hot_added memory
>> of a node movable and
>> make the feature disable to assign the hot_added memory of the
>> next
>> node to ZONE_NORMAL .
>
> So you mean sysctl is more flexible than boot option. OK, but wasn't
> such flexibility already provided by "echo online_kernel" vs "echo
> online_movable"? It doesn't sound like a strong reason for a new
> sysctl? Not doing surprising behavior change maybe does...
> .
>
Hi Vlastimil,
The current kernel will add hot-added memory to ZONE_NORMAL by default.
If users use a udev rule as below:
SUBSYSTEM=="memory", ACTION=="add", ATTR{state}=="offline", ATTR{state}="online"
it will online the memory as normal memory, which will not be hotpluggable.
Please refer to: https://lkml.org/lkml/2015/10/9/58
I think this is the root motivation of the patch.
But BTW, I'm quite familiar with udev rules, but can something like this
work ?
SUBSYSTEM=="memory", ACTION=="add", ATTR{state}=="offline", ATTR{state}="online_movable"
I'm not sure. I added Ishimatu in.
For now, I think, if the above rule works, we don't need this patch. If
not, maybe we should just change the kernel behavior to make the
hot-added memory be added to ZONE_MOVABLE by default.
I don't have objection. But a sysctl doesn't sound necessary.
Thanks.
next prev parent reply other threads:[~2015-10-21 9:21 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-12 6:58 [PATCH V7] mm: memory hot-add: memory can not be added to movable zone defaultly Changsheng Liu
2015-10-12 6:58 ` Changsheng Liu
2015-10-14 16:18 ` Vlastimil Babka
2015-10-14 16:18 ` Vlastimil Babka
2015-10-21 2:20 ` Changsheng Liu
2015-10-21 2:20 ` Changsheng Liu
2015-10-21 9:00 ` Vlastimil Babka
2015-10-21 9:00 ` Vlastimil Babka
2015-10-21 9:18 ` Tang Chen [this message]
2015-10-21 9:18 ` Tang Chen
2015-10-21 9:20 ` Tang Chen
2015-10-21 9:20 ` Tang Chen
2015-10-23 18:36 ` Yasuaki Ishimatsu
2015-10-23 18:36 ` Yasuaki Ishimatsu
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=5627586C.6000502@cn.fujitsu.com \
--to=tangchen@cn.fujitsu.com \
--cc=akpm@linux-foundation.org \
--cc=dave.hansen@intel.com \
--cc=fandd@inspur.com \
--cc=isimatu.yasuaki@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=liuchangcheng@inspur.com \
--cc=liuchangsheng@inspur.com \
--cc=qiuxishi@huawei.com \
--cc=toshi.kani@hp.com \
--cc=vbabka@suse.cz \
--cc=wangnan0@huawei.com \
--cc=wunan@inspur.com \
--cc=yanxiaofeng@inspur.com \
--cc=yasu.isimatu@gmail.com \
--cc=yinghai@kernel.org \
/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.