syzbot


KCSAN: data-race in flush_memcg_stats_dwork / tick_do_update_jiffies64 (3)

Status: moderation: reported on 2024/08/29 14:19
Subsystems: kernel
[Documentation on labels]
Reported-by: syzbot+1bf7476fd6bb2929491a@syzkaller.appspotmail.com
First crash: 16d, last: 16d
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in flush_memcg_stats_dwork / tick_do_update_jiffies64 (2) kernel 1 759d 759d 0/28 auto-closed as invalid on 2022/09/21 17:08
upstream KCSAN: data-race in flush_memcg_stats_dwork / tick_do_update_jiffies64 kernel 1 865d 865d 0/28 auto-closed as invalid on 2022/06/07 09:14

Sample crash report:
==================================================================
BUG: KCSAN: data-race in flush_memcg_stats_dwork / tick_do_update_jiffies64

read-write to 0xffffffff866079c0 of 8 bytes by interrupt on cpu 1:
 tick_do_update_jiffies64+0x112/0x1b0 kernel/time/tick-sched.c:118
 tick_sched_do_timer kernel/time/tick-sched.c:232 [inline]
 tick_nohz_handler+0x7c/0x2d0 kernel/time/tick-sched.c:290
 __run_hrtimer kernel/time/hrtimer.c:1689 [inline]
 __hrtimer_run_queues+0x20d/0x5e0 kernel/time/hrtimer.c:1753
 hrtimer_interrupt+0x210/0x7b0 kernel/time/hrtimer.c:1815
 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1032 [inline]
 __sysvec_apic_timer_interrupt+0x5c/0x1a0 arch/x86/kernel/apic/apic.c:1049
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]
 sysvec_apic_timer_interrupt+0x6e/0x80 arch/x86/kernel/apic/apic.c:1043
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
 kcsan_setup_watchpoint+0x404/0x410 kernel/kcsan/core.c:705
 __io_commit_cqring_flush+0x1e/0x140 io_uring/io_uring.c:552
 io_commit_cqring_flush io_uring/io_uring.h:361 [inline]
 io_cq_unlock_post io_uring/io_uring.c:596 [inline]
 __io_cqring_overflow_flush+0x464/0x470 io_uring/io_uring.c:633
 io_cqring_do_overflow_flush io_uring/io_uring.c:645 [inline]
 io_cqring_wait io_uring/io_uring.c:2486 [inline]
 __do_sys_io_uring_enter io_uring/io_uring.c:3255 [inline]
 __se_sys_io_uring_enter+0x11c7/0x15a0 io_uring/io_uring.c:3147
 __x64_sys_io_uring_enter+0x78/0x90 io_uring/io_uring.c:3147
 x64_sys_call+0x2567/0x2d60 arch/x86/include/generated/asm/syscalls_64.h:427
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xc9/0x1c0 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffffffff866079c0 of 8 bytes by task 3267 on cpu 0:
 do_flush_stats mm/memcontrol.c:576 [inline]
 flush_memcg_stats_dwork+0x26/0x90 mm/memcontrol.c:615
 process_one_work kernel/workqueue.c:3231 [inline]
 process_scheduled_works+0x483/0x9a0 kernel/workqueue.c:3312
 worker_thread+0x526/0x6e0 kernel/workqueue.c:3389
 kthread+0x1d1/0x210 kernel/kthread.c:389
 ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244

value changed: 0x00000000ffffb2e1 -> 0x00000000ffffb2e2

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 UID: 0 PID: 3267 Comm: kworker/u8:4 Not tainted 6.11.0-rc5-syzkaller-00081-gd5d547aa7b51 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/06/2024
Workqueue: events_unbound flush_memcg_stats_dwork
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/08/29 14:19 upstream d5d547aa7b51 9bd464fc .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in flush_memcg_stats_dwork / tick_do_update_jiffies64
* Struck through repros no longer work on HEAD.