[IPV4] inet_peer: Group together avl_left, avl_right, v4daddr to speedup lookups...
authorEric Dumazet <dada1@cosmosbay.com>
Fri, 20 Oct 2006 07:28:35 +0000 (00:28 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 20 Oct 2006 07:28:35 +0000 (00:28 -0700)
Lot of routers/embedded devices still use CPUS with 16/32 bytes cache
lines.  (486, Pentium, ...  PIII) It makes sense to group together
fields used at lookup time so they fit in one cache line.  This reduce
cache footprint and speedup lookups.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inetpeer.h

index f13cc0c2b163f76eeb45cfabc4d5a7591f854635..aa10a8178e7011532d63e66ef0d0d08dfc583634 100644 (file)
 
 struct inet_peer
 {
+       /* group together avl_left,avl_right,v4daddr to speedup lookups */
        struct inet_peer        *avl_left, *avl_right;
+       __be32                  v4daddr;        /* peer's address */
+       __u16                   avl_height;
+       __u16                   ip_id_count;    /* IP ID for the next packet */
        struct inet_peer        *unused_next, **unused_prevp;
        __u32                   dtime;          /* the time of last use of not
                                                 * referenced entries */
        atomic_t                refcnt;
-       __be32                  v4daddr;        /* peer's address */
-       __u16                   avl_height;
-       __u16                   ip_id_count;    /* IP ID for the next packet */
        atomic_t                rid;            /* Frag reception counter */
        __u32                   tcp_ts;
        unsigned long           tcp_ts_stamp;