diff options
author | Igor Russkikh <Igor.Russkikh@aquantia.com> | 2019-03-23 18:23:31 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-03-24 05:16:53 +0300 |
commit | 7e2698c4fd35f30fd3e5932ca2825fe5a461e265 (patch) | |
tree | 7fa0ca74fd3cc7e01e3536696f1652deaa82d9e2 /drivers/net/ethernet/aquantia/atlantic/aq_cfg.h | |
parent | d64fee0a0320ecc678903c30c2fed56b68979011 (diff) | |
download | linux-7e2698c4fd35f30fd3e5932ca2825fe5a461e265.tar.xz |
net: aquantia: optimize rx path using larger preallocated skb len
Atlantic driver used 14 bytes preallocated skb size. That made L3 protocol
processing inefficient because pskb_pull had to fetch all the L3/L4 headers
from extra fragments.
Specially on UDP flows that caused extra packet drops because CPU was
overloaded with pskb_pull.
This patch uses eth_get_headlen for skb preallocation.
Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/aquantia/atlantic/aq_cfg.h')
-rw-r--r-- | drivers/net/ethernet/aquantia/atlantic/aq_cfg.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h b/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h index 3944ce7f0870..aba550770adf 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h @@ -38,6 +38,8 @@ #define AQ_CFG_TX_CLEAN_BUDGET 256U +#define AQ_CFG_RX_HDR_SIZE 256U + /* LRO */ #define AQ_CFG_IS_LRO_DEF 1U |