On 11/30/18 8:00 AM, Paweł Staszewski wrote: > > Traces attached below: > > > > [310658.536190] rcu: INFO: rcu_sched self-detected stall on CPU > [310658.536195] rcu: 15-....: (322 ticks this GP) > idle=fca/1/0x4000000000000002 softirq=50617185/50617185 fqs=64 > [310658.536195] rcu: (t=15049 jiffies g=84272013 q=4728) > [310658.536200] NMI backtrace for cpu 15 > [310658.536203] CPU: 15 PID: 87 Comm: ksoftirqd/15 Tainted: G > W 4.20.0-rc3+ #1 ... > [310658.536258] RIP: 0010:fib6_walk_continue+0x37/0xe6 ... > [310658.536268] ? call_fib6_entry_notifiers+0x59/0x59 > [310658.536272] fib6_walk+0x59/0x76 > [310658.536274] fib6_clean_tree+0x52/0x6c > [310658.536276] ? fib6_del+0x1da/0x1da > [310658.536278] ? call_fib6_entry_notifiers+0x59/0x59 > [310658.536280] __fib6_clean_all+0x55/0x71 > [310658.536282] fib6_run_gc+0x85/0xe6 > [310658.536285] ip6_dst_gc+0x74/0xbf > [310658.536288] dst_alloc+0x70/0x84 > [310658.536290] ip6_dst_alloc+0x1c/0x59 > [310658.536293] icmp6_dst_alloc+0x39/0xd9 > [310658.536295] ndisc_send_skb+0x8e/0x274 > [310658.536298] ? __kmalloc_reserve.isra.43+0x28/0x6a > [310658.536300] ndisc_send_ns+0x135/0x15e > [310658.536302] ? ndisc_solicit+0xdd/0x106 > [310658.536304] ndisc_solicit+0xdd/0x106 > [310658.536306] ? lock_timer_base+0x3d/0x61 > [310658.536308] ? neigh_table_init+0x1f9/0x1f9 > [310658.536310] ? neigh_probe+0x44/0x55 > [310658.536312] neigh_probe+0x44/0x55
... > [310736.112338] Sending NMI from CPU 12 to CPUs 0: > [310736.112438] NMI backtrace for cpu 0 > [310736.112439] CPU: 0 PID: 10 Comm: ksoftirqd/0 Tainted: G W > 4.20.0-rc3+ #1 > [310736.112439] RIP: 0010:fib6_age+0x4/0x29 ... > [310736.112447] Call Trace: > [310736.112447] fib6_clean_node+0x72/0xcf > [310736.112448] fib6_walk_continue+0x89/0xe6 > [310736.112448] fib6_walk+0x59/0x76 > [310736.112449] fib6_clean_tree+0x52/0x6c > [310736.112449] ? fib6_del+0x1da/0x1da > [310736.112450] ? call_fib6_entry_notifiers+0x59/0x59 > [310736.112450] __fib6_clean_all+0x55/0x71 > [310736.112450] fib6_run_gc+0x85/0xe6 > [310736.112451] ip6_dst_gc+0x74/0xbf > [310736.112451] dst_alloc+0x70/0x84 > [310736.112452] ip6_dst_alloc+0x1c/0x59 > [310736.112452] ip6_pol_route+0x1b0/0x23b > [310736.112453] fib6_rule_lookup+0x19/0x4e > [310736.112453] ip6_dst_lookup_tail+0x100/0x18c > [310736.112453] ip6_dst_lookup_flow+0x40/0x7f > [310736.112454] inet6_sk_rebuild_header+0xd3/0x172 > [310736.112454] ? tcp_write_timer_handler+0x1c5/0x1c5 > [310736.112455] ? __tcp_retransmit_skb+0x94/0x4cd > [310736.112455] __tcp_retransmit_skb+0x94/0x4cd > [310736.112456] ? tcp_write_timer_handler+0x1c5/0x1c5 > [310736.112456] tcp_retransmit_skb+0xd/0x60 > [310736.112457] tcp_retransmit_timer+0x358/0x57c > [310736.112457] tcp_write_timer_handler+0x6f/0x1c5 > [310736.112458] tcp_write_timer+0x29/0x55 gc kicked in on different cpus. fib6_gc_lock should prevent the second one from proceeding.