[v5.15] INFO: rcu detected stall in sys_symlinkat (3)

0 views
Skip to first unread message

syzbot

unread,
May 23, 2024, 1:25:25 AMMay 23
to syzkaller...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 83655231580b Linux 5.15.159
git tree: linux-5.15.y
console output: https://syzkaller.appspot.com/x/log.txt?x=13db643c980000
kernel config: https://syzkaller.appspot.com/x/.config?x=c49fc0ce9b46e64b
dashboard link: https://syzkaller.appspot.com/bug?extid=06c309653e18d83baf54
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
userspace arch: arm64

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

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/faa8b26e9d92/disk-83655231.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/dacb199b57cf/vmlinux-83655231.xz
kernel image: https://storage.googleapis.com/syzbot-assets/d7c5b8943497/Image-83655231.gz.xz

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

rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
rcu: Tasks blocked on level-0 rcu_node (CPUs 0-1): P8053/1:b..l
(detected by 1, t=10502 jiffies, g=21185, q=175)
task:syz-executor.0 state:R running task stack: 0 pid: 8053 ppid: 7280 flags:0x00000004
Call trace:
__switch_to+0x308/0x5e8 arch/arm64/kernel/process.c:518
context_switch kernel/sched/core.c:5030 [inline]
__schedule+0xf10/0x1e48 kernel/sched/core.c:6376
preempt_schedule_irq+0x90/0x274 kernel/sched/core.c:6780
arm64_preempt_schedule_irq+0x174/0x2c4 arch/arm64/kernel/entry-common.c:260
el1_interrupt+0x40/0x58 arch/arm64/kernel/entry-common.c:463
el1h_64_irq_handler+0x18/0x24 arch/arm64/kernel/entry-common.c:470
el1h_64_irq+0x78/0x7c arch/arm64/kernel/entry.S:522
arch_local_irq_restore arch/arm64/include/asm/irqflags.h:122 [inline]
seqcount_lockdep_reader_access+0x228/0x2d0 include/linux/seqlock.h:105
read_seqbegin include/linux/seqlock.h:840 [inline]
read_seqbegin_or_lock include/linux/seqlock.h:1144 [inline]
prepend_path+0xd8/0xaf8 fs/d_path.c:167
d_absolute_path+0x13c/0x27c fs/d_path.c:235
tomoyo_get_absolute_path security/tomoyo/realpath.c:101 [inline]
tomoyo_realpath_from_path+0x2a4/0x508 security/tomoyo/realpath.c:276
tomoyo_get_realpath security/tomoyo/file.c:151 [inline]
tomoyo_path_perm+0x208/0x568 security/tomoyo/file.c:822
tomoyo_path_symlink+0xd8/0x11c security/tomoyo/tomoyo.c:199
security_path_symlink+0xec/0x13c security/security.c:1179
do_symlinkat+0x1c4/0x6b0 fs/namei.c:4453
__do_sys_symlinkat fs/namei.c:4475 [inline]
__se_sys_symlinkat fs/namei.c:4472 [inline]
__arm64_sys_symlinkat+0xa4/0xbc fs/namei.c:4472
__invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:52
el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142
do_el0_svc+0x58/0x14c arch/arm64/kernel/syscall.c:181
el0_svc+0x7c/0x1f0 arch/arm64/kernel/entry-common.c:608
el0t_64_sync_handler+0x84/0xe4 arch/arm64/kernel/entry-common.c:626
el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584
rcu: rcu_preempt kthread starved for 10502 jiffies! g21185 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x0 ->cpu=1
rcu: Unless rcu_preempt kthread gets sufficient CPU time, OOM is now expected behavior.
rcu: RCU grace-period kthread stack dump:
task:rcu_preempt state:R running task stack: 0 pid: 15 ppid: 2 flags:0x00000008
Call trace:
__switch_to+0x308/0x5e8 arch/arm64/kernel/process.c:518
context_switch kernel/sched/core.c:5030 [inline]
__schedule+0xf10/0x1e48 kernel/sched/core.c:6376
preempt_schedule_irq+0x90/0x274 kernel/sched/core.c:6780
arm64_preempt_schedule_irq+0x174/0x2c4 arch/arm64/kernel/entry-common.c:260
el1_interrupt+0x40/0x58 arch/arm64/kernel/entry-common.c:463
el1h_64_irq_handler+0x18/0x24 arch/arm64/kernel/entry-common.c:470
el1h_64_irq+0x78/0x7c arch/arm64/kernel/entry.S:522
arch_local_irq_restore arch/arm64/include/asm/irqflags.h:122 [inline]
__free_object+0x1c0/0x868 lib/debugobjects.c:357
free_object lib/debugobjects.c:426 [inline]
debug_object_free+0x2b4/0x454 lib/debugobjects.c:851
destroy_timer_on_stack kernel/time/timer.c:759 [inline]
schedule_timeout+0x1f0/0x344 kernel/time/timer.c:1918
rcu_gp_fqs_loop+0x26c/0x13d4 kernel/rcu/tree.c:1972
rcu_gp_kthread+0xc4/0x2c4 kernel/rcu/tree.c:2145
kthread+0x37c/0x45c kernel/kthread.c:334
ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:870
rcu: Stack dump where RCU GP kthread last ran:
Task dump for CPU 1:
task:syz-executor.2 state:R running task stack: 0 pid: 8057 ppid: 6167 flags:0x00000000
Call trace:
dump_backtrace+0x0/0x530 arch/arm64/kernel/stacktrace.c:152
show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:216
sched_show_task+0x43c/0x574 kernel/sched/core.c:8640
dump_cpu_task+0x84/0xa8 kernel/sched/core.c:10914
rcu_check_gp_kthread_starvation+0x1f0/0x254 kernel/rcu/tree_stall.h:488
print_other_cpu_stall+0x202c/0x2290 kernel/rcu/tree_stall.h:592
check_cpu_stall kernel/rcu/tree_stall.h:745 [inline]
rcu_pending kernel/rcu/tree.c:3932 [inline]
rcu_sched_clock_irq+0x1894/0x1b8c kernel/rcu/tree.c:2619
update_process_times+0x1d4/0x270 kernel/time/timer.c:1818
tick_sched_handle kernel/time/tick-sched.c:254 [inline]
tick_sched_timer+0x340/0x4f8 kernel/time/tick-sched.c:1473
__run_hrtimer kernel/time/hrtimer.c:1686 [inline]
__hrtimer_run_queues+0x458/0xca4 kernel/time/hrtimer.c:1750
hrtimer_interrupt+0x2c0/0xb64 kernel/time/hrtimer.c:1812
timer_handler drivers/clocksource/arm_arch_timer.c:659 [inline]
arch_timer_handler_virt+0x74/0x88 drivers/clocksource/arm_arch_timer.c:670
handle_percpu_devid_irq+0x29c/0x7fc kernel/irq/chip.c:933
generic_handle_irq_desc include/linux/irqdesc.h:158 [inline]
handle_irq_desc kernel/irq/irqdesc.c:651 [inline]
handle_domain_irq+0xec/0x178 kernel/irq/irqdesc.c:706
gic_handle_irq+0x78/0x1c8 drivers/irqchip/irq-gic-v3.c:758
call_on_irq_stack+0x24/0x4c arch/arm64/kernel/entry.S:899
do_interrupt_handler+0x74/0x94 arch/arm64/kernel/entry-common.c:267
el1_interrupt+0x30/0x58 arch/arm64/kernel/entry-common.c:454
el1h_64_irq_handler+0x18/0x24 arch/arm64/kernel/entry-common.c:470
el1h_64_irq+0x78/0x7c arch/arm64/kernel/entry.S:522
arch_local_irq_enable arch/arm64/include/asm/irqflags.h:35 [inline]
__raw_spin_unlock_irq include/linux/spinlock_api_smp.h:168 [inline]
_raw_spin_unlock_irq+0xa4/0x134 kernel/locking/spinlock.c:202
spin_unlock_irq include/linux/spinlock.h:413 [inline]
__set_current_blocked kernel/signal.c:3077 [inline]
set_current_blocked kernel/signal.c:3061 [inline]
signal_delivered kernel/signal.c:2925 [inline]
signal_setup_done+0x3b4/0x5e8 kernel/signal.c:2936
handle_signal arch/arm64/kernel/signal.c:839 [inline]
do_signal arch/arm64/kernel/signal.c:905 [inline]
do_notify_resume+0x870/0x32b8 arch/arm64/kernel/signal.c:943
prepare_exit_to_user_mode arch/arm64/kernel/entry-common.c:133 [inline]
exit_to_user_mode arch/arm64/kernel/entry-common.c:138 [inline]
el0_svc+0xfc/0x1f0 arch/arm64/kernel/entry-common.c:609
el0t_64_sync_handler+0x84/0xe4 arch/arm64/kernel/entry-common.c:626
el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584


---
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