Fri, May 25, 2018 at 04:28:44PM CEST, pab...@redhat.com wrote: >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>
Acked-by: Jiri Pirko <j...@mellanox.com>