Re: [Patch net] net_sched: fix a missing rcu barrier in mini_qdisc_pair_swap()

2017-12-26 Thread David Miller
From: Cong Wang Date: Wed, 20 Dec 2017 23:26:24 -0800 > The rcu_barrier_bh() in mini_qdisc_pair_swap() is to wait for > flying RCU callback installed by a previous mini_qdisc_pair_swap(), > however we miss it on the tp_head==NULL path, which leads to that > the RCU callback still uses miniq_old->

Re: [Patch net] net_sched: fix a missing rcu barrier in mini_qdisc_pair_swap()

2017-12-22 Thread Jiri Pirko
Thu, Dec 21, 2017 at 08:26:24AM CET, xiyou.wangc...@gmail.com wrote: >The rcu_barrier_bh() in mini_qdisc_pair_swap() is to wait for >flying RCU callback installed by a previous mini_qdisc_pair_swap(), >however we miss it on the tp_head==NULL path, which leads to that >the RCU callback still uses mi

Re: [Patch net] net_sched: fix a missing rcu barrier in mini_qdisc_pair_swap()

2017-12-22 Thread Jiri Pirko
Thu, Dec 21, 2017 at 08:01:35PM CET, xiyou.wangc...@gmail.com wrote: >On Thu, Dec 21, 2017 at 1:03 AM, Jiri Pirko wrote: >> Thu, Dec 21, 2017 at 08:26:24AM CET, xiyou.wangc...@gmail.com wrote: [...] > > >Seriously? It is this call_rcu still flying after we free the qdisc. >Did you seriously look

Re: [Patch net] net_sched: fix a missing rcu barrier in mini_qdisc_pair_swap()

2017-12-22 Thread Jiri Pirko
Thu, Dec 21, 2017 at 09:54:06PM CET, xiyou.wangc...@gmail.com wrote: >On Thu, Dec 21, 2017 at 11:01 AM, Cong Wang wrote: >> On Thu, Dec 21, 2017 at 1:03 AM, Jiri Pirko wrote: >>> >>> >>> But again, we don't we just free qdisc in call_rcu and avoid the >>> barrier? >> >> >> Non-sense again. Why qd

Re: [Patch net] net_sched: fix a missing rcu barrier in mini_qdisc_pair_swap()

2017-12-21 Thread Cong Wang
On Thu, Dec 21, 2017 at 11:01 AM, Cong Wang wrote: > On Thu, Dec 21, 2017 at 1:03 AM, Jiri Pirko wrote: >> >> >> But again, we don't we just free qdisc in call_rcu and avoid the >> barrier? > > > Non-sense again. Why qdisc code should be adjusted for your > miniq code? It is your own responsibili

Re: [Patch net] net_sched: fix a missing rcu barrier in mini_qdisc_pair_swap()

2017-12-21 Thread Cong Wang
On Thu, Dec 21, 2017 at 1:03 AM, Jiri Pirko wrote: > Thu, Dec 21, 2017 at 08:26:24AM CET, xiyou.wangc...@gmail.com wrote: >>The rcu_barrier_bh() in mini_qdisc_pair_swap() is to wait for >>flying RCU callback installed by a previous mini_qdisc_pair_swap(), >>however we miss it on the tp_head==NULL

Re: [Patch net] net_sched: fix a missing rcu barrier in mini_qdisc_pair_swap()

2017-12-21 Thread Jiri Pirko
Thu, Dec 21, 2017 at 08:26:24AM CET, xiyou.wangc...@gmail.com wrote: >The rcu_barrier_bh() in mini_qdisc_pair_swap() is to wait for >flying RCU callback installed by a previous mini_qdisc_pair_swap(), >however we miss it on the tp_head==NULL path, which leads to that >the RCU callback still uses mi

[Patch net] net_sched: fix a missing rcu barrier in mini_qdisc_pair_swap()

2017-12-20 Thread Cong Wang
The rcu_barrier_bh() in mini_qdisc_pair_swap() is to wait for flying RCU callback installed by a previous mini_qdisc_pair_swap(), however we miss it on the tp_head==NULL path, which leads to that the RCU callback still uses miniq_old->rcu after it is freed together with qdisc in qdisc_graft(). So j