From: Vlastimil Babka <vbabka@suse.cz>
To: Changsheng Liu <liuchangsheng@inspur.com>,
Yasuaki Ishimatsu <yasu.isimatu@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: isimatu.yasuaki@jp.fujitsu.com, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, yanxiaofeng@inspur.com,
Changsheng Liu <liuchangcheng@inspur.com>
Subject: Re: [PATCH] Memory hot added,The memory can not been added to movable zone
Date: Tue, 25 Aug 2015 13:13:07 +0200 [thread overview]
Message-ID: <55DC4DC3.30509@suse.cz> (raw)
In-Reply-To: <55DC4294.2020407@inspur.com>
On 08/25/2015 12:25 PM, Changsheng Liu wrote:
> Thanks very much for your review, I can move the memory from normal zone
> to movable zone succesfully.
> And thank you for let me understand the memory mechanism better.
> a?? 2015/8/25 3:15, Yasuaki Ishimatsu a??e??:
So you agree to drop the patch from -mm?
>> Hi
>> On Thu, 20 Aug 2015 14:15:13 +0800
>> Changsheng Liu <liuchangsheng@inspur.com> wrote:
>>
>>> Hi Andrew Morton:
>>> First, thanks very much for your review, I will update codes according
>>> to your suggestio
>>>
>>> a?? 2015/8/20 7:50, Andrew Morton a??e??:
>>>> On Wed, 19 Aug 2015 04:18:26 -0400 Changsheng Liu <liuchangsheng@inspur.com> wrote:
>>>>
>>>>> From: Changsheng Liu <liuchangcheng@inspur.com>
>>>>>
>>>>> When memory hot added, the function should_add_memory_movable
>>>>> always return 0,because the movable zone is empty,
>>>>> so the memory that hot added will add to normal zone even if
>>>>> we want to remove the memory.
>>>>> So we change the function should_add_memory_movable,if the user
>>>>> config CONFIG_MOVABLE_NODE it will return 1 when
>>>>> movable zone is empty
>>>> I cleaned this up a bit:
>>>>
>>>> : Subject: mm: memory hot-add: memory can not been added to movable zone
>>>> :
>>>> : When memory is hot added, should_add_memory_movable() always returns 0
>>>> : because the movable zone is empty, so the memory that was hot added will
>>>> : add to the normal zone even if we want to remove the memory.
>>>> :
>>>> : So we change should_add_memory_movable(): if the user config
>>>> : CONFIG_MOVABLE_NODE it will return 1 when the movable zone is empty.
>>>>
>>>> But I don't understand the "even if we want to remove the memory".
>>>> This is hot-add, not hot-remove. What do you mean here?
>>> After the system startup, we hot added one memory. After some time
>>> we wanted to hot remove the memroy that was hot added,
>>> but we could not offline some memory blocks successfully because
>>> the memory was added to normal zone defaultly and the value of the file
>>> named removable under some memory blocks is 0.
>> For this, we prepared online_movable. When memory is onlined by online_movable,
>> the memory move from ZONE_NORMAL to ZONE_MOVABLE.
>>
>> Ex.
>> # echo online_movable > /sys/devices/system/memory/memoryXXX/state
>>
>> Thanks,
>> Yasuaki Ishimatsu
>>
>>> we checked the value of the file under some memory blocks as follows:
>>> "cat /sys/devices/system/memory/ memory***/removable"
>>> When memory being hot added we let the memory be added to movable
>>> zone,
>>> so we will be able to hot remove the memory that have been hot added
>>>>> --- a/mm/memory_hotplug.c
>>>>> +++ b/mm/memory_hotplug.c
>>>>> @@ -1198,9 +1198,13 @@ static int should_add_memory_movable(int nid, u64 start, u64 size)
>>>>> pg_data_t *pgdat = NODE_DATA(nid);
>>>>> struct zone *movable_zone = pgdat->node_zones + ZONE_MOVABLE;
>>>>>
>>>>> - if (zone_is_empty(movable_zone))
>>>>> + if (zone_is_empty(movable_zone)) {
>>>>> + #ifdef CONFIG_MOVABLE_NODE
>>>>> + return 1;
>>>>> + #else
>>>>> return 0;
>>>>> -
>>>>> + #endif
>>>>> + }
>>>>> if (movable_zone->zone_start_pfn <= start_pfn)
>>>>> return 1;
>>>> Cleaner:
>>>>
>>>> --- a/mm/memory_hotplug.c~memory-hot-addedthe-memory-can-not-been-added-to-movable-zone-fix
>>>> +++ a/mm/memory_hotplug.c
>>>> @@ -1181,13 +1181,9 @@ static int should_add_memory_movable(int
>>>> pg_data_t *pgdat = NODE_DATA(nid);
>>>> struct zone *movable_zone = pgdat->node_zones + ZONE_MOVABLE;
>>>>
>>>> - if (zone_is_empty(movable_zone)) {
>>>> - #ifdef CONFIG_MOVABLE_NODE
>>>> - return 1;
>>>> - #else
>>>> - return 0;
>>>> - #endif
>>>> - }
>>>> + if (zone_is_empty(movable_zone))
>>>> + return IS_ENABLED(CONFIG_MOVABLE_NODE);
>>>> +
>>>> if (movable_zone->zone_start_pfn <= start_pfn)
>>>> return 1;
>>>>
>>>> _
>>>>
>>>> .
>>>>
>> .
>>
>
--
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: Vlastimil Babka <vbabka@suse.cz>
To: Changsheng Liu <liuchangsheng@inspur.com>,
Yasuaki Ishimatsu <yasu.isimatu@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: isimatu.yasuaki@jp.fujitsu.com, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, yanxiaofeng@inspur.com,
Changsheng Liu <liuchangcheng@inspur.com>
Subject: Re: [PATCH] Memory hot added,The memory can not been added to movable zone
Date: Tue, 25 Aug 2015 13:13:07 +0200 [thread overview]
Message-ID: <55DC4DC3.30509@suse.cz> (raw)
In-Reply-To: <55DC4294.2020407@inspur.com>
On 08/25/2015 12:25 PM, Changsheng Liu wrote:
> Thanks very much for your review, I can move the memory from normal zone
> to movable zone succesfully.
> And thank you for let me understand the memory mechanism better.
> 在 2015/8/25 3:15, Yasuaki Ishimatsu 写道:
So you agree to drop the patch from -mm?
>> Hi
>> On Thu, 20 Aug 2015 14:15:13 +0800
>> Changsheng Liu <liuchangsheng@inspur.com> wrote:
>>
>>> Hi Andrew Morton:
>>> First, thanks very much for your review, I will update codes according
>>> to your suggestio
>>>
>>> 在 2015/8/20 7:50, Andrew Morton 写道:
>>>> On Wed, 19 Aug 2015 04:18:26 -0400 Changsheng Liu <liuchangsheng@inspur.com> wrote:
>>>>
>>>>> From: Changsheng Liu <liuchangcheng@inspur.com>
>>>>>
>>>>> When memory hot added, the function should_add_memory_movable
>>>>> always return 0,because the movable zone is empty,
>>>>> so the memory that hot added will add to normal zone even if
>>>>> we want to remove the memory.
>>>>> So we change the function should_add_memory_movable,if the user
>>>>> config CONFIG_MOVABLE_NODE it will return 1 when
>>>>> movable zone is empty
>>>> I cleaned this up a bit:
>>>>
>>>> : Subject: mm: memory hot-add: memory can not been added to movable zone
>>>> :
>>>> : When memory is hot added, should_add_memory_movable() always returns 0
>>>> : because the movable zone is empty, so the memory that was hot added will
>>>> : add to the normal zone even if we want to remove the memory.
>>>> :
>>>> : So we change should_add_memory_movable(): if the user config
>>>> : CONFIG_MOVABLE_NODE it will return 1 when the movable zone is empty.
>>>>
>>>> But I don't understand the "even if we want to remove the memory".
>>>> This is hot-add, not hot-remove. What do you mean here?
>>> After the system startup, we hot added one memory. After some time
>>> we wanted to hot remove the memroy that was hot added,
>>> but we could not offline some memory blocks successfully because
>>> the memory was added to normal zone defaultly and the value of the file
>>> named removable under some memory blocks is 0.
>> For this, we prepared online_movable. When memory is onlined by online_movable,
>> the memory move from ZONE_NORMAL to ZONE_MOVABLE.
>>
>> Ex.
>> # echo online_movable > /sys/devices/system/memory/memoryXXX/state
>>
>> Thanks,
>> Yasuaki Ishimatsu
>>
>>> we checked the value of the file under some memory blocks as follows:
>>> "cat /sys/devices/system/memory/ memory***/removable"
>>> When memory being hot added we let the memory be added to movable
>>> zone,
>>> so we will be able to hot remove the memory that have been hot added
>>>>> --- a/mm/memory_hotplug.c
>>>>> +++ b/mm/memory_hotplug.c
>>>>> @@ -1198,9 +1198,13 @@ static int should_add_memory_movable(int nid, u64 start, u64 size)
>>>>> pg_data_t *pgdat = NODE_DATA(nid);
>>>>> struct zone *movable_zone = pgdat->node_zones + ZONE_MOVABLE;
>>>>>
>>>>> - if (zone_is_empty(movable_zone))
>>>>> + if (zone_is_empty(movable_zone)) {
>>>>> + #ifdef CONFIG_MOVABLE_NODE
>>>>> + return 1;
>>>>> + #else
>>>>> return 0;
>>>>> -
>>>>> + #endif
>>>>> + }
>>>>> if (movable_zone->zone_start_pfn <= start_pfn)
>>>>> return 1;
>>>> Cleaner:
>>>>
>>>> --- a/mm/memory_hotplug.c~memory-hot-addedthe-memory-can-not-been-added-to-movable-zone-fix
>>>> +++ a/mm/memory_hotplug.c
>>>> @@ -1181,13 +1181,9 @@ static int should_add_memory_movable(int
>>>> pg_data_t *pgdat = NODE_DATA(nid);
>>>> struct zone *movable_zone = pgdat->node_zones + ZONE_MOVABLE;
>>>>
>>>> - if (zone_is_empty(movable_zone)) {
>>>> - #ifdef CONFIG_MOVABLE_NODE
>>>> - return 1;
>>>> - #else
>>>> - return 0;
>>>> - #endif
>>>> - }
>>>> + if (zone_is_empty(movable_zone))
>>>> + return IS_ENABLED(CONFIG_MOVABLE_NODE);
>>>> +
>>>> if (movable_zone->zone_start_pfn <= start_pfn)
>>>> return 1;
>>>>
>>>> _
>>>>
>>>> .
>>>>
>> .
>>
>
next prev parent reply other threads:[~2015-08-25 11:13 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-19 8:18 [PATCH] Memory hot added,The memory can not been added to movable zone Changsheng Liu
2015-08-19 8:18 ` Changsheng Liu
2015-08-19 23:50 ` Andrew Morton
2015-08-19 23:50 ` Andrew Morton
2015-08-20 5:59 ` Changsheng Liu
2015-08-20 5:59 ` Changsheng Liu
2015-08-20 6:12 ` Changsheng Liu
2015-08-20 6:15 ` Changsheng Liu
2015-08-24 19:15 ` Yasuaki Ishimatsu
2015-08-24 19:15 ` Yasuaki Ishimatsu
2015-08-25 10:25 ` Changsheng Liu
2015-08-25 10:25 ` Changsheng Liu
2015-08-25 11:13 ` Vlastimil Babka [this message]
2015-08-25 11:13 ` Vlastimil Babka
2015-08-25 11:49 ` Changsheng Liu
2015-08-26 0:36 ` Changsheng Liu
2015-08-26 0:36 ` Changsheng Liu
2015-08-26 6:12 ` Vlastimil Babka
2015-08-26 6:12 ` Vlastimil Babka
2015-08-26 7:53 ` Changsheng Liu
2015-08-26 7:53 ` Changsheng Liu
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=55DC4DC3.30509@suse.cz \
--to=vbabka@suse.cz \
--cc=akpm@linux-foundation.org \
--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=yanxiaofeng@inspur.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.