Re: 2.6.17-rc4-mm3-lockdep BUG: possible deadlock detected!

From: Andrew Morton
Date: Mon May 29 2006 - 14:44:53 EST


On Mon, 29 May 2006 20:32:47 +0200
"Michal Piotrowski" <michal.k.k.piotrowski@xxxxxxxxx> wrote:

> I get this with Ingo's lockdep patch from
> http://people.redhat.com/mingo/generic-irq-subsystem/
>
> ====================================
> [ BUG: possible deadlock detected! ]
> ------------------------------------
> modprobe/592 is trying to acquire lock:
> (&grp->list_mutex){----}, at: [<fd9ee555>]
> snd_seq_port_connect+0xc0/0x337 [snd_seq]
>
> but task is already holding lock:
> (&grp->list_mutex){----}, at: [<fd9ee4fb>]
> snd_seq_port_connect+0x66/0x337 [snd_seq]
>
> which could potentially lead to deadlocks!
>
> other info that might help us debug this:
> 1 locks held by modprobe/592:
> #0: (&grp->list_mutex){----}, at: [<fd9ee4fb>]
> snd_seq_port_connect+0x66/0x337 [snd_seq]

yes,

down_write(&src->list_mutex);
down_write(&dest->list_mutex);

I wonder if there's anything which prevents another task from concurrently
coming in and trying to perform the opposite connection and causing a
deadlock.

The way we normally handle this is

if (src < dest) {
down_write(&src->list_mutex);
down_write(&dest->list_mutex);
} else {
down_write(&dest->list_mutex);
down_write(&src->list_mutex);
}
-
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/