====================================================== WARNING: possible circular locking dependency detected 5.1.0-rc7+ #1 Not tainted ------------------------------------------------------ syz-executor.4/7737 is trying to acquire lock: 000000007f3742d9 ((console_sem).lock){-.-.}, at: down_trylock+0x13/0x70 kernel/locking/semaphore.c:136 but task is already holding lock: 000000004eecac04 (&base->lock){..-.}, at: __mod_timer kernel/time/timer.c:1033 [inline] 000000004eecac04 (&base->lock){..-.}, at: mod_timer kernel/time/timer.c:1101 [inline] 000000004eecac04 (&base->lock){..-.}, at: add_timer+0x2c6/0xbe0 kernel/time/timer.c:1137 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #3 (&base->lock){..-.}: lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:4211 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x95/0xcd kernel/locking/spinlock.c:152 lock_timer_base+0x56/0x1b0 kernel/time/timer.c:937 __mod_timer kernel/time/timer.c:1009 [inline] mod_timer kernel/time/timer.c:1101 [inline] add_timer+0x108/0xbe0 kernel/time/timer.c:1137 __queue_delayed_work+0x1af/0x270 kernel/workqueue.c:1649 queue_delayed_work_on+0x19a/0x200 kernel/workqueue.c:1674 queue_delayed_work include/linux/workqueue.h:509 [inline] schedule_delayed_work include/linux/workqueue.h:610 [inline] psi_task_change+0x409/0x610 kernel/sched/psi.c:546 psi_enqueue kernel/sched/stats.h:82 [inline] enqueue_task kernel/sched/core.c:770 [inline] activate_task+0x1f8/0x470 kernel/sched/core.c:794 wake_up_new_task+0x50d/0xbd0 kernel/sched/core.c:2469 _do_fork+0x34f/0xfd0 kernel/fork.c:2251 kernel_thread+0x34/0x40 kernel/fork.c:2285 rest_init+0x28/0x37b init/main.c:416 arch_call_rest_init+0xe/0x1b start_kernel+0x816/0x84f init/main.c:747 x86_64_start_reservations+0x29/0x2b arch/x86/kernel/head64.c:470 x86_64_start_kernel+0x77/0x7b arch/x86/kernel/head64.c:451 secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:243 -> #2 (&rq->lock){-.-.}: lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:4211 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:144 rq_lock kernel/sched/sched.h:1168 [inline] task_fork_fair+0x6a/0x520 kernel/sched/fair.c:10207 sched_fork+0x3b2/0x900 kernel/sched/core.c:2405 copy_process.part.0+0x188c/0x7980 kernel/fork.c:1886 copy_process kernel/fork.c:1709 [inline] _do_fork+0x257/0xfd0 kernel/fork.c:2226 kernel_thread+0x34/0x40 kernel/fork.c:2285 rest_init+0x28/0x37b init/main.c:416 arch_call_rest_init+0xe/0x1b start_kernel+0x816/0x84f init/main.c:747 x86_64_start_reservations+0x29/0x2b arch/x86/kernel/head64.c:470 x86_64_start_kernel+0x77/0x7b arch/x86/kernel/head64.c:451 secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:243 -> #1 (&p->pi_lock){-.-.}: lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:4211 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x95/0xcd kernel/locking/spinlock.c:152 try_to_wake_up+0x8f/0x1000 kernel/sched/core.c:2008 wake_up_process+0x10/0x20 kernel/sched/core.c:2172 __up.isra.0+0x136/0x1a0 kernel/locking/semaphore.c:262 up+0x9c/0xe0 kernel/locking/semaphore.c:187 __up_console_sem+0xb7/0x1c0 kernel/printk/printk.c:237 console_unlock+0x665/0xed0 kernel/printk/printk.c:2470 vprintk_emit+0x280/0x6d0 kernel/printk/printk.c:1975 vprintk_default+0x28/0x30 kernel/printk/printk.c:2002 vprintk_func+0x7e/0x189 kernel/printk/printk_safe.c:398 printk+0xba/0xed kernel/printk/printk.c:2035 check_stack_usage kernel/exit.c:764 [inline] do_exit.cold+0x5d/0x254 kernel/exit.c:926 do_group_exit+0x135/0x370 kernel/exit.c:980 __do_sys_exit_group kernel/exit.c:991 [inline] __se_sys_exit_group kernel/exit.c:989 [inline] __x64_sys_exit_group+0x44/0x50 kernel/exit.c:989 do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe -> #0 ((console_sem).lock){-.-.}: check_prevs_add kernel/locking/lockdep.c:2333 [inline] validate_chain kernel/locking/lockdep.c:2714 [inline] __lock_acquire+0x239c/0x3fb0 kernel/locking/lockdep.c:3701 lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:4211 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x95/0xcd kernel/locking/spinlock.c:152 down_trylock+0x13/0x70 kernel/locking/semaphore.c:136 __down_trylock_console_sem+0xa8/0x210 kernel/printk/printk.c:220 console_trylock+0x15/0xa0 kernel/printk/printk.c:2286 console_trylock_spinning kernel/printk/printk.c:1699 [inline] vprintk_emit+0x267/0x6d0 kernel/printk/printk.c:1974 vprintk_default+0x28/0x30 kernel/printk/printk.c:2002 vprintk_func+0x7e/0x189 kernel/printk/printk_safe.c:398 printk+0xba/0xed kernel/printk/printk.c:2035 fail_dump lib/fault-inject.c:44 [inline] should_fail+0x708/0x852 lib/fault-inject.c:149 __should_failslab+0x121/0x190 mm/failslab.c:32 should_failslab+0x9/0x14 mm/slab_common.c:1610 slab_pre_alloc_hook mm/slab.h:420 [inline] slab_alloc mm/slab.c:3379 [inline] kmem_cache_alloc+0x47/0x6f0 mm/slab.c:3555 kmem_cache_zalloc include/linux/slab.h:732 [inline] fill_pool lib/debugobjects.c:134 [inline] __debug_object_init+0x755/0xc30 lib/debugobjects.c:379 debug_object_init lib/debugobjects.c:431 [inline] debug_object_activate+0x2b8/0x4f0 lib/debugobjects.c:512 debug_timer_activate kernel/time/timer.c:708 [inline] debug_activate kernel/time/timer.c:763 [inline] __mod_timer kernel/time/timer.c:1040 [inline] mod_timer kernel/time/timer.c:1101 [inline] add_timer+0x3ad/0xbe0 kernel/time/timer.c:1137 __queue_delayed_work+0x1af/0x270 kernel/workqueue.c:1649 queue_delayed_work_on+0x19a/0x200 kernel/workqueue.c:1674 queue_delayed_work include/linux/workqueue.h:509 [inline] schedule_delayed_work include/linux/workqueue.h:610 [inline] unaccount_event kernel/events/core.c:4319 [inline] _free_event+0xe6f/0x13b0 kernel/events/core.c:4427 put_event+0x47/0x60 kernel/events/core.c:4540 perf_event_release_kernel+0x693/0xbe0 kernel/events/core.c:4646 perf_release+0x37/0x50 kernel/events/core.c:4656 __fput+0x2e5/0x8d0 fs/file_table.c:278 ____fput+0x16/0x20 fs/file_table.c:309 task_work_run+0x14a/0x1c0 kernel/task_work.c:113 tracehook_notify_resume include/linux/tracehook.h:188 [inline] exit_to_usermode_loop+0x273/0x2c0 arch/x86/entry/common.c:166 prepare_exit_to_usermode arch/x86/entry/common.c:197 [inline] syscall_return_slowpath arch/x86/entry/common.c:268 [inline] do_syscall_64+0x52d/0x610 arch/x86/entry/common.c:293 entry_SYSCALL_64_after_hwframe+0x49/0xbe other info that might help us debug this: Chain exists of: (console_sem).lock --> &rq->lock --> &base->lock Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&base->lock); lock(&rq->lock); lock(&base->lock); lock((console_sem).lock); *** DEADLOCK *** 1 lock held by syz-executor.4/7737: #0: 000000004eecac04 (&base->lock){..-.}, at: __mod_timer kernel/time/timer.c:1033 [inline] #0: 000000004eecac04 (&base->lock){..-.}, at: mod_timer kernel/time/timer.c:1101 [inline] #0: 000000004eecac04 (&base->lock){..-.}, at: add_timer+0x2c6/0xbe0 kernel/time/timer.c:1137 stack backtrace: CPU: 1 PID: 7737 Comm: syz-executor.4 Not tainted 5.1.0-rc7+ #1 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x172/0x1f0 lib/dump_stack.c:113 print_circular_bug.isra.0.cold+0x1cc/0x28f kernel/locking/lockdep.c:1571 check_prev_add.constprop.0+0xf11/0x23c0 kernel/locking/lockdep.c:2220 check_prevs_add kernel/locking/lockdep.c:2333 [inline] validate_chain kernel/locking/lockdep.c:2714 [inline] __lock_acquire+0x239c/0x3fb0 kernel/locking/lockdep.c:3701 lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:4211 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x95/0xcd kernel/locking/spinlock.c:152 down_trylock+0x13/0x70 kernel/locking/semaphore.c:136 __down_trylock_console_sem+0xa8/0x210 kernel/printk/printk.c:220 console_trylock+0x15/0xa0 kernel/printk/printk.c:2286 console_trylock_spinning kernel/printk/printk.c:1699 [inline] vprintk_emit+0x267/0x6d0 kernel/printk/printk.c:1974 vprintk_default+0x28/0x30 kernel/printk/printk.c:2002 vprintk_func+0x7e/0x189 kernel/printk/printk_safe.c:398 printk+0xba/0xed kernel/printk/printk.c:2035 fail_dump lib/fault-inject.c:44 [inline] should_fail+0x708/0x852 lib/fault-inject.c:149 __should_failslab+0x121/0x190 mm/failslab.c:32 should_failslab+0x9/0x14 mm/slab_common.c:1610 slab_pre_alloc_hook mm/slab.h:420 [inline] slab_alloc mm/slab.c:3379 [inline] kmem_cache_alloc+0x47/0x6f0 mm/slab.c:3555 kmem_cache_zalloc include/linux/slab.h:732 [inline] fill_pool lib/debugobjects.c:134 [inline] __debug_object_init+0x755/0xc30 lib/debugobjects.c:379 debug_object_init lib/debugobjects.c:431 [inline] debug_object_activate+0x2b8/0x4f0 lib/debugobjects.c:512 debug_timer_activate kernel/time/timer.c:708 [inline] debug_activate kernel/time/timer.c:763 [inline] __mod_timer kernel/time/timer.c:1040 [inline] mod_timer kernel/time/timer.c:1101 [inline] add_timer+0x3ad/0xbe0 kernel/time/timer.c:1137 __queue_delayed_work+0x1af/0x270 kernel/workqueue.c:1649 queue_delayed_work_on+0x19a/0x200 kernel/workqueue.c:1674 queue_delayed_work include/linux/workqueue.h:509 [inline] schedule_delayed_work include/linux/workqueue.h:610 [inline] unaccount_event kernel/events/core.c:4319 [inline] _free_event+0xe6f/0x13b0 kernel/events/core.c:4427 put_event+0x47/0x60 kernel/events/core.c:4540 perf_event_release_kernel+0x693/0xbe0 kernel/events/core.c:4646 perf_release+0x37/0x50 kernel/events/core.c:4656 __fput+0x2e5/0x8d0 fs/file_table.c:278 ____fput+0x16/0x20 fs/file_table.c:309 task_work_run+0x14a/0x1c0 kernel/task_work.c:113 tracehook_notify_resume include/linux/tracehook.h:188 [inline] exit_to_usermode_loop+0x273/0x2c0 arch/x86/entry/common.c:166 prepare_exit_to_usermode arch/x86/entry/common.c:197 [inline] syscall_return_slowpath arch/x86/entry/common.c:268 [inline] do_syscall_64+0x52d/0x610 arch/x86/entry/common.c:293 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x458da9 Code: ad b8 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 7b b8 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007ff7b325fc78 EFLAGS: 00000246 ORIG_RAX: 0000000000000003 RAX: 0000000000000000 RBX: 00007ff7b325fc90 RCX: 0000000000458da9 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000003 RBP: 000000000073bf00 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007ff7b32606d4 R13: 00000000004f6e92 R14: 00000000004d01b8 R15: 0000000000000004