Am 03.09.18 um 02:36 schrieb Rashmica: > Hi David, > > > On 21/08/18 20:44, David Hildenbrand wrote: > >> There seem to be some problems as result of 30467e0b3be ("mm, hotplug: >> fix concurrent memory hot-add deadlock"), which tried to fix a possible >> lock inversion reported and discussed in [1] due to the two locks >> a) device_lock() >> b) mem_hotplug_lock >> >> While add_memory() first takes b), followed by a) during >> bus_probe_device(), onlining of memory from user space first took b), >> followed by a), exposing a possible deadlock. > > Do you mean "onlining of memory from user space first took a), > followed by b)"? Very right, thanks. > >> In [1], and it was decided to not make use of device_hotplug_lock, but >> rather to enforce a locking order. >> >> The problems I spotted related to this: >> >> 1. Memory block device attributes: While .state first calls >> mem_hotplug_begin() and the calls device_online() - which takes >> device_lock() - .online does no longer call mem_hotplug_begin(), so >> effectively calls online_pages() without mem_hotplug_lock. >> >> 2. device_online() should be called under device_hotplug_lock, however >> onlining memory during add_memory() does not take care of that. >> >> In addition, I think there is also something wrong about the locking in >> >> 3. arch/powerpc/platforms/powernv/memtrace.c calls offline_pages() >> without locks. This was introduced after 30467e0b3be. And skimming over >> the code, I assume it could need some more care in regards to locking >> (e.g. device_online() called without device_hotplug_lock - but I'll >> not touch that for now). > > Can you mention that you fixed this in later patches? Sure! > > > The series looks good to me. Feel free to add my reviewed-by: > > Reviewed-by: Rashmica Gupta <rashmica.g@xxxxxxxxx> > Thanks, r-b only for this patch or all of the series? -- Thanks, David / dhildenb