syzbot


KCSAN: data-race in perf_event_set_state / perf_event_update_time (5)

Status: moderation: reported on 2025/09/09 11:09
Subsystems: perf
[Documentation on labels]
Reported-by: syzbot+81af9f53b00b88f71d07@syzkaller.appspotmail.com
First crash: 54d, last: 41d
Similar bugs (4)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in perf_event_set_state / perf_event_update_time perf 6 2 847d 855d 0/29 auto-obsoleted due to no activity on 2023/08/13 16:32
upstream KCSAN: data-race in perf_event_set_state / perf_event_update_time (2) perf 6 1 649d 649d 0/29 auto-obsoleted due to no activity on 2024/02/27 20:45
upstream KCSAN: data-race in perf_event_set_state / perf_event_update_time (4) perf 6 2 271d 274d 0/29 auto-obsoleted due to no activity on 2025/04/01 23:47
upstream KCSAN: data-race in perf_event_set_state / perf_event_update_time (3) perf 6 2 499d 510d 0/29 auto-obsoleted due to no activity on 2024/07/26 11:54

Sample crash report:
 loop3: p1 p2[DM] p4
==================================================================
BUG: KCSAN: data-race in perf_event_set_state / perf_event_update_time

write to 0xffff88811a3956c8 of 8 bytes by task 7101 on cpu 0:
 __perf_update_times kernel/events/core.c:-1 [inline]
 perf_event_update_time+0x15e/0x1d0 kernel/events/core.c:734
 perf_mmap+0xa4e/0xc60 kernel/events/core.c:7129
 vfs_mmap include/linux/fs.h:2290 [inline]
 mmap_file mm/internal.h:167 [inline]
 __mmap_new_file_vma mm/vma.c:2413 [inline]
 __mmap_new_vma mm/vma.c:2476 [inline]
 __mmap_region mm/vma.c:2669 [inline]
 mmap_region+0xfb0/0x1630 mm/vma.c:2739
 do_mmap+0x9b3/0xbe0 mm/mmap.c:558
 vm_mmap_pgoff+0x17a/0x2e0 mm/util.c:580
 ksys_mmap_pgoff+0x268/0x310 mm/mmap.c:604
 x64_sys_call+0x14a3/0x2ff0 arch/x86/include/generated/asm/syscalls_64.h:10
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd2/0x200 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffff88811a3956c8 of 8 bytes by task 7075 on cpu 1:
 __perf_update_times kernel/events/core.c:721 [inline]
 perf_event_update_time kernel/events/core.c:734 [inline]
 perf_event_set_state+0x168/0x440 kernel/events/core.c:753
 event_sched_out+0x2d4/0x4d0 kernel/events/core.c:2393
 group_sched_out kernel/events/core.c:2417 [inline]
 __pmu_ctx_sched_out+0x3e7/0x530 kernel/events/core.c:3460
 ctx_sched_out+0x273/0x2d0 kernel/events/core.c:3541
 task_ctx_sched_out+0x4d/0x70 kernel/events/core.c:2861
 perf_event_context_sched_out kernel/events/core.c:3748 [inline]
 __perf_event_task_sched_out+0x286/0x370 kernel/events/core.c:3848
 perf_event_task_sched_out include/linux/perf_event.h:1654 [inline]
 prepare_task_switch kernel/sched/core.c:5155 [inline]
 context_switch kernel/sched/core.c:5304 [inline]
 __schedule+0xaf8/0xb30 kernel/sched/core.c:6961
 preempt_schedule_common kernel/sched/core.c:7145 [inline]
 __cond_resched+0x4e/0x90 kernel/sched/core.c:7490
 might_resched include/linux/kernel.h:61 [inline]
 might_alloc include/linux/sched/mm.h:321 [inline]
 slab_pre_alloc_hook mm/slub.c:4142 [inline]
 slab_alloc_node mm/slub.c:4220 [inline]
 __kmalloc_cache_noprof+0x42/0x320 mm/slub.c:4402
 kmalloc_noprof include/linux/slab.h:905 [inline]
 kzalloc_noprof include/linux/slab.h:1039 [inline]
 kobject_uevent_env+0x1c0/0x570 lib/kobject_uevent.c:540
 kobject_uevent+0x1d/0x30 lib/kobject_uevent.c:656
 blk_add_partitions block/partitions/core.c:630 [inline]
 bdev_disk_changed+0x619/0xcb0 block/partitions/core.c:693
 loop_reread_partitions drivers/block/loop.c:449 [inline]
 loop_set_status+0x5d2/0x6a0 drivers/block/loop.c:1274
 loop_set_status64 drivers/block/loop.c:1370 [inline]
 lo_ioctl+0x671/0x12b0 drivers/block/loop.c:1556
 blkdev_ioctl+0x34f/0x440 block/ioctl.c:705
 vfs_ioctl fs/ioctl.c:51 [inline]
 __do_sys_ioctl fs/ioctl.c:598 [inline]
 __se_sys_ioctl+0xce/0x140 fs/ioctl.c:584
 __x64_sys_ioctl+0x43/0x50 fs/ioctl.c:584
 x64_sys_call+0x1816/0x2ff0 arch/x86/include/generated/asm/syscalls_64.h:17
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd2/0x200 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0x0000000002daee5c -> 0x00000000031bace7

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 UID: 0 PID: 7075 Comm: syz.3.1168 Not tainted syzkaller #0 PREEMPT(voluntary) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025
==================================================================
loop3: p1 size 196608 extends beyond EOD, truncated
loop3: p2 start 4292936063 is beyond EOD, truncated
loop3: p4 size 50331648 extends beyond EOD, truncated

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/09/23 01:45 upstream cec1e6e5d1ab 0ac7291c .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in perf_event_set_state / perf_event_update_time
2025/09/09 11:09 upstream f777d1112ee5 d291dd2d .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in perf_event_set_state / perf_event_update_time
* Struck through repros no longer work on HEAD.