Commit 46b13fc5 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

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 0ed8ddf4 (neigh: Protect neigh->ha[]
with a seqlock)

This gives a 7% speedup on routing test with IP route cache disabled.
Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c0c04c2a
...@@ -96,16 +96,16 @@ struct neighbour { ...@@ -96,16 +96,16 @@ struct neighbour {
struct neigh_parms *parms; struct neigh_parms *parms;
unsigned long confirmed; unsigned long confirmed;
unsigned long updated; unsigned long updated;
__u8 flags; rwlock_t lock;
__u8 nud_state;
__u8 type;
__u8 dead;
atomic_t refcnt; atomic_t refcnt;
struct sk_buff_head arp_queue; struct sk_buff_head arp_queue;
struct timer_list timer; struct timer_list timer;
unsigned long used; unsigned long used;
atomic_t probes; atomic_t probes;
rwlock_t lock; __u8 flags;
__u8 nud_state;
__u8 type;
__u8 dead;
seqlock_t ha_lock; seqlock_t ha_lock;
unsigned char ha[ALIGN(MAX_ADDR_LEN, sizeof(unsigned long))]; unsigned char ha[ALIGN(MAX_ADDR_LEN, sizeof(unsigned long))];
struct hh_cache *hh; struct hh_cache *hh;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment