[peterz-queue:sched/flat] [sched/eevdf] 2bd899617c: WARNING:possible_circular_locking_dependency_detected

From: kernel test robot

Date: Tue Feb 24 2026 - 02:50:09 EST




Hello,

kernel test robot noticed "WARNING:possible_circular_locking_dependency_detected" on:

commit: 2bd899617ca34f2df57f351bf912d5630958d855 ("sched/eevdf: Move to a single runqueue")
https://git.kernel.org/cgit/linux/kernel/git/peterz/queue.git sched/flat

in testcase: boot

config: x86_64-randconfig-2005-20250721
compiler: gcc-14
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 32G

(please refer to attached dmesg/kmsg for entire log/backtrace)


we run both 2bd899617c and its parent around 500 times, found the issues
happen randomly, but parent keeps clean.

=========================================================================================
tbox_group/testcase/rootfs/kconfig/compiler/sleep:
vm-snb/boot/quantal-i386-core-20190426.cgz/x86_64-randconfig-2005-20250721/gcc-14/1

d80ef4715d611ac0 2bd899617ca34f2df57f351bf91
---------------- ---------------------------
fail:runs %reproduction fail:runs
| | |
:500 13% 64:522 last_state.booting
:500 13% 66:522 last_state.is_incomplete_run
:500 0% 2:522 last_state.running
:500 13% 67:522 dmesg.BUG:workqueue_lockup-pool
:500 0% 1:522 dmesg.RIP:ftrace_likely_update
:500 17% 86:522 dmesg.RIP:pick_task_fair
:500 17% 86:522 dmesg.WARNING:possible_circular_locking_dependency_detected
:500 1% 3:522 dmesg.WARNING:possible_circular_locking_dependency_detected_modprobe_is_trying_to_acquire_lock:at:console_lock_spinning_enable_but_task_is_already_holding_lock:at:raw_spin_rq_lock_nested
:500 0% 1:522 dmesg.WARNING:possible_circular_locking_dependency_detected_rb_consumer_is_trying_to_acquire_lock:at:console_lock_spinning_enable_but_task_is_already_holding_lock:at:raw_spin_rq_lock_nested
:500 5% 27:522 dmesg.WARNING:possible_circular_locking_dependency_detected_rcu_preempt_is_trying_to_acquire_lock:at:console_lock_spinning_enable_but_task_is_already_holding_lock:at:raw_spin_rq_lock_nested
:500 11% 55:522 dmesg.WARNING:possible_circular_locking_dependency_detected_udevd_is_trying_to_acquire_lock:at:console_lock_spinning_enable_but_task_is_already_holding_lock:at:raw_spin_rq_lock_nested
:500 17% 86:522 dmesg.boot_failures


If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-lkp/202602240818.6fd9e413-lkp@xxxxxxxxx



