syzbot


INFO: rcu detected stall in mrp_join_timer_arm

Status: closed as invalid on 2022/02/08 10:10
Reported-by: syzbot+@syzkaller.appspotmail.com
First crash: 350d, last: 305d
similar bugs (1):
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-4.19 INFO: rcu detected stall in mrp_join_timer_arm 1 940d 940d 0/1 auto-closed as invalid on 2020/08/30 01:09

Sample crash report:
rcu: INFO: rcu_preempt self-detected stall on CPU
rcu: 	1-...!: (1 GPs behind) idle=391/1/0x4000000000000000 softirq=115928/115931 fqs=13 
	(t=10500 jiffies g=184721 q=840)
NMI backtrace for cpu 1
CPU: 1 PID: 8908 Comm: syz-executor.0 Not tainted 5.17.0-rc1-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 <IRQ>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
 nmi_cpu_backtrace.cold+0x47/0x144 lib/nmi_backtrace.c:111
 nmi_trigger_cpumask_backtrace+0x1b3/0x230 lib/nmi_backtrace.c:62
 trigger_single_cpu_backtrace include/linux/nmi.h:164 [inline]
 rcu_dump_cpu_stacks+0x25e/0x3f0 kernel/rcu/tree_stall.h:343
 print_cpu_stall kernel/rcu/tree_stall.h:604 [inline]
 check_cpu_stall kernel/rcu/tree_stall.h:688 [inline]
 rcu_pending kernel/rcu/tree.c:3919 [inline]
 rcu_sched_clock_irq.cold+0x5c/0x759 kernel/rcu/tree.c:2617
 update_process_times+0x16d/0x200 kernel/time/timer.c:1785
 tick_sched_handle+0x9b/0x180 kernel/time/tick-sched.c:226
 tick_sched_timer+0x1b0/0x2d0 kernel/time/tick-sched.c:1428
 __run_hrtimer kernel/time/hrtimer.c:1685 [inline]
 __hrtimer_run_queues+0x1c0/0xe50 kernel/time/hrtimer.c:1749
 hrtimer_interrupt+0x31c/0x790 kernel/time/hrtimer.c:1811
 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1086 [inline]
 __sysvec_apic_timer_interrupt+0x146/0x530 arch/x86/kernel/apic/apic.c:1103
 sysvec_apic_timer_interrupt+0x40/0xc0 arch/x86/kernel/apic/apic.c:1097
 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:638
