Re: [PATCH net-next 03/13] net: sched: extend Qdisc with rcu
From: Eric Dumazet <hidden>
Date: 2018-09-06 14:03:56
On 09/06/2018 02:23 AM, Vlad Buslov wrote:
On Thu 06 Sep 2018 at 08:39, Kirill Tkhai [off-list ref] wrote:quoted
On 06.09.2018 11:30, Eric Dumazet wrote:quoted
On 09/06/2018 12:58 AM, Vlad Buslov wrote: ...quoted
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 18e22a5a6550..239c73f29471 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h@@ -90,6 +90,7 @@ struct Qdisc { struct gnet_stats_queue __percpu *cpu_qstats; int padded; refcount_t refcnt; + struct rcu_head rcu; /* * For performance sake on SMP, we put highly modified fields at the endProbably better to move this at the end of struct Qdisc, not risking unexpected performance regressions in fast path.Do you mean regressions on UP? On SMP it looks like this field fits in the unused gap created by: struct sk_buff_head gso_skb ____cacheline_aligned_in_smp; KirillHi Eric, Kirill I intentionally put rcu_head here in order for it not to be in same cache line with "highly modified fields" (according to comment).
My personal preference would have been to use the last cache line for a new 'control path field', and leave holes in the first one for future needs in fast path. But this is a minor detail really, either choice is fine.