Re: [Patch] workqueue: move lockdep annotations up to destroy_workqueue()

From: Tejun Heo
Date: Thu Apr 01 2010 - 02:29:04 EST


Hello,

On 04/01/2010 03:05 PM, Cong Wang wrote:
>> Hmm, it looks like I misunderstand lock_map_acquire()? From the
>> changelog, I thought it was added to complain its caller is holding
>> a lock when invoking it, thus cpu_add_remove_lock is not an
>> exception.

Oh, that just tells the code is trying to grab a pseudo lock. It's
not really a lock but to lockdep it looks like one and lockdep can use
it to compute problem cases.

> Oh, I see, wq->lockdep_map is acquired again in run_workqueue(), so
> I was wrong. :) I think you and Oleg are right, the lockdep warning
> is not irrelevant.

Yeah, I think the circular dependency you reported on wq->lockdep_map
is completed only through dependency through rtnl_mutex. If you fix
rtnl_mutex locking, it should go away too.

Thanks.

--
tejun
--
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/