From: Paolo Abeni <pab...@redhat.com> Date: Fri, 25 May 2018 16:28:44 +0200
> The struct Qdisc has a lot of holes, especially after commit > a53851e2c321 ("net: sched: explicit locking in gso_cpu fallback"), > which as a side effect, moved the fields just after 'busylock' > on a new cacheline. > > Since both 'padded' and 'refcnt' are not updated frequently, and > there is a hole before 'gso_skb', we can move such fields there, > saving a cacheline without any performance side effect. > > Before this commit: > > pahole -C Qdisc net/sche/sch_generic.o > # ... > /* size: 384, cachelines: 6, members: 25 */ > /* sum members: 236, holes: 3, sum holes: 92 */ > /* padding: 56 */ > > After this commit: > pahole -C Qdisc net/sche/sch_generic.o > # ... > /* size: 320, cachelines: 5, members: 25 */ > /* sum members: 236, holes: 2, sum holes: 28 */ > /* padding: 56 */ > > Signed-off-by: Paolo Abeni <pab...@redhat.com> Applied.