[ 22.650678][ T239] ------------[ cut here ]------------
[ 22.650872][ T239]
[ 22.650880][ T239] ======================================================
[ 22.650888][ T239] WARNING: possible circular locking dependency detected
[ 22.650899][ T239] 6.19.0-09429-g2bd899617ca3 #1 Tainted: G T
[ 22.650912][ T239] ------------------------------------------------------
[ 22.650918][ T239] udevd/239 is trying to acquire lock:
[ 22.650927][ T239] ffffffff84fe5fc0 (console_owner){..-.}-{0:0}, at: console_lock_spinning_enable (kernel/printk/printk.c:1902 (discriminator 1))
[ 22.650984][ T239]
[ 22.650984][ T239] but task is already holding lock:
[ 22.650990][ T239] ffffffff84fb67e0 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested (kernel/sched/core.c:649)
[ 22.651041][ T239]
[ 22.651041][ T239] which lock already depends on the new lock.
[ 22.651041][ T239]
[ 22.651047][ T239]
[ 22.651047][ T239] the existing dependency chain (in reverse order) is:
[ 22.651054][ T239]
[ 22.651054][ T239] -> #4 (&rq->__lock){-.-.}-{2:2}:
[ 22.651081][ T239] validate_chain (kernel/locking/lockdep.c:3285 kernel/locking/lockdep.c:3908)
[ 22.651101][ T239] __lock_acquire (kernel/locking/lockdep.c:5237 (discriminator 1))
[ 22.651121][ T239] lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870)
[ 22.651139][ T239] _raw_spin_lock_nested (kernel/locking/spinlock.c:379)
[ 22.651168][ T239] raw_spin_rq_lock_nested (kernel/sched/core.c:649)
[ 22.651192][ T239] raw_spin_rq_lock (kernel/sched/sched.h:1622)
[ 22.651216][ T239] ___task_rq_lock (kernel/sched/sched.h:2403 (discriminator 2) kernel/sched/core.c:726 (discriminator 2))
[ 22.651240][ T239] wake_up_new_task (kernel/sched/core.c:4826)
[ 22.651258][ T239] kernel_clone (kernel/fork.c:2688 (discriminator 1))
[ 22.651275][ T239] user_mode_thread (kernel/fork.c:2722)
[ 22.651292][ T239] rest_init (init/main.c:725)
[ 22.651308][ T239] start_kernel (init/main.c:1210)
[ 22.651330][ T239] x86_64_start_reservations (arch/x86/kernel/head64.c:310)
[ 22.651353][ T239] x86_64_start_kernel (??:?)
[ 22.651374][ T239] common_startup_64 (arch/x86/kernel/head_64.S:419)
[ 22.651401][ T239]
[ 22.651401][ T239] -> #3 (&p->pi_lock){-.-.}-{2:2}:
[ 22.651429][ T239] validate_chain (kernel/locking/lockdep.c:3285 kernel/locking/lockdep.c:3908)
[ 22.651448][ T239] __lock_acquire (kernel/locking/lockdep.c:5237 (discriminator 1))
[ 22.651467][ T239] lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870)
[ 22.651486][ T239] _raw_spin_lock_irqsave (include/linux/spinlock_api_smp.h:133 kernel/locking/spinlock.c:162)
[ 22.651513][ T239] try_to_wake_up (include/linux/spinlock.h:570 kernel/sched/core.c:4176)
[ 22.651530][ T239] default_wake_function (kernel/sched/core.c:7285)
[ 22.651548][ T239] woken_wake_function (kernel/sched/wait.c:464)
[ 22.651573][ T239] __wake_up_common (kernel/sched/wait.c:109)
[ 22.651595][ T239] __wake_up_common_lock (include/linux/spinlock.h:407 kernel/sched/wait.c:127)
[ 22.651633][ T239] __wake_up (kernel/sched/wait.c:147)
[ 22.651653][ T239] tty_wakeup (drivers/tty/tty_io.c:520)
[ 22.651674][ T239] n_tty_check_unthrottle (drivers/tty/n_tty.c:262)
[ 22.651699][ T239] n_tty_read (drivers/tty/n_tty.c:2279)
[ 22.651723][ T239] iterate_tty_read (drivers/tty/tty_io.c:848)
[ 22.651743][ T239] tty_read (drivers/tty/tty_io.c:922)
[ 22.651762][ T239] vfs_read (fs/read_write.c:494 (discriminator 1) fs/read_write.c:574 (discriminator 1))
[ 22.651789][ T239] ksys_read (fs/read_write.c:718)
[ 22.651813][ T239] __ia32_sys_read (fs/read_write.c:724)
[ 22.651837][ T239] ia32_sys_call (kbuild/obj/consumer/x86_64-randconfig-2005-20250721/./arch/x86/include/generated/asm/syscalls_32.h:4)
[ 22.651854][ T239] do_int80_emulation (arch/x86/entry/syscall_32.c:83 arch/x86/entry/syscall_32.c:172)
[ 22.651876][ T239] asm_int80_emulation (arch/x86/include/asm/idtentry.h:569)
[ 22.651894][ T239]
[ 22.651894][ T239] -> #2 (&tty->write_wait){-...}-{3:3}:
[ 22.651923][ T239] validate_chain (kernel/locking/lockdep.c:3285 kernel/locking/lockdep.c:3908)
[ 22.651942][ T239] __lock_acquire (kernel/locking/lockdep.c:5237 (discriminator 1))
[ 22.651961][ T239] lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870)
[ 22.651979][ T239] _raw_spin_lock_irqsave (include/linux/spinlock_api_smp.h:133 kernel/locking/spinlock.c:162)
[ 22.652007][ T239] __wake_up_common_lock (kernel/sched/wait.c:125)
[ 22.652028][ T239] __wake_up (kernel/sched/wait.c:147)
[ 22.652048][ T239] tty_wakeup (drivers/tty/tty_io.c:520)
[ 22.652067][ T239] tty_port_default_wakeup (include/linux/tty_port.h:276 drivers/tty/tty_port.c:66)
[ 22.652087][ T239] tty_port_tty_wakeup (drivers/tty/tty_port.c:405)
[ 22.652104][ T239] uart_write_wakeup (drivers/tty/serial/serial_core.c:122)
[ 22.652129][ T239] serial8250_tx_chars (drivers/tty/serial/8250/8250_port.c:1726)
[ 22.652156][ T239] serial8250_handle_irq (drivers/tty/serial/8250/8250_port.c:1827)
[ 22.652183][ T239] serial8250_default_handle_irq (drivers/tty/serial/8250/8250.h:182 (discriminator 1) drivers/tty/serial/8250/8250_port.c:1843 (discriminator 1))
[ 22.652210][ T239] serial8250_interrupt (drivers/tty/serial/8250/8250_core.c:86 (discriminator 1))
[ 22.652231][ T239] __handle_irq_event_percpu (kernel/irq/handle.c:209)
[ 22.652258][ T239] handle_irq_event_percpu (kernel/irq/handle.c:248)
[ 22.652284][ T239] handle_irq_event (kernel/irq/handle.c:265)
[ 22.652310][ T239] handle_edge_irq (kernel/irq/chip.c:857)
[ 22.652330][ T239] __common_interrupt (include/linux/irqdesc.h:187 arch/x86/kernel/irq.c:262 arch/x86/kernel/irq.c:318 arch/x86/kernel/irq.c:333)
[ 22.652353][ T239] common_interrupt (arch/x86/kernel/irq.c:326 (discriminator 35))
[ 22.652375][ T239] asm_common_interrupt (arch/x86/include/asm/idtentry.h:569)
[ 22.652392][ T239] _raw_spin_unlock_irqrestore (include/linux/spinlock_api_smp.h:179 (discriminator 1) kernel/locking/spinlock.c:194 (discriminator 1))
[ 22.652409][ T239] uart_port_unlock_irqrestore (include/linux/serial_core.h:789)
[ 22.652436][ T239] uart_port_unlock_deref (drivers/tty/serial/serial_core.c:92)
[ 22.652462][ T239] uart_write (drivers/tty/serial/serial_core.c:635)
[ 22.652479][ T239] process_output_block (drivers/tty/n_tty.c:557)
[ 22.652502][ T239] n_tty_write (drivers/tty/n_tty.c:2367)
[ 22.652526][ T239] iterate_tty_write (drivers/tty/tty_io.c:1007)
[ 22.652548][ T239] file_tty_write+0x240/0x280
[ 22.652570][ T239] tty_write (drivers/tty/tty_io.c:1103)
[ 22.652591][ T239] vfs_write (fs/read_write.c:596 (discriminator 1) fs/read_write.c:688 (discriminator 1))
[ 22.652615][ T239] ksys_write (fs/read_write.c:741)
[ 22.652639][ T239] __ia32_sys_write (fs/read_write.c:748)
[ 22.652664][ T239] ia32_sys_call (kbuild/obj/consumer/x86_64-randconfig-2005-20250721/./arch/x86/include/generated/asm/syscalls_32.h:5)
[ 22.652680][ T239] do_int80_emulation (arch/x86/entry/syscall_32.c:83 arch/x86/entry/syscall_32.c:172)
[ 22.652701][ T239] asm_int80_emulation (arch/x86/include/asm/idtentry.h:569)
[ 22.652718][ T239]
[ 22.652718][ T239] -> #1 (&port_lock_key){-.-.}-{3:3}:
[ 22.652746][ T239] validate_chain (kernel/locking/lockdep.c:3285 kernel/locking/lockdep.c:3908)
[ 22.652765][ T239] __lock_acquire (kernel/locking/lockdep.c:5237 (discriminator 1))
[ 22.652784][ T239] lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870)
[ 22.652802][ T239] _raw_spin_lock_irqsave (include/linux/spinlock_api_smp.h:133 kernel/locking/spinlock.c:162)
[ 22.652830][ T239] uart_port_lock_irqsave (include/linux/serial_core.h:717 (discriminator 2))
[ 22.652853][ T239] serial8250_console_write (drivers/tty/serial/8250/8250_port.c:3294)
[ 22.652870][ T239] univ8250_console_write (drivers/tty/serial/8250/8250_core.c:399)
[ 22.652891][ T239] console_emit_next_record (kernel/printk/printk.c:3100 (discriminator 1) kernel/printk/printk.c:3184 (discriminator 1))
[ 22.652911][ T239] console_flush_all (kernel/printk/printk.c:3270 kernel/printk/printk.c:3343)
[ 22.652929][ T239] console_unlock (kernel/printk/printk.c:3374 kernel/printk/printk.c:3413)
[ 22.652947][ T239] vprintk_emit (kernel/printk/printk.c:2480)
[ 22.652965][ T239] vprintk_default (kernel/printk/printk.c:2495)
[ 22.652984][ T239] vprintk (kernel/printk/printk_safe.c:83)
[ 22.653003][ T239] _printk (kernel/printk/printk.c:2499)
[ 22.653025][ T239] register_console (kernel/printk/printk.c:4225)
[ 22.653044][ T239] univ8250_console_init (drivers/tty/serial/8250/8250_core.c:516)
[ 22.653070][ T239] console_init (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/jump_label.h:262 include/trace/events/initcall.h:48 kernel/printk/printk.c:4424)
[ 22.653094][ T239] start_kernel (init/main.c:1148)
[ 22.653110][ T239] x86_64_start_reservations (arch/x86/kernel/head64.c:310)
[ 22.653131][ T239] x86_64_start_kernel (??:?)
[ 22.653152][ T239] common_startup_64 (arch/x86/kernel/head_64.S:419)
[ 22.653177][ T239]
[ 22.653177][ T239] -> #0 (console_owner){..-.}-{0:0}:
[ 22.653205][ T239] check_noncircular (kernel/locking/lockdep.c:2179)
[ 22.653224][ T239] check_prev_add (kernel/locking/lockdep.c:3166 (discriminator 2))
[ 22.653242][ T239] validate_chain (kernel/locking/lockdep.c:3285 kernel/locking/lockdep.c:3908)
[ 22.653260][ T239] __lock_acquire (kernel/locking/lockdep.c:5237 (discriminator 1))
[ 22.653279][ T239] lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870)
[ 22.653297][ T239] console_lock_spinning_enable (kernel/printk/printk.c:1903)
[ 22.653316][ T239] console_emit_next_record (kernel/printk/printk.c:3180)
[ 22.653336][ T239] console_flush_all (kernel/printk/printk.c:3270 kernel/printk/printk.c:3343)
[ 22.653354][ T239] console_unlock (kernel/printk/printk.c:3374 kernel/printk/printk.c:3413)
[ 22.653372][ T239] vprintk_emit (kernel/printk/printk.c:2480)
[ 22.653390][ T239] vprintk_default (kernel/printk/printk.c:2495)
[ 22.653409][ T239] vprintk (kernel/printk/printk_safe.c:83)
[ 22.653427][ T239] _printk (kernel/printk/printk.c:2499)
[ 22.653450][ T239] __report_bug (lib/bug.c:244)
[ 22.653472][ T239] report_bug (include/linux/context_tracking.h:159 lib/bug.c:282)
[ 22.653493][ T239] handle_bug (arch/x86/kernel/traps.c:435)
[ 22.653513][ T239] exc_invalid_op (arch/x86/kernel/traps.c:489 (discriminator 1))
[ 22.653534][ T239] asm_exc_invalid_op (arch/x86/include/asm/idtentry.h:569)
[ 22.653551][ T239] pick_task_fair (kernel/sched/fair.c:9022 (discriminator 1))
[ 22.653577][ T239] __pick_next_task+0x95/0x200
[ 22.653600][ T239] __schedule (kernel/sched/core.c:6887)
[ 22.653621][ T239] schedule (kernel/sched/core.c:7028 kernel/sched/core.c:7042)
[ 22.653641][ T239] schedule_hrtimeout_range_clock (kernel/time/sleep_timeout.c:208)
[ 22.653668][ T239] schedule_hrtimeout_range (kernel/time/sleep_timeout.c:265)
[ 22.653695][ T239] ep_poll (fs/eventpoll.c:2027 (discriminator 2))
[ 22.653714][ T239] do_epoll_wait (fs/eventpoll.c:2461)
[ 22.653732][ T239] __do_sys_epoll_wait (fs/eventpoll.c:2466)
[ 22.653751][ T239] __ia32_sys_epoll_wait (fs/eventpoll.c:2464)
[ 22.653770][ T239] ia32_sys_call (kbuild/obj/consumer/x86_64-randconfig-2005-20250721/./arch/x86/include/generated/asm/syscalls_32.h:257)
[ 22.653786][ T239] do_int80_emulation (arch/x86/entry/syscall_32.c:83 arch/x86/entry/syscall_32.c:172)
[ 22.653807][ T239] asm_int80_emulation (arch/x86/include/asm/idtentry.h:569)
[ 22.653824][ T239]
[ 22.653824][ T239] other info that might help us debug this:
[ 22.653824][ T239]
[ 22.653830][ T239] Chain exists of:


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20260224/202602240818.6fd9e413-lkp@xxxxxxxxx



--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki