Re: [PATCH] slub: Fix sysfs circular locking dependency

From: David Rientjes
Date: Fri Jan 07 2011 - 15:34:52 EST


On Fri, 7 Jan 2011, Christoph Lameter wrote:

> Subject: slub: Avoid use of slub_lock in show_slab_objects()
>
> The purpose of the locking is to prevent removal and additions
> of nodes when statistics are gathered for a slab cache. So we
> need to avoid racing with memory hotplug functionality.
>
> It is enough to take the memory hotplug locks there instead
> of the slub_lock.
>

Because memory hotplug is the only time s->node[] is modified after the
sysfs files are created, which is the only time show_slab_objects() is
called.

> online_pages() does not acquire the memory_hotplug lock. So
> add the missing locking there.
>
> Signed-off-by: Christoph Lameter <cl@xxxxxxxxx>

Acked-by: David Rientjes <rientjes@xxxxxxxxxx>

[ Should probably be seperated out into two patches, one for the
memory hotplug locking addition and one for the slub fix, both
should be pushed during this merge window. If so, a comment
describing the new semantics of lock_memory_hotplug() to protect
data structures that may be modified in hotplug notifier
callbacks would be appreciated. ]
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/