net: Increase NET_SKB_PAD to 64 bytes

eth_type_trans() & get_rps_cpus() currently need two 64bytes cache
lines in packet to compute rxhash.

Increasing NET_SKB_PAD from 32 to 64 reduces the need to one cache
line only, and makes RPS faster.

NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Eric Dumazet 2010-05-06 21:58:51 -07:00 committed by David S. Miller
parent d6bc0149d8
commit 18e8c134f4

View File

@ -1361,9 +1361,12 @@ static inline int skb_network_offset(const struct sk_buff *skb)
* *
* Various parts of the networking layer expect at least 32 bytes of * Various parts of the networking layer expect at least 32 bytes of
* headroom, you should not reduce this. * headroom, you should not reduce this.
* With RPS, we raised NET_SKB_PAD to 64 so that get_rps_cpus() fetches span
* a 64 bytes aligned block to fit modern (>= 64 bytes) cache line sizes
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/ */
#ifndef NET_SKB_PAD #ifndef NET_SKB_PAD
#define NET_SKB_PAD 32 #define NET_SKB_PAD 64
#endif #endif
extern int ___pskb_trim(struct sk_buff *skb, unsigned int len); extern int ___pskb_trim(struct sk_buff *skb, unsigned int len);