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:
		
					parent
					
						
							
								d6bc0149d8
							
						
					
				
			
			
				commit
				
					
						18e8c134f4
					
				
			
		
					 1 changed files with 4 additions and 1 deletions
				
			
		| 
						 | 
					@ -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);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue