On Fri, Sep 28, 2018 at 10:25 AM Dave Jones <da...@codemonkey.org.uk> wrote: > > On Fri, Sep 28, 2018 at 09:55:52AM -0700, Cong Wang wrote: > > On Fri, Sep 28, 2018 at 9:18 AM Dave Jones <da...@codemonkey.org.uk> wrote: > > > > > > Callers of bond_for_each_slave_rcu are expected to hold the rcu lock, > > > otherwise a trace like below is shown > > > > So why not take rcu read lock in netpoll_send_skb_on_dev() where > > RCU is also assumed? > > that does seem to solve the backtrace spew I saw too, so if that's > preferable I can respin the patch.
>From my observations, netpoll_send_skb_on_dev() does not take RCU read lock _and_ it relies on rcu read lock because it calls rcu_dereference_bh(). If my observation is correct, you should catch a RCU warning like this but within netpoll_send_skb_on_dev(). > > > As I said, I can't explain why you didn't trigger the RCU warning in > > netpoll_send_skb_on_dev()... > > netpoll_send_skb_on_dev takes the rcu lock itself. Could you please point me where exactly is the rcu lock here? I am too stupid to see it. :)