Messages in this thread | | | Date | Thu, 01 Apr 2010 15:28:04 +0900 | From | Tejun Heo <> | Subject | Re: [Patch] workqueue: move lockdep annotations up to destroy_workqueue() |
| |
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
| |