Re: WTH is going on with memory hotplug sysf interface
From: Michal Hocko <mhocko@kernel.org>
Date: 2017-03-14 16:20:14
Also in:
linux-acpi, linux-mm, linux-s390, lkml
On Tue 14-03-17 12:05:59, YASUAKI ISHIMATSU wrote:
On 03/13/2017 05:19 AM, Michal Hocko wrote:quoted
On Fri 10-03-17 12:39:27, Yasuaki Ishimatsu wrote:quoted
On 03/10/2017 08:58 AM, Michal Hocko wrote:
[...]
quoted
quoted
quoted
# echo online_movable > /sys/devices/system/memory/memory34/state # grep . /sys/devices/system/memory/memory3?/valid_zones /sys/devices/system/memory/memory32/valid_zones:Normal /sys/devices/system/memory/memory33/valid_zones:Normal Movable /sys/devices/system/memory/memory34/valid_zones:Movable NormalI think there is no strong reason which kernel has the restriction. By setting the restrictions, it seems to have made management of these zone structs simple.Could you be more specific please? How could this make management any easier when udev is basically racing with the physical hotplug and the result is basically undefined?When changing zone from NORMAL(N) to MOVALBE(M), we must resize both zones, zone->zone_start_pfn and zone->spanned_pages. Currently there is the restriction. So we just simply change: zone(N)->spanned_pages -= nr_pages zone(M)->zone_start_pfn -= nr_pages
Yes I understand how this made the implementation simpler. I was questioning how this made user management any easier. Changing valid zones which races with the hotplug consumer (e.g. udev) sounds like a terrible idea to me. Anyway, it seems that the initial assumption/restriction that all pages have to start on the zone Normal is not really needed. I have a preliminary patch which removes that and associates newly added pages with a zone at the online time and it seems to be working reasonably well. I have to iron out some corners before I post it. -- 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>