Re: [PATCH] debug workqueue flushing deadlocks with lockdep

From: Ingo Molnar
Date: Thu Jul 05 2007 - 04:48:27 EST



* Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote:

> This patch adds a fake lock to each workqueue in order to debug things
> where you have something like
>
> my_function() -> lock(); ...; flush_workqueue(); ...
> vs
> run_workqueue() -> my_work() -> ...; lock(); ...
>
> which can obviously deadlock if my_work is scheduled when my_function()
> is invoked (but hasn't locked yet.)
>
> Signed-off-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>

i'm still impressed by the elegancy of your idea :)

Acked-by: Ingo Molnar <mingo@xxxxxxx>

btw., small patch format comment: it would be useful (in the future) to
send such combined patches as:

[patch 0/2] general description
[patch 1/2] first patch
[patch 2/2] second patch

Ingo
-
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/