On Mon, Nov 13, 2017 at 3:10 PM, John Fastabend <john.fastab...@gmail.com> wrote: > Add qdisc qlen helper routines for lockless qdiscs to use. > > The qdisc qlen is no longer used in the hotpath but it is reported > via stats query on the qdisc so it still needs to be tracked. This > adds the per cpu operations needed. > > Signed-off-by: John Fastabend <john.fastab...@gmail.com> > --- > 0 files changed > > diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h > index 4717c4b..bad24a9 100644 > --- a/include/net/sch_generic.h > +++ b/include/net/sch_generic.h > @@ -291,8 +291,16 @@ static inline void qdisc_cb_private_validate(const > struct sk_buff *skb, int sz) > BUILD_BUG_ON(sizeof(qcb->data) < sz); > } > > +static inline int qdisc_qlen_cpu(const struct Qdisc *q) > +{ > + return this_cpu_ptr(q->cpu_qstats)->qlen; > +} > + > static inline int qdisc_qlen(const struct Qdisc *q) > { > + if (q->flags & TCQ_F_NOLOCK) > + return qdisc_qlen_cpu(q);
Shouldn't this return qdisc_qlen_sum from the follow-on patch? The two patches can also be squashed.