提交 18e8c134 编写于 作者: E Eric Dumazet 提交者: David S. Miller

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: NEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 d6bc0149
...@@ -1361,9 +1361,12 @@ static inline int skb_network_offset(const struct sk_buff *skb) ...@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册