Re: [RFC PATCH v5 19/19] memory-hotplug: remove sysfs file of node
From: Wen Congyang <hidden>
Date: 2012-07-30 01:58:39
Also in:
linux-acpi, linux-mm, linux-s390, linux-sh, lkml
At 07/27/2012 06:45 PM, Yasuaki Ishimatsu Wrote:
Hi Wen, 2012/07/27 19:36, Wen Congyang wrote:quoted
From: Yasuaki Ishimatsu <redacted> The patch adds node_set_offline() and unregister_one_node() to remove_memory() for removing sysfs file of node. CC: David Rientjes <rientjes@google.com> CC: Jiang Liu <redacted> CC: Len Brown <redacted> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org> CC: Paul Mackerras <redacted> CC: Christoph Lameter <redacted> Cc: Minchan Kim <redacted> CC: Andrew Morton <akpm@linux-foundation.org> CC: KOSAKI Motohiro <redacted> CC: Wen Congyang <redacted> Signed-off-by: Yasuaki Ishimatsu <redacted> --- mm/memory_hotplug.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 5ac035f..5681968 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c@@ -1267,6 +1267,11 @@ int __ref remove_memory(int nid, u64 start, u64size) /* remove memmap entry */ firmware_map_remove(start, start + size, "System RAM"); + if (!node_present_pages(nid)) {Applying [PATCH v5 17/19], pgdat->node_spanned_pages can become 0 when all memory of the pgdat is removed. When pgdat->node_spanned_pages is 0, it means the pgdat has no memory. So I think node_spanned_pages() is better.
node_spanned_pages = present_pages + hole_pages So present_pages is always less or equal than spanned_pages, and I think checking present pages is better. Thanks Wen Congyang
Thanks, Yasuaki Ishimatsuquoted
+ node_set_offline(nid); + unregister_one_node(nid); + } + arch_remove_memory(start, size); out: unlock_memory_hotplug();