From: Horst Hartmann NET_SKB_PAD has been increased from 32 to 64 and later to max(32, L1_CACHE_BYTES). This led to a 25% throughput decrease for streaming workloads accompanied by a 37% CPU cost increase on s390. In order to fix this provide an architecture specific NET_SKB_PAD config symbol. Signed-off-by: Horst Hartmann Signed-off-by: Frank Blaschka --- arch/s390/Kconfig | 4 ++++ include/linux/skbuff.h | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -49,6 +49,10 @@ config NO_DMA config ARCH_DMA_ADDR_T_64BIT def_bool 64BIT +config NET_SKB_PAD + int + default "32" + config GENERIC_LOCKBREAK def_bool y if SMP && PREEMPT --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -1431,8 +1431,10 @@ static inline int pskb_network_may_pull( * get_rps_cpus() for example only access one 64 bytes aligned block : * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) */ -#ifndef NET_SKB_PAD +#ifndef CONFIG_NET_SKB_PAD #define NET_SKB_PAD max(32, L1_CACHE_BYTES) +#else +#define NET_SKB_PAD CONFIG_NET_SKB_PAD #endif extern int ___pskb_trim(struct sk_buff *skb, unsigned int len); -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html