On Mon 01-07-19 10:01:41, Michal Hocko wrote: > On Mon 27-05-19 13:11:47, David Hildenbrand wrote: > > We want to improve error handling while adding memory by allowing > > to use arch_remove_memory() and __remove_pages() even if > > CONFIG_MEMORY_HOTREMOVE is not set to e.g., implement something like: > > > > arch_add_memory() > > rc = do_something(); > > if (rc) { > > arch_remove_memory(); > > } > > > > We won't get rid of CONFIG_MEMORY_HOTREMOVE for now, as it will require > > quite some dependencies for memory offlining. > > If we cannot really remove CONFIG_MEMORY_HOTREMOVE altogether then why > not simply add an empty placeholder for arch_remove_memory when the > config is disabled? In other words, can we replace this by something as simple as: diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h index ae892eef8b82..0329027fe740 100644 --- a/include/linux/memory_hotplug.h +++ b/include/linux/memory_hotplug.h @@ -128,6 +128,20 @@ extern void arch_remove_memory(int nid, u64 start, u64 size, struct vmem_altmap *altmap); extern void __remove_pages(struct zone *zone, unsigned long start_pfn, unsigned long nr_pages, struct vmem_altmap *altmap); +#else +/* + * Allow code using + * arch_add_memory(); + * rc = do_something(); + * if (rc) + * arch_remove_memory(); + * + * without ifdefery. + */ +static inline void arch_remove_memory(int nid, u64 start, u64 size, + struct vmem_altmap *altmap) +{ +} #endif /* CONFIG_MEMORY_HOTREMOVE */ /* -- Michal Hocko SUSE Labs