Re: [PATCH net-next v2 05/10] net: sched: use Qdisc rcu API instead of relying on rtnl lock

2018-09-21 Thread Cong Wang
On Thu, Sep 20, 2018 at 12:21 AM Vlad Buslov wrote: > > > On Wed 19 Sep 2018 at 22:04, Cong Wang wrote: > > On Mon, Sep 17, 2018 at 12:19 AM Vlad Buslov wrote: > >> +static void tcf_qdisc_put(struct Qdisc *q, bool rtnl_held) > >> +{ > >> + if (!q) > >> + return; > >> + > >> +

Re: [PATCH net-next v2 05/10] net: sched: use Qdisc rcu API instead of relying on rtnl lock

2018-09-20 Thread Vlad Buslov
On Wed 19 Sep 2018 at 22:04, Cong Wang wrote: > On Mon, Sep 17, 2018 at 12:19 AM Vlad Buslov wrote: >> +static void tcf_qdisc_put(struct Qdisc *q, bool rtnl_held) >> +{ >> + if (!q) >> + return; >> + >> + if (rtnl_held) >> + qdisc_put(q); >> + else

Re: [PATCH net-next v2 05/10] net: sched: use Qdisc rcu API instead of relying on rtnl lock

2018-09-19 Thread Cong Wang
On Mon, Sep 17, 2018 at 12:19 AM Vlad Buslov wrote: > +static void tcf_qdisc_put(struct Qdisc *q, bool rtnl_held) > +{ > + if (!q) > + return; > + > + if (rtnl_held) > + qdisc_put(q); > + else > + qdisc_put_unlocked(q); > +} This is very

[PATCH net-next v2 05/10] net: sched: use Qdisc rcu API instead of relying on rtnl lock

2018-09-17 Thread Vlad Buslov
As a preparation from removing rtnl lock dependency from rules update path, use Qdisc rcu and reference counting capabilities instead of relying on rtnl lock while working with Qdiscs. Create new tcf_block_release() function, and use it to free resources taken by tcf_block_find(). Currently, this f