On 11/14/2017 05:16 PM, Willem de Bruijn wrote: > 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. > Actually I think this change can just be dropped. Looks like I removed all cases of calling it from NOLOCK paths.
Also squashing this patch with 11/17 seems reasonable will go ahead and do that.