KCSAN: data-race in __hrtimer_run_queues / hrtimer_try_to_cancel (2)

Status: moderation: reported on 2026/09/30 20:01
Subsystems: kernel
Labels: race:benign
[Documentation on labels]
Reported-by: syzbot+805a1ff79d21ac009fc2@syzkaller.appspotmail.com
First crash: 3h20m, last: 3h20m
▶ ▼ ✨ AI Jobs (1)
ID Workflow Result Correct Bug Created Started Finished Revision
40f904a1 assessment-kcsan Benign: ✅ ❓ KCSAN: data-race in __hrtimer_run_queues / hrtimer_try_to_cancel (2) 2026/09/30 20:01 2026/09/30 20:01 2026/09/30 20:37 38f7f0d1
▶ ▼ Similar bugs (1)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in __hrtimer_run_queues / hrtimer_try_to_cancel race:benign prio:high kernel 6 1 85d 85d 0/29 auto-obsoleted due to no activity on 2026/09/01 05:19

Sample crash report:
==================================================================
BUG: KCSAN: data-race in __hrtimer_run_queues / hrtimer_try_to_cancel

write to 0xffff888237d1b8e0 of 8 bytes by interrupt on cpu 1:
 __run_hrtimer kernel/time/hrtimer.c:2043 [inline]
 __hrtimer_run_queues+0x11f/0x510 kernel/time/hrtimer.c:2131
 hrtimer_interrupt+0x27b/0x860 kernel/time/hrtimer.c:2250
 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1051 [inline]
 __sysvec_apic_timer_interrupt+0x5f/0x1c0 arch/x86/kernel/apic/apic.c:1068
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1062 [inline]
 sysvec_apic_timer_interrupt+0x32/0x80 arch/x86/kernel/apic/apic.c:1062
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:674
 check_access kernel/kcsan/core.c:795 [inline]
 __tsan_unaligned_volatile_read8+0x132/0x190 kernel/kcsan/core.c:1094
 taprio_dequeue+0x2b/0x590 net/sched/sch_taprio.c:841
 dequeue_skb net/sched/sch_generic.c:322 [inline]
 qdisc_restart net/sched/sch_generic.c:427 [inline]
 __qdisc_run+0x18b/0xc60 net/sched/sch_generic.c:445
 qdisc_run include/net/pkt_sched.h:121 [inline]
 net_tx_action+0x359/0x570 net/core/dev.c:5916
 handle_softirqs+0xcc/0x2a0 kernel/softirq.c:645
 __do_softirq kernel/softirq.c:679 [inline]
 invoke_softirq kernel/softirq.c:519 [inline]
 __irq_exit_rcu+0x44/0xe0 kernel/softirq.c:758
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1062 [inline]
 sysvec_apic_timer_interrupt+0x74/0x80 arch/x86/kernel/apic/apic.c:1062
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:674
 rep_movs_alternative+0x4a/0xa0 arch/x86/lib/copy_user_64.S:68
 copy_user_generic arch/x86/include/asm/uaccess_64.h:126 [inline]
 raw_copy_from_user arch/x86/include/asm/uaccess_64.h:141 [inline]
 copy_from_user_iter lib/iov_iter.c:67 [inline]
 iterate_ubuf include/linux/iov_iter.h:30 [inline]
 iterate_and_advance2 include/linux/iov_iter.h:302 [inline]
 iterate_and_advance include/linux/iov_iter.h:330 [inline]
 __copy_from_iter lib/iov_iter.c:261 [inline]
 _copy_from_iter+0x114/0xe70 lib/iov_iter.c:272
 copy_from_iter include/linux/uio.h:228 [inline]
 copy_from_iter_full include/linux/uio.h:245 [inline]
 skb_do_copy_data_nocache include/net/sock.h:2329 [inline]
 skb_copy_to_page_nocache include/net/sock.h:2355 [inline]
 tcp_sendmsg_locked+0x1650/0x2ad0 net/ipv4/tcp.c:1310
 tcp_sendmsg+0x2f/0x50 net/ipv4/tcp.c:1451
 inet_sendmsg+0x76/0xd0 net/ipv4/af_inet.c:865
 sock_sendmsg_nosec net/socket.c:801 [inline]
 __sock_sendmsg net/socket.c:815 [inline]
 __sys_sendto+0x3be/0x470 net/socket.c:2281
 __do_sys_sendto net/socket.c:2288 [inline]
 __se_sys_sendto net/socket.c:2284 [inline]
 __x64_sys_sendto+0x76/0x90 net/socket.c:2284
 x64_sys_call+0x200c/0x2550 arch/x86/include/generated/asm/syscalls_64.h:45
 do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
 do_syscall_64+0x112/0x360 arch/x86/entry/syscall_64.c:84
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffff888237d1b8e0 of 8 bytes by task 5315 on cpu 0:
 hrtimer_active kernel/time/hrtimer.c:2006 [inline]
 hrtimer_try_to_cancel+0x7e/0x3c0 kernel/time/hrtimer.c:1657
 hrtimer_cancel+0x16/0x50 kernel/time/hrtimer.c:1784
 do_exit+0x2b8/0x1510 kernel/exit.c:944
 do_group_exit+0xfe/0x140 kernel/exit.c:1129
 get_signal+0xe07/0xf10 kernel/signal.c:3112
 arch_do_signal_or_restart+0x96/0x480 arch/x86/kernel/signal.c:337
 __exit_to_user_mode_loop kernel/entry/common.c:66 [inline]
 exit_to_user_mode_loop+0x15d/0x8c0 kernel/entry/common.c:101
 __exit_to_user_mode_prepare include/linux/irq-entry-common.h:207 [inline]
 syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:230 [inline]
 syscall_exit_to_user_mode include/linux/entry-common.h:343 [inline]
 do_syscall_64+0x212/0x360 arch/x86/entry/syscall_64.c:89
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0x0000000000000000 -> 0xffff88811ecfce90

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 UID: 0 PID: 5315 Comm: syz.3.539 Not tainted syzkaller #0 PREEMPT(lazy) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/09/30 20:01 upstream 551c722f4080 38f7f0d1 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in __hrtimer_run_queues / hrtimer_try_to_cancel
* Struck through repros no longer work on HEAD.