On 16-08-23 04:25 PM, Eric Dumazet wrote:
> On Tue, 2016-08-23 at 13:24 -0700, John Fastabend wrote:
>> 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 <john.r.fastab...@intel.com>
>> ---
>>  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.

Reply via email to