From: Eric Dumazet Date: Thu, 11 Nov 2010 06:57:19 +0000 (+0000) Subject: neigh: reorder struct neighbour X-Git-Tag: upstream/snapshot3+hdmi~12141^2~600 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=46b13fc5c0f239f36e84665c73087d5fa86bfd86;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git neigh: reorder struct neighbour It is important to move nud_state outside of the often modified cache line (because of refcnt), to reduce false sharing in neigh_event_send() This is a followup of commit 0ed8ddf4045f (neigh: Protect neigh->ha[] with a seqlock) This gives a 7% speedup on routing test with IP route cache disabled. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller --- diff --git a/include/net/neighbour.h b/include/net/neighbour.h index 55590ab..815b2ce 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h @@ -96,16 +96,16 @@ struct neighbour { struct neigh_parms *parms; unsigned long confirmed; unsigned long updated; - __u8 flags; - __u8 nud_state; - __u8 type; - __u8 dead; + rwlock_t lock; atomic_t refcnt; struct sk_buff_head arp_queue; struct timer_list timer; unsigned long used; atomic_t probes; - rwlock_t lock; + __u8 flags; + __u8 nud_state; + __u8 type; + __u8 dead; seqlock_t ha_lock; unsigned char ha[ALIGN(MAX_ADDR_LEN, sizeof(unsigned long))]; struct hh_cache *hh;