fib_rules: reorder struct fib_rules fields
authorEric Dumazet <edumazet@google.com>
Sat, 3 Aug 2013 18:50:35 +0000 (11:50 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 3 Aug 2013 18:53:54 +0000 (11:53 -0700)
Move refcnt, pref, suppress_ifgroup, suppress_prefixlen out of first
cache line, as they are not used in fast path.

Make sure ctarget & fr_net are in first cache line.

(Assuming 64 bit arches and 64 bytes cache lines)

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

index 9d0fcbaa9cbbe724c8160c81311f95ecc6177c3b..4b2b557fb0e8c2d709e1733a13e4ca3dbc02ff0e 100644 (file)
 
 struct fib_rule {
        struct list_head        list;
-       atomic_t                refcnt;
        int                     iifindex;
        int                     oifindex;
        u32                     mark;
        u32                     mark_mask;
-       u32                     pref;
        u32                     flags;
        u32                     table;
-       int                     suppress_ifgroup;
-       int                     suppress_prefixlen;
        u8                      action;
+       /* 3 bytes hole, try to use */
        u32                     target;
        struct fib_rule __rcu   *ctarget;
+       struct net              *fr_net;
+
+       atomic_t                refcnt;
+       u32                     pref;
+       int                     suppress_ifgroup;
+       int                     suppress_prefixlen;
        char                    iifname[IFNAMSIZ];
        char                    oifname[IFNAMSIZ];
        struct rcu_head         rcu;
-       struct net *            fr_net;
 };
 
 struct fib_lookup_arg {