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: Tue, 11 Nov 2008 13:01:11 +0100 Message-ID: <20081111120111.GA3503@redhat.com> References: <20081110073047.GA28578@elte.hu> <20081110132208.GB10294@redhat.com> <20081111105706.6174.KOSAKI.MOTOHIRO@jp.fujitsu.com> Mime-Version: 1.0 Return-path: Content-Disposition: inline In-Reply-To: <20081111105706.6174.KOSAKI.MOTOHIRO-+CUm20s59erQFUHtdCDX3A@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: KOSAKI Motohiro Cc: Ingo Molnar , "Rafael J. Wysocki" , Dmitry Torokhov , Dmitry Adamushko , Max Krasnyansky , Linux Kernel Mailing List , Kernel Testers List On 11/11, KOSAKI Motohiro wrote: > > it seem simple ABBA lock, right? > > -> #4 (&dev->mutex){--..}: > [] validate_chain+0x831/0xaa2 > [] __lock_acquire+0x67a/0x6e0 > [] lock_acquire+0x5b/0x81 > [] mutex_lock_interruptible_nested+0xde/0x2f8 > [] input_register_handle+0x26/0x7a dev->mutex ^^^^^^^^^^ > [] kbd_connect+0x64/0x8d > [] input_attach_handler+0x38/0x6b > [] input_register_handler+0x74/0xc3 input_mutex > [] kbd_init+0x66/0x91 > [] vty_init+0xce/0xd7 > [] tty_init+0x193/0x197 > [] do_one_initcall+0x42/0x133 > [] kernel_init+0x16e/0x1d5 > [] kernel_thread_helper+0x7/0x10 > [] 0xffffffff > > -> #3 (input_mutex){--..}: > [] validate_chain+0x831/0xaa2 > [] __lock_acquire+0x67a/0x6e0 > [] lock_acquire+0x5b/0x81 > [] mutex_lock_interruptible_nested+0xde/0x2f8 > [] input_register_device+0xff/0x17f input_mutex > [] acpi_button_add+0x31e/0x429 > [] acpi_device_probe+0x43/0xde > [] driver_probe_device+0xa5/0x120 > [] __driver_attach+0x42/0x64 dev->sem ^^^^^^^^ input_dev->mutex != device->sem > ... > [] do_async_initcalls+0x1a/0x2a > [] run_workqueue+0xc3/0x193 > [] worker_thread+0xbb/0xc7 > [] kthread+0x40/0x66 What is the kernel version, btw? I can't find do_async_initcalls in 2.6.27 or 2.6.28. Anyway, this really looks like lockdep bug to me. Even if we really have the circular dependency (will try to grep more) I can't understand why lockdep claims that polldev_mutex depends on cpu_add_remove_lock. Oleg.