KCSAN: data-race in timer_clear_idle / trigger_dyntick_cpu.isra.0 (2)

From: syzbot
Date: Thu Dec 12 2019 - 18:33:17 EST


Hello,

syzbot found the following crash on:

HEAD commit: ef798c30 x86, kcsan: Enable KCSAN for x86
git tree: https://github.com/google/ktsan.git kcsan
console output: https://syzkaller.appspot.com/x/log.txt?x=14e7ae61e00000
kernel config: https://syzkaller.appspot.com/x/.config?x=8077a73bd604a9d4
dashboard link: https://syzkaller.appspot.com/bug?extid=62407dedb3b93892c631
compiler: gcc (GCC) 9.0.0 20181231 (experimental)

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

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+62407dedb3b93892c631@xxxxxxxxxxxxxxxxxxxxxxxxx

==================================================================
BUG: KCSAN: data-race in timer_clear_idle / trigger_dyntick_cpu.isra.0

read to 0xffff88812be1b6e4 of 1 bytes by interrupt on cpu 1:
trigger_dyntick_cpu.isra.0+0x75/0x100 kernel/time/timer.c:577
internal_add_timer kernel/time/timer.c:596 [inline]
add_timer_on+0x186/0x2d0 kernel/time/timer.c:1174
clocksource_watchdog+0x63f/0x760 kernel/time/clocksource.c:297
call_timer_fn+0x5f/0x2f0 kernel/time/timer.c:1404
expire_timers kernel/time/timer.c:1449 [inline]
__run_timers kernel/time/timer.c:1773 [inline]
__run_timers kernel/time/timer.c:1740 [inline]
run_timer_softirq+0xc0c/0xcd0 kernel/time/timer.c:1786
__do_softirq+0x115/0x33f kernel/softirq.c:292
invoke_softirq kernel/softirq.c:373 [inline]
irq_exit+0xbb/0xe0 kernel/softirq.c:413
exiting_irq arch/x86/include/asm/apic.h:536 [inline]
smp_apic_timer_interrupt+0xe6/0x280 arch/x86/kernel/apic/apic.c:1137
apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:830
native_safe_halt+0xe/0x10 arch/x86/include/asm/irqflags.h:60
arch_cpu_idle+0xa/0x10 arch/x86/kernel/process.c:571
default_idle_call+0x1e/0x40 kernel/sched/idle.c:94
cpuidle_idle_call kernel/sched/idle.c:154 [inline]
do_idle+0x1af/0x280 kernel/sched/idle.c:263
cpu_startup_entry+0x1b/0x20 kernel/sched/idle.c:355
start_secondary+0x168/0x1b0 arch/x86/kernel/smpboot.c:264
secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:241

write to 0xffff88812be1b6e4 of 1 bytes by task 0 on cpu 0:
timer_clear_idle+0x42/0x50 kernel/time/timer.c:1675
tick_nohz_next_event+0x15d/0x370 kernel/time/tick-sched.c:708
__tick_nohz_idle_stop_tick kernel/time/tick-sched.c:943 [inline]
tick_nohz_idle_stop_tick+0x3c2/0x670 kernel/time/tick-sched.c:973
cpuidle_idle_call kernel/sched/idle.c:151 [inline]
do_idle+0x1a5/0x280 kernel/sched/idle.c:263
cpu_startup_entry+0x1b/0x20 kernel/sched/idle.c:355
rest_init+0xec/0xf6 init/main.c:452
arch_call_rest_init+0x17/0x37
start_kernel+0x838/0x85e init/main.c:786
x86_64_start_reservations+0x29/0x2b arch/x86/kernel/head64.c:490
x86_64_start_kernel+0x72/0x76 arch/x86/kernel/head64.c:471
secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:241

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.4.0-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
==================================================================


---
This bug 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 syzkaller@xxxxxxxxxxxxxxxxx

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