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.

Reply via email to