[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <55D56CA9.5020005@inspur.com>
Date: Thu, 20 Aug 2015 13:59:05 +0800
From: Changsheng Liu <liuchangsheng@...pur.com>
To: <liuchangsheng@...pur.com>
CC: <linux-mm@...ck.org>, <linux-kernel@...r.kernel.org>,
<yanxiaofeng@...pur.com>, Changsheng Liu <liuchangcheng@...pur.com>
Subject: Re: [PATCH] Memory hot added,The memory can not been added to movable
zone
Hi Andrew Morton:
First, thanks very much for your review, I will update codes according to your suggestion
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.
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
On Wed, 20 Aug 2015 7:50, Andrew Morton wrote:
> On Wed, 19 Aug 2015 04:18:26 -0400 Changsheng Liu <liuchangsheng@...pur.com> wrote:
>
>> From: Changsheng Liu <liuchangcheng@...pur.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?
>
>> --- 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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists