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

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-lkp,org.kernel.vger.linux-kernel
Message-ID <[email protected]>

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 <[email protected]>
| Closes: https://lore.kernel.org/oe-lkp/[email protected]



[   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/[email protected]



-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.