ipv6: move ip6_dst_ops first in netns_ipv6
authorEric Dumazet <edumazet@google.com>
Wed, 31 Mar 2021 17:52:13 +0000 (10:52 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 31 Mar 2021 21:48:20 +0000 (14:48 -0700)
ip6_dst_ops have cache line alignement.

Moving it at beginning of netns_ipv6
removes a 48 byte hole, and shrinks netns_ipv6
from 12 to 11 cache lines.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/netns/ipv6.h

index 84f4a8b..808f0f7 100644 (file)
@@ -55,6 +55,9 @@ struct netns_sysctl_ipv6 {
 };
 
 struct netns_ipv6 {
+       /* Keep ip6_dst_ops at the beginning of netns_sysctl_ipv6 */
+       struct dst_ops          ip6_dst_ops;
+
        struct netns_sysctl_ipv6 sysctl;
        struct ipv6_devconf     *devconf_all;
        struct ipv6_devconf     *devconf_dflt;
@@ -76,7 +79,6 @@ struct netns_ipv6 {
        struct hlist_head       *fib_table_hash;
        struct fib6_table       *fib6_main_tbl;
        struct list_head        fib6_walkers;
-       struct dst_ops          ip6_dst_ops;
        rwlock_t                fib6_walker_lock;
        spinlock_t              fib6_gc_lock;
        unsigned int             ip6_rt_gc_expire;