[moderation] [kernel?] KCSAN: data-race in ktime_get_mono_fast_ns / update_fast_timekeeper

3 views
Skip to first unread message

syzbot

unread,
11:09 AM (3 hours ago) 11:09 AM
to syzkaller-upst...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 897d54018cc9 Merge tag 'fbdev-for-7.1-rc1-2' of git://git...
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=14f73896580000
kernel config: https://syzkaller.appspot.com/x/.config?x=2e40c0f41e01837e
dashboard link: https://syzkaller.appspot.com/bug?extid=86d8f93cf23743800fc8
compiler: Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
CC: [jst...@google.com linux-...@vger.kernel.org sb...@kernel.org tg...@kernel.org]

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/8aeb53d3ec64/disk-897d5401.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/b5bd874ca2d1/vmlinux-897d5401.xz
kernel image: https://storage.googleapis.com/syzbot-assets/7c3170c893c0/bzImage-897d5401.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+86d8f9...@syzkaller.appspotmail.com

==================================================================
BUG: KCSAN: data-race in ktime_get_mono_fast_ns / update_fast_timekeeper

write to 0xffffffff86d4fb88 of 56 bytes by interrupt on cpu 0:
update_fast_timekeeper+0x38/0x70 kernel/time/timekeeping.c:476
timekeeping_update_from_shadow+0x3ab/0x440 kernel/time/timekeeping.c:812
__timekeeping_advance+0xa5d/0xc10 kernel/time/timekeeping.c:2532
timekeeping_advance kernel/time/timekeeping.c:2540 [inline]
update_wall_time+0x21/0x50 kernel/time/timekeeping.c:2550
tick_do_update_jiffies64+0x169/0x1c0 kernel/time/tick-sched.c:149
tick_sched_do_timer kernel/time/tick-sched.c:253 [inline]
tick_nohz_handler+0x8d/0x3d0 kernel/time/tick-sched.c:312
__run_hrtimer kernel/time/hrtimer.c:1930 [inline]
__hrtimer_run_queues+0x276/0x4f0 kernel/time/hrtimer.c:1994
hrtimer_interrupt+0x261/0x850 kernel/time/hrtimer.c:2113
local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline]
__sysvec_apic_timer_interrupt+0x5f/0x1c0 arch/x86/kernel/apic/apic.c:1067
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1061 [inline]
sysvec_apic_timer_interrupt+0x6f/0x80 arch/x86/kernel/apic/apic.c:1061
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697
native_safe_halt arch/x86/include/asm/irqflags.h:48 [inline]
pv_native_safe_halt+0xf/0x20 arch/x86/kernel/paravirt.c:62
arch_safe_halt arch/x86/kernel/process.c:766 [inline]
default_idle+0x9/0x20 arch/x86/kernel/process.c:767
default_idle_call+0x3b/0x60 kernel/sched/idle.c:122
cpuidle_idle_call kernel/sched/idle.c:199 [inline]
do_idle+0x17f/0x2b0 kernel/sched/idle.c:352
cpu_startup_entry+0x24/0x30 kernel/sched/idle.c:451
rest_init+0xee/0xf0 init/main.c:762
start_kernel+0x49f/0x4d0 init/main.c:1220
x86_64_start_reservations+0x24/0x30 arch/x86/kernel/head64.c:310
x86_64_start_kernel+0xfc/0x100 arch/x86/kernel/head64.c:291
common_startup_64+0x13e/0x147

read to 0xffffffff86d4fba8 of 8 bytes by task 35 on cpu 1:
timekeeping_cycles_to_ns kernel/time/timekeeping.c:444 [inline]
timekeeping_get_ns kernel/time/timekeeping.c:449 [inline]
__ktime_get_fast_ns kernel/time/timekeeping.c:497 [inline]
ktime_get_mono_fast_ns+0xdf/0x1a0 kernel/time/timekeeping.c:537
pm_runtime_mark_last_busy include/linux/pm_runtime.h:235 [inline]
usb_mark_last_busy include/linux/usb.h:823 [inline]
usb_autopm_put_interface+0x29/0x60 drivers/usb/core/driver.c:1792
hub_event+0x295f/0x2a60 drivers/usb/core/hub.c:5995
process_one_work kernel/workqueue.c:3302 [inline]
process_scheduled_works+0x4f0/0x9c0 kernel/workqueue.c:3385
worker_thread+0x58a/0x780 kernel/workqueue.c:3466
kthread+0x22a/0x280 kernel/kthread.c:436
ret_from_fork+0x146/0x330 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

value changed: 0x0015366a30a07c5c -> 0x0015c534d670747c

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 UID: 0 PID: 35 Comm: kworker/1:1 Tainted: G W syzkaller #0 PREEMPT(full)
Tainted: [W]=WARN
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/18/2026
Workqueue: usb_hub_wq hub_event
==================================================================


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup
Reply all
Reply to author
Forward
0 new messages