Re: rcu: frequent rcu lockups

Sasha Levin
2015-03-11T20:19:13Z

[-- Attachment #1: Type: text/plain, Size: 3077 bytes --]

On 03/11/2015 04:17 PM, Paul E. McKenney wrote:
> On Wed, Mar 11, 2015 at 03:57:32PM -0400, Sasha Levin wrote:
>> Hi all,
>>
>> I've started seeing the following hang pretty often during my fuzzing. The
>> system proceeds to lock up after that.
>>
>> [ 3209.655703] INFO: rcu_preempt detected stalls on CPUs/tasks:
>> [ 3209.655703] Tasks blocked on level-1 rcu_node (CPUs 16-31):
>> [ 3209.655703] (detected by 0, t=30502 jiffies, g=48799, c=48798, q=1730)
>> [ 3209.655703] All QSes seen, last rcu_preempt kthread activity 1 (4295246069-4295246068), jiffies_till_next_fqs=1, root ->qsmask 0x2
>> [ 3209.655703] trinity-c24 R running task 26944 9338 9110 0x10080000
>> [ 3209.655703] 0000000000002396 00000000e68fa48e ffff880050607dc8 ffffffffa427679b
>> [ 3209.655703] ffff880050607d98 ffffffffb1b36000 0000000000000001 00000001000440f4
>> [ 3209.655703] ffffffffb1b351c8 dffffc0000000000 ffff880050622000 ffffffffb1721000
>> [ 3209.655703] Call Trace:
>> [ 3209.655703] <IRQ> sched_show_task (kernel/sched/core.c:4542)
>> [ 3209.655703] rcu_check_callbacks (kernel/rcu/tree.c:1225 kernel/rcu/tree.c:1331 kernel/rcu/tree.c:3389 kernel/rcu/tree.c:3453 kernel/rcu/tree.c:2683)
>> [ 3209.655703] ? acct_account_cputime (kernel/tsacct.c:168)
>> [ 3209.655703] update_process_times (./arch/x86/include/asm/preempt.h:22 kernel/time/timer.c:1386)
>> [ 3209.655703] tick_periodic (kernel/time/tick-common.c:92)
>> [ 3209.655703] ? tick_handle_periodic (kernel/time/tick-common.c:105)
>> [ 3209.655703] tick_handle_periodic (kernel/time/tick-common.c:105)
>> [ 3209.655703] local_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:891)
>> [ 3209.655703] smp_trace_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:934 include/linux/jump_label.h:114 ./arch/x86/include/asm/trace/irq_vectors.h:45 arch/x86/kernel/apic/apic.c:935)
>> [ 3209.655703] trace_apic_timer_interrupt (arch/x86/kernel/entry_64.S:920)
>> [ 3209.655703] <EOI> ? add_wait_queue (include/linux/wait.h:116 kernel/sched/wait.c:29)
>> [ 3209.655703] ? _raw_spin_unlock_irqrestore (./arch/x86/include/asm/paravirt.h:809 include/linux/spinlock_api_smp.h:162 kernel/locking/spinlock.c:191)
>> [ 3209.655703] add_wait_queue (kernel/sched/wait.c:31)
>> [ 3209.655703] do_wait (kernel/exit.c:1473)
>> [ 3209.655703] ? trace_rcu_dyntick (include/trace/events/rcu.h:363 (discriminator 19))
>> [ 3209.655703] ? wait_consider_task (kernel/exit.c:1465)
>> [ 3209.655703] ? find_get_pid (kernel/pid.c:490)
>> [ 3209.655703] SyS_wait4 (kernel/exit.c:1618 kernel/exit.c:1586)
>> [ 3209.655703] ? perf_syscall_exit (kernel/trace/trace_syscalls.c:549)
>> [ 3209.655703] ? SyS_waitid (kernel/exit.c:1586)
>> [ 3209.655703] ? kill_orphaned_pgrp (kernel/exit.c:1444)
>> [ 3209.655703] ? syscall_trace_enter_phase2 (arch/x86/kernel/ptrace.c:1592)
>> [ 3209.655703] ? trace_hardirqs_on_thunk (arch/x86/lib/thunk_64.S:42)
>> [ 3209.655703] tracesys_phase2 (arch/x86/kernel/entry_64.S:347)
>
> OK, that is not good.
>
> What version are you running and what is your .config?

latest -next. .config attached.

Thanks,
Sasha

[-- Attachment #2: config-sasha.gz --]
[-- Type: application/gzip, Size: 40069 bytes --]