Re: [Linux v4.2] workqueue: llvmlinux: acpid: BUG: sleeping function called from invalid context at kernel/workqueue.c:2680
From: Sedat Dilek
Date: Sun Sep 27 2015 - 04:11:13 EST
On Fri, Sep 25, 2015 at 3:13 PM, Jiri Kosina <jikos@xxxxxxxxxx> wrote:
> On Fri, 25 Sep 2015, Sedat Dilek wrote:
>
>> > The sequence looks correct. So I don't really see what call sequence could
>> > lead to calling flush_work() from __cancel_work_timer() with IRQs
>> > disabled (which is what your stacktrace is suggesting).
>> >
>> > The fact that this doesn't happen with GCC-compiled kernels is really
>> > suspicious.
>> >
>>
>> Hm, and now?
>
> I guess one of the things to try is to generate ftrace graph trace to see
> what exact function sequence leads to this warning.
>
Which kernel-config settings are helpful for ftrace and tracing at all?
I have here...
CONFIG_IRQSOFF_TRACER=n
...is that helpful to trigger why I see "irqs_disabled"...
[ 23.874836] BUG: sleeping function called from invalid context at
kernel/workqueue.c:2678
[ 23.874902] in_atomic(): 0, irqs_disabled(): 1, pid: 1411, name: acpid
Also independent of this issue I would like to set...
CONFIG_LOCKDEP=y
CONFIG_DEBUG_LOCKDEP=y <--- XXX: New setting
I recall something like a trace/tracing filesystem?
I cannot find or remember the Kconfig - do you?
# CONFIG_BACKTRACE_SELF_TEST is not set
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_DYNAMIC_FTRACE=y
# CONFIG_FENCE_TRACE is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_FTRACE_SYSCALLS=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_TRACER=y
CONFIG_GENERIC_TRACER=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_KPROBES_ON_FTRACE=y
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
# CONFIG_IRQSOFF_TRACER is not set
CONFIG_KPROBES_ON_FTRACE=y
# CONFIG_MMIOTRACE_TEST is not set
CONFIG_MMIOTRACE=y
CONFIG_NOP_TRACER=y
# CONFIG_PSTORE_FTRACE is not set
# CONFIG_RCU_TRACE is not set
CONFIG_SCHED_TRACER=y
CONFIG_STACK_TRACER=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_STACKTRACE=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_TRACE_CLOCK=y
# CONFIG_TRACE_ENUM_MAP_FILE is not set
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_TRACE_IRQFLAGS=y
# CONFIG_TRACEPOINT_BENCHMARK is not set
CONFIG_TRACEPOINTS=y
CONFIG_TRACER_MAX_TRACE=y
# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
CONFIG_TRACER_SNAPSHOT=y
# CONFIG_TRACE_SINK is not set
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
Thanks in advance.
- Sedat -
Attachment:
config-4.3.0-rc2-438.1-llvmlinux-amd64
Description: Binary data