Re: mmotm 2010-02-10 - lockdep whinge in ACPI code

From: Dave Young
Date: Thu Feb 11 2010 - 21:11:38 EST


On Thu, Feb 11, 2010 at 1:26 PM, Andrew Morton
<akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, 11 Feb 2010 00:11:44 -0500 Valdis.Kletnieks@xxxxxx wrote:
>
>> On Wed, 10 Feb 2010 16:17:41 PST, akpm@xxxxxxxxxxxxxxxxxxxx said:
>> > The mm-of-the-moment snapshot 2010-02-10-16-17 has been uploaded to
>> >
>> > Â Âhttp://userweb.kernel.org/~akpm/mmotm/
>>
>> Seen at boot:
>>
>> [ Â Â0.207242] ACPI: (supports S0 S5)
>> [ Â Â0.207257] ACPI: Using IOAPIC for interrupt routing
>> [ Â Â0.335315]
>> [ Â Â0.335316] =============================================
>> [ Â Â0.335483] [ INFO: possible recursive locking detected ]
>> [ Â Â0.335572] 2.6.33-rc7-mmotm0210 #1
>> [ Â Â0.335658] ---------------------------------------------
>> [ Â Â0.335746] swapper/1 is trying to acquire lock:
>> [ Â Â0.335834] Â(&dev->mutex){+.+...}, at: [<ffffffff812eb521>] __driver_attach+0x47/0x80
>> [ Â Â0.335999]
>> [ Â Â0.335999] but task is already holding lock:
>> [ Â Â0.335999] Â(&dev->mutex){+.+...}, at: [<ffffffff812eb513>] __driver_attach+0x39/0x80
>> [ Â Â0.335999]
>> [ Â Â0.335999] other info that might help us debug this:
>> [ Â Â0.335999] 1 lock held by swapper/1:
>> [ Â Â0.335999] Â#0: Â(&dev->mutex){+.+...}, at: [<ffffffff812eb513>] __driver_attach+0x39/0x80
>> [ Â Â0.335999]
>> [ Â Â0.335999] stack backtrace:
>> [ Â Â0.335999] Pid: 1, comm: swapper Not tainted 2.6.33-rc7-mmotm0210 #1
>> [ Â Â0.335999] Call Trace:
>> [ Â Â0.335999] Â[<ffffffff81063b47>] __lock_acquire+0xc77/0xcee
>> [ Â Â0.335999] Â[<ffffffff81061fad>] ? mark_lock+0x2d/0x22c
>> [ Â Â0.335999] Â[<ffffffff812eb521>] ? __driver_attach+0x47/0x80
>> [ Â Â0.335999] Â[<ffffffff81063c89>] lock_acquire+0xcb/0xe8
>> [ Â Â0.335999] Â[<ffffffff812eb521>] ? __driver_attach+0x47/0x80
>> [ Â Â0.335999] Â[<ffffffff810621fe>] ? mark_held_locks+0x52/0x70
>> [ Â Â0.335999] Â[<ffffffff81568c9d>] __mutex_lock_common+0x5c/0x5aa
>> [ Â Â0.335999] Â[<ffffffff812eb521>] ? __driver_attach+0x47/0x80
>> [ Â Â0.335999] Â[<ffffffff815583f8>] ? klist_next+0x24/0xd7
>> [ Â Â0.335999] Â[<ffffffff812eb521>] ? __driver_attach+0x47/0x80
>> [ Â Â0.335999] Â[<ffffffff812eb4da>] ? __driver_attach+0x0/0x80
>> [ Â Â0.335999] Â[<ffffffff81569291>] mutex_lock_nested+0x34/0x39
>> [ Â Â0.335999] Â[<ffffffff812eb521>] __driver_attach+0x47/0x80
>> [ Â Â0.335999] Â[<ffffffff812eb4da>] ? __driver_attach+0x0/0x80
>> [ Â Â0.335999] Â[<ffffffff812eb4da>] ? __driver_attach+0x0/0x80
>> [ Â Â0.335999] Â[<ffffffff812eaa43>] bus_for_each_dev+0x54/0x89
>> [ Â Â0.335999] Â[<ffffffff812eb28a>] driver_attach+0x19/0x1b
>> [ Â Â0.335999] Â[<ffffffff812eaed5>] bus_add_driver+0xb4/0x203
>> [ Â Â0.335999] Â[<ffffffff812eb833>] driver_register+0xb8/0x129
>> [ Â Â0.335999] Â[<ffffffff81231604>] acpi_bus_register_driver+0x3e/0x40
>> [ Â Â0.335999] Â[<ffffffff81b45094>] acpi_ec_init+0x37/0x55
>> [ Â Â0.335999] Â[<ffffffff81b44ef1>] acpi_init+0x115/0x12a
>> [ Â Â0.335999] Â[<ffffffff81b44ddc>] ? acpi_init+0x0/0x12a
>> [ Â Â0.335999] Â[<ffffffff810001ef>] do_one_initcall+0x59/0x14e
>> [ Â Â0.335999] Â[<ffffffff81b26655>] kernel_init+0x14d/0x1a3
>> [ Â Â0.335999] Â[<ffffffff81003354>] kernel_thread_helper+0x4/0x10
>> [ Â Â0.335999] Â[<ffffffff8156b0c0>] ? restore_args+0x0/0x30
>> [ Â Â0.335999] Â[<ffffffff81b26508>] ? kernel_init+0x0/0x1a3
>> [ Â Â0.335999] Â[<ffffffff81003350>] ? kernel_thread_helper+0x0/0x10
>> [ Â Â0.340036] ACPI: EC: GPE = 0x11, I/O: command/status = 0x934, data = 0x930
>>
>
> driver_attach() got converted from sem to mutex in linux-next. ÂSo this
> is probably an old bug which just got exposed.

Here is the possible fix for this:
http://lkml.org/lkml/2010/2/8/161

>
> Or maybe not. ÂThomas, has that patch been in some other tree (rt?) for
> a while? ÂIf so, was this bug observed in that tree? ÂIf not, it might
> be new.
>
> --
> 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/
>



--
Regards
dave
--
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/