syzbot


KCSAN: data-race in __futex_wait / hrtimer_wakeup (3)

Status: moderation: reported on 2026/03/18 01:58
Subsystems: kernel
[Documentation on labels]
Reported-by: syzbot+3ac7e45933d94e80123b@syzkaller.appspotmail.com
First crash: 2d21h, last: 2d21h
✨ AI Jobs (1)
ID Workflow Result Correct Bug Created Started Finished Revision Error
b5bed566-4183-4725-94ee-c7092548ddcb assessment-kcsan Benign: ✅  Confident: ✅  KCSAN: data-race in __futex_wait / hrtimer_wakeup (3) 2026/03/18 03:41 2026/03/18 03:41 2026/03/18 03:43 f84caa2f84dea47b51a188e8d6267f295e89bbcb
Similar bugs (2)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in __futex_wait / hrtimer_wakeup (2) kernel 6 1 583d 583d 0/29 auto-obsoleted due to no activity on 2024/09/18 06:03
upstream KCSAN: data-race in __futex_wait / hrtimer_wakeup kernel 6 7 635d 651d 0/29 auto-obsoleted due to no activity on 2024/07/28 08:24

Sample crash report:
==================================================================
BUG: KCSAN: data-race in __futex_wait / hrtimer_wakeup

read-write to 0xffffc90004ecbd80 of 8 bytes by interrupt on cpu 1:
 hrtimer_wakeup+0x1c/0x50 kernel/time/hrtimer.c:2019
 __run_hrtimer kernel/time/hrtimer.c:1785 [inline]
 __hrtimer_run_queues+0x218/0x4f0 kernel/time/hrtimer.c:1849
 hrtimer_interrupt+0x269/0x810 kernel/time/hrtimer.c:1911
 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1045 [inline]
 __sysvec_apic_timer_interrupt+0x5f/0x1f0 arch/x86/kernel/apic/apic.c:1062
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1056 [inline]
 sysvec_apic_timer_interrupt+0x6f/0x80 arch/x86/kernel/apic/apic.c:1056
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697
 __preempt_count_dec_and_test arch/x86/include/asm/preempt.h:95 [inline]
 __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:179 [inline]
 _raw_spin_unlock_irqrestore+0x1a/0x30 kernel/locking/spinlock.c:194
 spin_unlock_irqrestore include/linux/spinlock.h:407 [inline]
 unlock_page_lruvec_irqrestore include/linux/memcontrol.h:1495 [inline]
 folio_lruvec_relock_irqsave include/linux/memcontrol.h:1528 [inline]
 folio_batch_move_lru+0x1a6/0x270 mm/swap.c:171
 lru_add_drain_cpu+0x66/0x210 mm/swap.c:648
 lru_add_drain mm/swap.c:737 [inline]
 __folio_batch_release+0x44/0xb0 mm/swap.c:1059
 folio_batch_release include/linux/pagevec.h:101 [inline]
 writeback_get_folio mm/page-writeback.c:2409 [inline]
 writeback_iter+0x41a/0x830 mm/page-writeback.c:2512
 blkdev_writepages+0xa7/0x100 block/fops.c:485
 do_writepages+0x1c6/0x310 mm/page-writeback.c:2554
 filemap_writeback mm/filemap.c:387 [inline]
 filemap_flush_range mm/filemap.c:436 [inline]
 filemap_flush+0xee/0x130 mm/filemap.c:451
 sync_blockdev_nowait+0x29/0x40 block/bdev.c:264
 sync_filesystem+0xe2/0x190 fs/sync.c:60
 generic_shutdown_super+0x4c/0x220 fs/super.c:625
 kill_block_super+0x2a/0x70 fs/super.c:1725
 deactivate_locked_super+0x75/0x1c0 fs/super.c:476
 deactivate_super+0x97/0xa0 fs/super.c:509
 cleanup_mnt+0x2bb/0x330 fs/namespace.c:1312
 __cleanup_mnt+0x19/0x20 fs/namespace.c:1319
 task_work_run+0x130/0x1a0 kernel/task_work.c:233
 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
 __exit_to_user_mode_loop kernel/entry/common.c:67 [inline]
 exit_to_user_mode_loop+0x1f4/0x6f0 kernel/entry/common.c:98
 __exit_to_user_mode_prepare include/linux/irq-entry-common.h:226 [inline]
 syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:256 [inline]
 syscall_exit_to_user_mode include/linux/entry-common.h:325 [inline]
 do_syscall_64+0x249/0x370 arch/x86/entry/syscall_64.c:100
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffffc90004ecbd80 of 8 bytes by task 10770 on cpu 0:
 futex_do_wait kernel/futex/waitwake.c:357 [inline]
 __futex_wait+0xee/0x260 kernel/futex/waitwake.c:687
 futex_wait+0x9c/0x1d0 kernel/futex/waitwake.c:715
 do_futex+0x2bf/0x380 kernel/futex/syscalls.c:130
 __do_sys_futex kernel/futex/syscalls.c:207 [inline]
 __se_sys_futex+0x2f6/0x370 kernel/futex/syscalls.c:188
 __x64_sys_futex+0x78/0x90 kernel/futex/syscalls.c:188
 x64_sys_call+0x24ab/0x3020 arch/x86/include/generated/asm/syscalls_64.h:203
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x12c/0x370 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0xffff88811c65d3c0 -> 0x0000000000000000

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 UID: 0 PID: 10770 Comm: syz.4.1727 Tainted: G        W           syzkaller #0 PREEMPT(full) 
Tainted: [W]=WARN
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2026
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/03/18 01:58 upstream f0caa1d49cc0 c8810548 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in __futex_wait / hrtimer_wakeup
* Struck through repros no longer work on HEAD.