aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/skbuff.h
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2010-05-07 00:58:51 -0400
committerDavid S. Miller <davem@davemloft.net>2010-05-07 00:58:51 -0400
commit18e8c134f4e984e6639e62846345192816f06d5c (patch)
tree81bb46de14f020424716bd41915e831b07ce00c6 /include/linux/skbuff.h
parentd6bc0149d8f2300bffa03ea6fea3ca39744277a6 (diff)
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>
Diffstat (limited to 'include/linux/skbuff.h')
-rw-r--r--include/linux/skbuff.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 88d55395a27c..c9525bce80f6 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -1361,9 +1361,12 @@ static inline int skb_network_offset(const struct sk_buff *skb)
1361 * 1361 *
1362 * Various parts of the networking layer expect at least 32 bytes of 1362 * Various parts of the networking layer expect at least 32 bytes of
1363 * headroom, you should not reduce this. 1363 * headroom, you should not reduce this.
1364 * With RPS, we raised NET_SKB_PAD to 64 so that get_rps_cpus() fetches span
1365 * a 64 bytes aligned block to fit modern (>= 64 bytes) cache line sizes
1366 * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
1364 */ 1367 */
1365#ifndef NET_SKB_PAD 1368#ifndef NET_SKB_PAD
1366#define NET_SKB_PAD 32 1369#define NET_SKB_PAD 64
1367#endif 1370#endif
1368 1371
1369extern int ___pskb_trim(struct sk_buff *skb, unsigned int len); 1372extern int ___pskb_trim(struct sk_buff *skb, unsigned int len);