From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleg Nesterov Subject: Re: [Bug #11380] lockdep warning: cpu_add_remove_lock at:cpu_maps_update_begin+0x14/0x16 Date: Mon, 10 Nov 2008 14:22:08 +0100 Message-ID: <20081110132208.GB10294@redhat.com> References: <4B0Eqx89uNG.A.J5D.9b1FJB@chimera> <20081110073047.GA28578@elte.hu> Mime-Version: 1.0 Return-path: Content-Disposition: inline In-Reply-To: <20081110073047.GA28578-X9Un+BFzKDI@public.gmane.org> Sender: kernel-testers-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Ingo Molnar Cc: "Rafael J. Wysocki" , Dmitry Torokhov , Dmitry Adamushko , Max Krasnyansky , Linux Kernel Mailing List , Kernel Testers List On 11/10, Ingo Molnar wrote: > > * Rafael J. Wysocki wrote: > > > This message has been generated automatically as a part of a report > > of regressions introduced between 2.6.26 and 2.6.27. > > > > The following bug entry is on the current list of known regressions > > introduced between 2.6.26 and 2.6.27. Please verify if it still should > > be listed and let me know (either way). > > > > Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=11380 > > Subject : lockdep warning: cpu_add_remove_lock at:cpu_maps_update_begin+0x14/0x16 > > Submitter : Ingo Molnar > > Date : 2008-08-20 6:44 (82 days old) > > References : http://marc.info/?l=linux-kernel&m=121921480931970&w=4 > > had a quick look again: i believe this one still triggers, and it's > caused by some interaction between input code and workqueue code. I > think it started triggering when Oleg's workqueue annotation patches > went upstream: > > 6af8bf3: workqueues: add comments to __create_workqueue_key() > 8448502: workqueues: do CPU_UP_CANCELED if CPU_UP_PREPARE fails > 8de6d30: workqueues: schedule_on_each_cpu() can use schedule_work_on() > ef1ca23: workqueues: queue_work() can use queue_work_on() > a67da70: workqueues: lockdep annotations for flush_work() > 3da1c84: workqueues: make get_online_cpus() useable for work->func() > 8616a89: workqueues: schedule_on_each_cpu: use flush_work() > db70089: workqueues: implement flush_work() > 1a4d9b0: workqueues: insert_work: use "list_head *" instead of "int tail" "make get_online_cpus() useable for work->func()" changed the locking. destroy_workqueue() was changed to take cpu_maps_update_begin() instead of get_online_cpus(). Other patches can't make any difference afaics. Currently I don't understand why lockdep complains, will try to do more grepping later. Oleg.