Re: [net-next PATCH 04/15] net: sched: provide per cpu qstat helpers
From: John Fastabend <john.fastabend@gmail.com>
Date: 2016-08-24 00:06:22
On 16-08-23 04:25 PM, Eric Dumazet wrote:
On Tue, 2016-08-23 at 13:24 -0700, John Fastabend wrote:quoted
The per cpu qstats support was added with per cpu bstat support which is currently used by the ingress qdisc. This patch adds a set of helpers needed to make other qdiscs that use qstats per cpu as well. Signed-off-by: John Fastabend <redacted> --- include/net/sch_generic.h | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 3de6a8c..f1b8268 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h@@ -565,12 +565,43 @@ static inline void qdisc_qstats_backlog_dec(struct Qdisc *sch, sch->qstats.backlog -= qdisc_pkt_len(skb); } +static inline void qdisc_qstats_cpu_backlog_dec(struct Qdisc *sch, + const struct sk_buff *skb) +{ + struct gnet_stats_queue *q = this_cpu_ptr(sch->cpu_qstats); + + q->backlog -= qdisc_pkt_len(skb);Probably could use this_cpu_sub(sch->cpu_qstats->backlog, qdisc_pkt_len(skb))
Sure, should probably create a patch to do the same for some existing cases matching this pattern as well then.