Re: [RFC PATCH 08/13] net: sched: support skb_bad_tx with lockless qdisc
From: John Fastabend <john.fastabend@gmail.com>
Date: 2016-08-23 20:12:29
On 16-08-17 04:00 PM, John Fastabend wrote:
On 16-08-17 03:58 PM, Eric Dumazet wrote:quoted
On Wed, 2016-08-17 at 12:36 -0700, John Fastabend wrote:quoted
Similar to how gso is handled skb_bad_tx needs to be per cpu to handle lockless qdisc with multiple writer/producers.\quoted
@@ -1021,6 +1026,7 @@ err_out4: free_percpu(sch->cpu_bstats); free_percpu(sch->cpu_qstats); free_percpu(sch->gso_cpu_skb); + free_percpu(sch->skb_bad_txq_cpu);This might be the time to group all these per cpu allocations to a single one, to help data locality and decrease overhead of having XX pointers.Sounds like a good idea to me. I'll go ahead and add a patch to the front to consolidate the stats and then add these there.
Actually this turned out to be not so trivial. To do it reasonably requires changes in how gnet stats work and such. I'm going to propose pushing this into a series after the initial lockless set otherwise the patch set is going to start pushing 20+ patches. Also a follow on series to make all the qdiscs support per cpu stats would be nice and allows us to remove a lot of the annoying if/else cases around stats. Its a bit tedious to go and change all the qdiscs but mostly mechanical. .John