mirror of
https://github.com/torvalds/linux.git
synced 2026-06-11 16:13:03 +02:00
Assume p is console task, try_to_wake_up(p) will hold p->pi_lock, if printk is called in try_to_wake_up(), then printk will call try_to_wake_up(p) again which cause deadlock on p->pi_lock. deadlock stack: Thread #2 2 (Name: cpu1, EL2H) (Suspended : Container) queued_spin_lock_slowpath() at qspinlock.c:382 0xffffffc0101359a4 queued_spin_lock() at qspinlock.h:85 0xffffffc0111ef72c do_raw_spin_lock_flags() at spinlock.h:195 0xffffffc0111ef72c __raw_spin_lock_irqsave() at spinlock_api_smp.h:119 0xffffffc0111ef72c _raw_spin_lock_irqsave() at spinlock.c:159 0xffffffc0111ef72c try_to_wake_up() at core.c:3,070 0xffffffc0101059c0 wake_up_process() at core.c:3,275 0xffffffc010103bcc console_write() at rk_fiq_debugger.c:337 0xffffffc010732a50 fiq_debugger_console_write() at fiq_debugger.c:1,169 0xffffffc010d60004 call_console_drivers() at printk.c:1,912 0xffffffc01013f2d4 console_unlock() at printk.c:2,538 0xffffffc01013f2d4 vprintk_emit() at printk.c:2,061 0xffffffc01013ed48 vprintk_default() at printk.c:2,078 0xffffffc01013f698 vprintk_func() at printk_safe.c:401 0xffffffc010142304 printk() at printk.c:2,109 0xffffffc0111e50a4 report_bug() at bug.c:193 0xffffffc01063e258 bug_handler() at traps.c:907 0xffffffc01009415c call_break_hook() at debug-monitors.c:325 0xffffffc010085a40 brk_handler() at debug-monitors.c:332 0xffffffc010085a40 do_debug_exception() at fault.c:964 0xffffffc0100af2bc el1_dbg() at entry-common.c:185 0xffffffc0111e6ba8 el1_sync_handler() at entry-common.c:222 0xffffffc0111e6a04 el1_sync() at 0xffffffc01008240c brk() WARN_ON_ONCE() ttwu_queue_wakelist() try_to_wake_up() hrtimer_wakeup() run_hrtimer() usleep_range() console_put() console_thread() Change-Id: I76dac4e2a76abb1f75e66677fb7ece2b52a83f25 Signed-off-by: Liang Chen <cl@rock-chips.com> |
||
|---|---|---|
| .. | ||
| actions | ||
| amlogic | ||
| aspeed | ||
| atmel | ||
| bcm | ||
| dove | ||
| fsl | ||
| gemini | ||
| imx | ||
| ixp4xx | ||
| kendryte | ||
| lantiq | ||
| mediatek | ||
| qcom | ||
| renesas | ||
| rockchip | ||
| samsung | ||
| sifive | ||
| sunxi | ||
| tegra | ||
| ti | ||
| ux500 | ||
| versatile | ||
| xilinx | ||
| zte | ||
| Kconfig | ||
| Makefile | ||