Messages in this thread | | | Date | Thu, 6 Jan 2011 12:10:59 -0600 (CST) | From | Christoph Lameter <> | Subject | Re: [PATCH] slub: Fix sysfs circular locking dependency |
| |
On Thu, 6 Jan 2011, David Rientjes wrote:
> > Thanks for testing. David, does Christoph's patch look OK to you? > > > > I think it certainly fixes the problem at hand, but I think we also need > to do lock_memory_hotplug() for memory hotplug in > slab_mem_going_online_callback() to make show_slab_objects() consistent > when being printed during concurrent node hot-add since it sets bits in > N_NORMAL_MEMORY. The MEM_OFFLINE callback is already handled at a higher > level by taking the lock in the hotplug layer, but we need to protect the > MEM_GOING_ONLINE and MEM_CANCEL_ONLINE callbacks if slub_lock is no longer > used to protect node arrays (which was admittedly always convenient since > it's typically associated with an iteration through slab_caches).
Hmm, I would have expected the callbacks all to be done under hotplug locking.
The MEM_GOING_ONLINE callback is not that critical since a node that is coming online presumably has only a minimal set of objects necessary for potential future allocations.
slab_mem_going_online_callback() etc already take the slub_lock since they have to iterate over the list of slab caches in existence. We could take the hotplug lock there as well.
Kame-san: Can you enlighten us on hotplug locking? And also check this patch?
| |