Re: 6.9.0-rc2+ kernel hangs on boot (bisected, maybe LED related)

From: Johannes Berg
Date: Mon Apr 08 2024 - 12:37:46 EST


On Wed, 2024-04-03 at 12:35 -0700, Ben Greear wrote:
> >
> > So, deadlock I guess....
> >
> >  INFO: task kworker/5:13:648 blocked for more than 180 seconds.
> >       Not tainted 6.9.0-rc2+ #23
> > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> > task:kworker/5:13    state:D stack:0     pid:648   tgid:648   ppid:2      flags:0x00004000
> > Workqueue: events deferred_probe_timeout_work_func
> > Call Trace:
> >  <TASK>
> >  __schedule+0x43d/0xe20
> >  schedule+0x31/0x130
> >  schedule_timeout+0x1b9/0x1d0
> >  ? mark_held_locks+0x49/0x70
> >  ? lockdep_hardirqs_on_prepare+0xd6/0x170
> >  __wait_for_common+0xb9/0x1d0
> >  ? usleep_range_state+0xb0/0xb0
> >  ? __flush_work+0x1ff/0x460
> >  __flush_work+0x287/0x460
> >  ? flush_workqueue_prep_pwqs+0x120/0x120
> >  deferred_probe_timeout_work_func+0x2b/0xa0


This seems ... complex.

Does changing iwlwifi's request_module() to request_module_nowait() in
iwl_req_fw_callback() (only) fix it? I think we can do that, we don't
really care at that point, and the issue here seems to be waiting for it
while also other modules are loading and due to the hashing in
idempotent() (kernel/module/main.c) it can't make progress.

johannes