On Thu, 2013-05-23 at 00:09 +0200, Rafael J. Wysocki wrote: > On Monday, May 20, 2013 01:55:33 PM Toshi Kani wrote: > > On Mon, 2013-05-20 at 21:47 +0200, Rafael J. Wysocki wrote: > > > On Monday, May 20, 2013 11:27:56 AM Toshi Kani wrote: > > > > On Sun, 2013-05-19 at 01:34 +0200, Rafael J. Wysocki wrote: > > > > > From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > > > > : > > > > > > > - lock_memory_hotplug(); > > > > > - > > > > > - /* > > > > > - * we have offlined all memory blocks like this: > > > > > - * 1. lock memory hotplug > > > > > - * 2. offline a memory block > > > > > - * 3. unlock memory hotplug > > > > > - * > > > > > - * repeat step1-3 to offline the memory block. All memory blocks > > > > > - * must be offlined before removing memory. But we don't hold the > > > > > - * lock in the whole operation. So we should check whether all > > > > > - * memory blocks are offlined. > > > > > - */ > > > > > - > > > > > - ret = walk_memory_range(start_pfn, end_pfn, NULL, > > > > > - is_memblock_offlined_cb); > > > > > - if (ret) { > > > > > - unlock_memory_hotplug(); > > > > > - return ret; > > > > > - } > > > > > - > > > > > > > > I think the above procedure is still useful for safe guard. > > > > > > But then it shoud to BUG_ON() instead of returning an error (which isn't very > > > useful for anything now). > > > > Right since we cannot fail at that state. > > > > > > > - /* remove memmap entry */ > > > > > - firmware_map_remove(start, start + size, "System RAM"); > > > > > - > > > > > - arch_remove_memory(start, size); > > > > > - > > > > > - try_offline_node(nid); > > > > > > > > The above procedure performs memory hot-delete specific operations and > > > > is necessary. > > > > > > OK, I see. I'll replace this patch with something simpler, then. > > > > Thanks. > > The replacement patch is appended. The updated patch looks good. Reviewed-by: Toshi Kani <toshi.kani@xxxxxx> Thanks, -Toshi > > Thanks, > Rafael > > --- > From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > Subject: Memory hotplug / ACPI: Simplify memory removal > > Now that the memory offlining should be taken care of by the > companion device offlining code in acpi_scan_hot_remove(), the > ACPI memory hotplug driver doesn't need to offline it in > remove_memory() any more. Moreover, since the return value of > remove_memory() is not used, it's better to make it be a void > function and trigger a BUG() if the memory scheduled for removal is > not offline. > > Change the code in accordance with the above observations. > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > --- > drivers/acpi/acpi_memhotplug.c | 13 +------ > include/linux/memory_hotplug.h | 2 - > mm/memory_hotplug.c | 71 ++++------------------------------------- > 3 files changed, 12 insertions(+), 74 deletions(-) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>