lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 26 Aug 2015 08:36:43 +0800
From:	Changsheng Liu <liuchangsheng@...pur.com>
To:	Vlastimil Babka <vbabka@...e.cz>,
	Yasuaki Ishimatsu <yasu.isimatu@...il.com>,
	Andrew Morton <akpm@...ux-foundation.org>
CC:	<isimatu.yasuaki@...fujitsu.com>, <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



在 2015/8/25 19:13, Vlastimil Babka 写道:
> 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?
     The system add memory to normal zone defaultly so that it can be 
used by kernel and then we can not move the memory to movable zone.
     The patch can add the memory to movable zone directlly.
>
>>> Hi
>>> On Thu, 20 Aug 2015 14:15:13 +0800
>>> Changsheng Liu <liuchangsheng@...pur.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@...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?
>>>>        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 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

Powered by Openwall GNU/*/Linux Powered by OpenVZ