On Thu 25-07-19 22:49:36, David Hildenbrand wrote: > On 25.07.19 21:19, Michal Hocko wrote: [...] > > We need to rationalize the locking here, not to add more hacks. > > No, sorry. The real hack is calling a function that is *documented* to > be called under lock without it. That is an optimization for a special > case. That is the black magic in the code. OK, let me ask differently. What does the device_hotplug_lock actually protects from in the add_memory path? (Which data structures) This function is meant to be used when struct pages and node/zone data structures should be updated. Why should we even care about some device concept here? This should all be handled a layer up. Not all memory will have user space API to control online/offline state. -- Michal Hocko SUSE Labs