RIP: 0010:preempt_count_add+0x0/0x140 kernel/sched/core.c:5442
Code: ff ff 48 89 ef e8 d0 90 06 00 48 89 ef e8 58 5d 07 00 48 89 ee 48 8b 3d 0e 1e 44 0c 5d e9 b8 dd 6e 00 0f 1f 84 00 00 00 00 00 <48> c7 c0 00 c9 51 90 55 48 ba 00 00 00 00 00 fc ff df 48 89 c1 53
RSP: 0018:ffffc90000dc0ce8 EFLAGS: 00000246
RAX: 0000000000000000 RBX: ffff888024cbcc00 RCX: 0000000000000100
RDX: ffff88807c083a00 RSI: ffffffff83daecbd RDI: 0000000000000001
RBP: 0000000000000014 R08: 0000000000000000 R09: ffffffff8ffcea27
R10: ffffffff8166717d R11: 0000000000000001 R12: ffff888024cbcc10
R13: 1ffff920001b81a8 R14: ffffffff874d9e20 R15: 0000000000000000
 prandom_u32+0x17/0x470 lib/random32.c:387
 mrp_join_timer_arm+0x21/0x80 net/802/mrp.c:595
 call_timer_fn+0x1a5/0x6b0 kernel/time/timer.c:1421
 expire_timers kernel/time/timer.c:1466 [inline]
 __run_timers.part.0+0x67c/0xa30 kernel/time/timer.c:1734
 __run_timers kernel/time/timer.c:1715 [inline]
 run_timer_softirq+0xb3/0x1d0 kernel/time/timer.c:1747
 __do_softirq+0x29b/0x9c2 kernel/softirq.c:558
 invoke_softirq kernel/softirq.c:432 [inline]
 __irq_exit_rcu+0x123/0x180 kernel/softirq.c:637
 irq_exit_rcu+0x5/0x20 kernel/softirq.c:649
 sysvec_apic_timer_interrupt+0x93/0xc0 arch/x86/kernel/apic/apic.c:1097
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:638
RIP: 0010:__kasan_check_read+0x4/0x10 mm/kasan/shadow.c:31
Code: 49 07 48 85 db 0f 85 cb 43 4b 07 48 83 c4 60 5b 5d 41 5c 41 5d c3 c3 e9 cb 44 4b 07 cc cc cc cc cc cc cc cc cc cc 48 8b 0c 24 <89> f6 31 d2 e9 f3 f9 ff ff 0f 1f 00 48 8b 0c 24 89 f6 ba 01 00 00
RSP: 0018:ffffc9000ade76b8 EFLAGS: 00000286
RAX: ffffea00010c9bc0 RBX: 0000000000000000 RCX: ffffffff81c5a8fc
RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffffea00010c9bc0
RBP: ffffc9000ade7708 R08: 0000000000000000 R09: ffffffff8ffce947
R10: fffffbfff1ff9d28 R11: 0000000000000000 R12: ffffea00010c9bc0
R13: dffffc0000000000 R14: fffff9400021937f R15: 00007f5237968000
 instrument_atomic_read include/linux/instrumented.h:71 [inline]
 test_bit include/asm-generic/bitops/instrumented-non-atomic.h:134 [inline]
 folio_test_slab include/linux/page-flags.h:428 [inline]
 __folio_memcg include/linux/memcontrol.h:395 [inline]
 folio_memcg include/linux/memcontrol.h:447 [inline]
 folio_memcg_lock+0xec/0x3e0 mm/memcontrol.c:2022
 page_remove_rmap+0x25/0x1480 mm/rmap.c:1377
 zap_pte_range mm/memory.c:1380 [inline]
 zap_pmd_range mm/memory.c:1490 [inline]
 zap_pud_range mm/memory.c:1519 [inline]
 zap_p4d_range mm/memory.c:1540 [inline]
 unmap_page_range+0xf7f/0x2a30 mm/memory.c:1561
 unmap_single_vma+0x198/0x310 mm/memory.c:1606
 unmap_vmas+0x16b/0x2f0 mm/memory.c:1638
 exit_mmap+0x201/0x670 mm/mmap.c:3178
 __mmput+0x122/0x4b0 kernel/fork.c:1114
 mmput+0x56/0x60 kernel/fork.c:1135
 exit_mm kernel/exit.c:507 [inline]
 do_exit+0xa3c/0x2a30 kernel/exit.c:793
 do_group_exit+0xd2/0x2f0 kernel/exit.c:935
 get_signal+0x4b0/0x28c0 kernel/signal.c:2862
 arch_do_signal_or_restart+0x2a9/0x1c40 arch/x86/kernel/signal.c:868
 handle_signal_work kernel/entry/common.c:148 [inline]
 exit_to_user_mode_loop kernel/entry/common.c:172 [inline]
 exit_to_user_mode_prepare+0x17d/0x290 kernel/entry/common.c:207
 __syscall_exit_to_user_mode_work kernel/entry/common.c:289 [inline]
 syscall_exit_to_user_mode+0x19/0x60 kernel/entry/common.c:300
 do_syscall_64+0x42/0xb0 arch/x86/entry/common.c:86
 entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7f5238655059
Code: Unable to access opcode bytes at RIP 0x7f523865502f.
RSP: 002b:00007f5236fca168 EFLAGS: 00000246 ORIG_RAX: 0000000000000101
RAX: 0000000000000004 RBX: 00007f5238767f60 RCX: 00007f5238655059
RDX: 0000000000000180 RSI: 0000000020000040 RDI: ffffffffffffff9c
RBP: 00007f52386af08d R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f5238c9bb1f R14: 00007f5236fca300 R15: 0000000000022000
 </TASK>
----------------
Code disassembly (best guess), 1 bytes skipped:
   0:	ff 48 89             	decl   -0x77(%rax)
   3:	ef                   	out    %eax,(%dx)
   4:	e8 d0 90 06 00       	callq  0x690d9
   9:	48 89 ef             	mov    %rbp,%rdi
   c:	e8 58 5d 07 00       	callq  0x75d69
  11:	48 89 ee             	mov    %rbp,%rsi
  14:	48 8b 3d 0e 1e 44 0c 	mov    0xc441e0e(%rip),%rdi        # 0xc441e29
  1b:	5d                   	pop    %rbp
  1c:	e9 b8 dd 6e 00       	jmpq   0x6eddd9
  21:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  28:	00
* 29:	48 c7 c0 00 c9 51 90 	mov    $0xffffffff9051c900,%rax <-- trapping instruction
  30:	55                   	push   %rbp
  31:	48 ba 00 00 00 00 00 	movabs $0xdffffc0000000000,%rdx
  38:	fc ff df
  3b:	48 89 c1             	mov    %rax,%rcx
  3e:	53                   	push   %rbx

Crashes (2):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Title
ci-upstream-kasan-gce 2022/01/26 20:23 upstream 0280e3c58f92 2cbffd88 .config log report info INFO: rcu detected stall in mrp_join_timer_arm
ci-upstream-linux-next-kasan-gce-root 2021/12/13 06:45 linux-next ea922272cbe5 49ca1f59 .config log report info INFO: rcu detected stall in mrp_join_timer_arm
* Struck through repros no longer work on HEAD.