Re: [patch] lockdep: annotate mm/slab.c

From: Alok kataria
Date: Fri Jul 14 2006 - 12:46:32 EST


On 7/13/06, Christoph Lameter <clameter@xxxxxxx> wrote:
On Thu, 13 Jul 2006, Christoph Lameter wrote:

> The fix by removing the dropping of the lock in free_block could cause
> retaking the list_lock that we already hold in the OFF_SLAB case (even in
> the non NUMA case).

That retaking only occurs if the general slab cache used for the cache
management is the same general slab where we are freeing from.

Otherwise we are acquiring the list_locks of two distinct slab caches

There can be a _theoretical_ case in which we have a cache (X) which
has its slab descriptor from another cache (Y), and this caches slab
descriptor too comes from another cache (Z) ...and so on.
In this case there can be a recursive lock issue.
But _practically_ speaking i don't think this nesting of
slab-descriptors can go down till a depth greater than 2 (because
slab-descriptors come from a array-size cache, and getting a slab
descriptor which has size greater than 1K is very rare). And this
thing forming a cycle is virtually impossible.

which may introduce an issue of lock ordering.


So reversing the patch seems to be the right measure after all. But we
have the two weird locking scenarios above.

Yes that is the easiest way out, but let me give it a second thought.

Thanks & Regards,
Alok
-
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/



--
A computer scientist is someone who, when told to "Go to Hell," sees
the "go to," rather than the destination, as harmful.

Alok Kataria
-
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/