Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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;