Messages in this thread | | | Date | Fri, 14 Jul 2006 09:48:15 -0700 | From | "Alok kataria" <> | Subject | Re: [patch] lockdep: annotate mm/slab.c |
| |
On 7/13/06, Christoph Lameter <clameter@sgi.com> 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@vger.kernel.org > 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |