On 13.05.19 09:48, David Hildenbrand wrote: > On 07.05.19 23:02, Dan Williams wrote: >> On Tue, May 7, 2019 at 11:38 AM David Hildenbrand <david@xxxxxxxxxx> wrote: >>> >>> Let's prepare for better error handling while adding memory by allowing >>> to use arch_remove_memory() and __remove_pages() even if >>> CONFIG_MEMORY_HOTREMOVE is not set. CONFIG_MEMORY_HOTREMOVE effectively >>> covers >>> - Offlining of system ram (memory block devices) - offline_pages() >>> - Unplug of system ram - remove_memory() >>> - Unplug/remap of device memory - devm_memremap() >>> >>> This allows e.g. for handling like >>> >>> arch_add_memory() >>> rc = do_something(); >>> if (rc) { >>> arch_remove_memory(); >>> } >>> >>> Whereby do_something() will for example be memory block device creation >>> after it has been factored out. >> >> What's left after this? Can we just get rid of CONFIG_MEMORY_HOTREMOVE >> option completely when CONFIG_MEMORY_HOTPLUG is enabled? It's not >> clear to me why there was ever the option to compile out the remove >> code when the add code is included. >> > > If there are no other comments, I will go ahead and rip out > CONFIG_MEMORY_HOTREMOVE completely, gluing the functionality to > CONFIG_MEMORY_HOTPLUG. > Hmmmm, however this will require CONFIG_MEMORY_HOTPLUG to require - MEMORY_ISOLATION - HAVE_BOOTMEM_INFO_NODE if (X86_64 || PPC64) And depends on - MIGRATION Which would limit the configurations where memory hotplug would be available. I guess going with this patch here is ok as a first step. I just realized, that we'll need arch_remove_memory() for arm64 to make this patch here work. -- Thanks, David / dhildenb