Re: Tracing IRQ-flags

From: Steven Rostedt
Date: Sun Sep 27 2015 - 12:52:04 EST


On Sun, 27 Sep 2015 15:25:41 +0200
Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote:

> Hi Ingo, Hi Steven,
>
> I am still fighting with a llvmlinux problem in the area...
>
> workqueue | hid | irq-flags (hardirqs/sofirqs disabled) | whatever?!
>
> ...(see [0]).
>
> [ 24.705463] BUG: sleeping function called from invalid context at
> kernel/workqueue.c:2680
> [ 24.705576] in_atomic(): 0, irqs_disabled(): 1, pid: 1447, name: acpid
>
> Several people had ideas where to look at - Thanks.
>
> Finally, Jiri encouraged me to try with a ftrace graph trace (see [1]).

Actually, if you are looking for where interrupts were disabled last
before triggering the "sleeping function called from invalid context",
lockdep, not ftrace, would be your better bet.

Enable lockdep with CONFIG_PROVE_LOCKING. It will give you better
information about where the last irq was disabled.

-- Steve

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