sched: DL replenish lagged too much
------------[ cut here ]------------
WARNING: CPU: 0 PID: 8418 at kernel/rcu/tree_stall.h:989 rcu_check_gp_start_stall+0x2e4/0x470 kernel/rcu/tree_stall.h:989
Modules linked in:
CPU: 0 UID: 0 PID: 8418 Comm: syz.0.688 Not tainted 6.15.0-rc3-syzkaller-g91dbac407653 #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/19/2025
RIP: 0010:rcu_check_gp_start_stall+0x2e4/0x470 kernel/rcu/tree_stall.h:989
Code: ff ff 48 c7 c7 a0 57 84 99 be 04 00 00 00 e8 53 38 7a 00 4c 89 f7 b8 01 00 00 00 87 05 35 df dc 17 85 c0 0f 85 17 ff ff ff 90 <0f> 0b 90 48 81 ff c0 0b f4 8d 74 47 48 c7 c0 50 ea 7e 8f 48 c1 e8
RSP: 0018:ffffc90000007bb8 EFLAGS: 00010046
RAX: 0000000000000000 RBX: 0000000000000a02 RCX: ffffffff81a7785d
RDX: 0000000000000001 RSI: 0000000000000004 RDI: ffffffff8df40bc0
RBP: ffffc90000007e30 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffffbfff3308af4 R12: 0000000000002904
R13: 1ffff11017107562 R14: ffffffff8df40bc0 R15: dffffc0000000000
FS: 00007fdee96686c0(0000) GS:ffff8881260d0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000110c2fe617 CR3: 000000007fc56000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000600
Call Trace:
rcu_core+0x5f7/0x1710 kernel/rcu/tree.c:2819
handle_softirqs+0x283/0x870 kernel/softirq.c:579
__do_softirq kernel/softirq.c:613 [inline]
invoke_softirq kernel/softirq.c:453 [inline]
__irq_exit_rcu+0xca/0x1f0 kernel/softirq.c:680
irq_exit_rcu+0x9/0x30 kernel/softirq.c:696
instr_sysvec_irq_work arch/x86/kernel/irq_work.c:17 [inline]
sysvec_irq_work+0xa3/0xc0 arch/x86/kernel/irq_work.c:17
asm_sysvec_irq_work+0x1a/0x20 arch/x86/include/asm/idtentry.h:738
RIP: 0010:rcu_read_unlock_special+0x87/0x4c0 kernel/rcu/tree_plugin.h:694
Code: f1 f1 f1 00 f2 f2 f2 4a 89 04 2b 66 42 c7 44 2b 09 f3 f3 42 c6 44 2b 0b f3 65 44 8b 35 12 64 cd 10 41 f7 c6 00 00 f0 00 74 49 <48> c7 44 24 40 0e 36 e0 45 4a c7 04 2b 00 00 00 00 66 42 c7 44 2b
RSP: 0018:ffffc900015b71a0 EFLAGS: 00000206
RAX: 0b97e6a93c7c6000 RBX: 1ffff920002b6e3c RCX: 0b97e6a93c7c6000
RDX: 0000000000000006 RSI: ffffffff8d747e1c RDI: ffffffff8bc1c7a0
RBP: ffffc900015b72a0 R08: ffffffff8f7ebb77 R09: 1ffffffff1efd76e
R10: dffffc0000000000 R11: fffffbfff1efd76f R12: ffffffff8df40c00
R13: dffffc0000000000 R14: 0000000000000246 R15: 0000000000000001
__rcu_read_unlock+0x84/0xe0 kernel/rcu/tree_plugin.h:438
rcu_read_unlock include/linux/rcupdate.h:873 [inline]
__perf_event_output kernel/events/core.c:8364 [inline]
perf_event_output_forward+0x384/0x430 kernel/events/core.c:8373
__perf_event_overflow+0x7cc/0xe10 kernel/events/core.c:10249
perf_swevent_overflow kernel/events/core.c:10324 [inline]
perf_swevent_event+0x2f4/0x5e0 kernel/events/core.c:-1
perf_tp_event+0x4f6/0x1380 kernel/events/core.c:10869
perf_trace_run_bpf_submit+0xee/0x170 kernel/events/core.c:10793
do_perf_trace_lock include/trace/events/lock.h:50 [inline]
perf_trace_lock+0x2f8/0x3b0 include/trace/events/lock.h:50
__do_trace_lock_release include/trace/events/lock.h:69 [inline]
trace_lock_release include/trace/events/lock.h:69 [inline]
lock_release+0x3b2/0x3e0 kernel/locking/lockdep.c:5877
__raw_spin_unlock include/linux/spinlock_api_smp.h:141 [inline]
_raw_spin_unlock+0x16/0x50 kernel/locking/spinlock.c:186
spin_unlock include/linux/spinlock.h:391 [inline]
futex_queue kernel/futex/futex.h:312 [inline]
futex_wait_queue+0xad/0x200 kernel/futex/waitwake.c:352
__futex_wait+0x11e/0x2a0 kernel/futex/waitwake.c:668
futex_wait+0x104/0x360 kernel/futex/waitwake.c:696
do_futex+0x333/0x420 kernel/futex/syscalls.c:102
__do_sys_futex kernel/futex/syscalls.c:179 [inline]
__se_sys_futex+0x36f/0x400 kernel/futex/syscalls.c:160
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xf6/0x210 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fdee878e969
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fdee96680e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: ffffffffffffffda RBX: 00007fdee89b6088 RCX: 00007fdee878e969
RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fdee89b6088
RBP: 00007fdee89b6080 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007fdee89b608c
R13: 0000000000000000 R14: 00007ffe40599590 R15: 00007ffe40599678
----------------
Code disassembly (best guess):
0: f1 int1
1: f1 int1
2: f1 int1
3: 00 f2 add %dh,%dl
5: f2 f2 4a 89 04 2b repnz repnz mov %rax,(%rbx,%r13,1)
b: 66 42 c7 44 2b 09 f3 movw $0xf3f3,0x9(%rbx,%r13,1)
12: f3
13: 42 c6 44 2b 0b f3 movb $0xf3,0xb(%rbx,%r13,1)
19: 65 44 8b 35 12 64 cd mov %gs:0x10cd6412(%rip),%r14d # 0x10cd6433
20: 10
21: 41 f7 c6 00 00 f0 00 test $0xf00000,%r14d
28: 74 49 je 0x73
* 2a: 48 c7 44 24 40 0e 36 movq $0x45e0360e,0x40(%rsp) <-- trapping instruction
31: e0 45
33: 4a c7 04 2b 00 00 00 movq $0x0,(%rbx,%r13,1)
3a: 00
3b: 66 data16
3c: 42 rex.X
3d: c7 .byte 0xc7
3e: 44 rex.R
3f: 2b .byte 0x2b