Messages in this thread | | | Date | Tue, 24 Nov 2009 22:59:44 +0200 | Subject | Re: lockdep complaints in slab allocator | From | Pekka Enberg <> |
| |
On Tue, Nov 24, 2009 at 6:23 PM, Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote: > On Mon, Nov 23, 2009 at 09:00:00PM +0200, Pekka Enberg wrote: >> Hi Peter, >> >> On Fri, 2009-11-20 at 16:09 +0100, Peter Zijlstra wrote: >> > > Uh, ok, so apparently I was right after all. There's a comment in >> > > free_block() above the slab_destroy() call that refers to the comment >> > > above alloc_slabmgmt() function definition which explains it all. >> > > >> > > Long story short: ->slab_cachep never points to the same kmalloc cache >> > > we're allocating or freeing from. Where do we need to put the >> > > spin_lock_nested() annotation? Would it be enough to just use it in >> > > cache_free_alien() for alien->lock or do we need it in >> > > cache_flusharray() as well? >> > >> > You'd have to somehow push the nested state down from the >> > kmem_cache_free() call in slab_destroy() to all nc->lock sites below. >> >> That turns out to be _very_ hard. How about something like the following >> untested patch which delays slab_destroy() while we're under nc->lock. >> >> Pekka > > Preliminary tests look good! The test was a ten-hour rcutorture run on > an 8-CPU Power system with a half-second delay between randomly chosen > CPU-hotplug operations. No lockdep warnings. ;-) > > Will keep hammering on it.
Thanks! Please let me know when you're hammered it enough :-). Peter, may I have your ACK or NAK on the patch, please? -- 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/
| |