1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet
Jakub Kicinski b39212d593 Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
Tony Nguyen says:

====================
i40e: support XDP multi-buffer

Tirthendu Sarkar says:

This patchset adds multi-buffer support for XDP. Tx side already has
support for multi-buffer. This patchset focuses on Rx side. The last
patch contains actual multi-buffer changes while the previous ones are
preparatory patches.

On receiving the first buffer of a packet, xdp_buff is built and its
subsequent buffers are added to it as frags. While 'next_to_clean' keeps
pointing to the first descriptor, the newly introduced 'next_to_process'
keeps track of every descriptor for the packet.

On receiving EOP buffer the XDP program is called and appropriate action
is taken (building skb for XDP_PASS, reusing page for XDP_DROP, adjusting
page offsets for XDP_{REDIRECT,TX}).

The patchset also streamlines page offset adjustments for buffer reuse
to make it easier to post process the rx_buffers after running XDP prog.

With this patchset there does not seem to be any performance degradation
for XDP_PASS and some improvement (~1% for XDP_TX, ~5% for XDP_DROP) when
measured using xdp_rxq_info program from samples/bpf/ for 64B packets.

v1: https://lore.kernel.org/netdev/20230306210822.3381942-1-anthony.l.nguyen@intel.com/

* '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue:
  i40e: add support for XDP multi-buffer Rx
  i40e: add xdp_buff to i40e_ring struct
  i40e: introduce next_to_process to i40e_ring
  i40e: use frame_sz instead of recalculating truesize for building skb
  i40e: Change size to truesize when using i40e_rx_buffer_flip()
  i40e: add pre-xdp page_count in rx_buffer
  i40e: change Rx buffer size for legacy-rx to support XDP multi-buffer
  i40e: consolidate maximum frame size calculation for vsi
====================

Link: https://lore.kernel.org/r/20230309212819.1198218-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-03-13 17:03:20 -07:00
..
3com
8390 ethernet: 8390: remove unnecessary check of mem 2022-09-29 11:05:23 +02:00
actions net: Remove C45 check in C22 only MDIO bus drivers 2023-01-20 18:12:45 -08:00
adaptec
adi Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-27 22:56:18 -08:00
aeroflex ethernet: aeroflex: fix potential skb leak in greth_init_rings() 2022-12-07 11:45:52 +01:00
agere net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
alacritech net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
allwinner
alteon
altera Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-11-29 13:04:52 -08:00
amazon drivers: net: turn on XDP features 2023-02-02 20:48:23 -08:00
amd amd-xgbe: fix mismatched prototype 2023-02-06 22:33:18 -08:00
apm drivers: net: xgene: disable napi when register irq failed in xgene_enet_open() 2022-11-08 15:15:55 +01:00
apple net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave() 2022-12-12 09:53:10 +00:00
aquantia bpf-next-for-netdev 2023-02-10 17:51:27 -08:00
arc
asix net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
atheros alx: Drop redundant pci_enable_pcie_error_reporting() 2023-03-08 23:34:38 -08:00
broadcom bnxt: avoid overflow in bnxt_get_nvram_directory() 2023-03-13 16:35:49 -07:00
brocade bna: Avoid clashing function prototypes 2022-11-21 08:17:59 +00:00
cadence Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-02-09 12:25:40 -08:00
calxeda net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
cavium drivers: net: turn on XDP features 2023-02-02 20:48:23 -08:00
chelsio cxgb4: Drop redundant pci_enable_pcie_error_reporting() 2023-03-08 23:34:38 -08:00
cirrus net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
cisco enic: define constants for legacy interrupts offset 2022-10-18 19:34:28 -07:00
cortina net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
davicom net: dm9051: Fix missing dev_kfree_skb() in dm9051_loop_rx() 2022-11-23 12:43:14 +00:00
dec
dlink sundance: remove unused variable cnt 2022-11-17 13:18:30 +01:00
emulex be2net: Drop redundant pci_enable_pcie_error_reporting() 2023-03-08 23:34:38 -08:00
engleder bpf-next-for-netdev 2023-02-10 17:51:27 -08:00
ezchip
faraday net: ftmac100: handle netdev flags IFF_PROMISC and IFF_ALLMULTI 2023-01-18 13:03:40 +00:00
freescale phy-for-6.3 2023-02-24 17:22:11 -08:00
fujitsu
fungible net/fungible: Drop redundant pci_enable_pcie_error_reporting() 2023-03-08 23:34:38 -08:00
google gve: Fix gve interrupt names 2023-02-06 10:03:26 +00:00
hisilicon net: hns3: remove unnecessary aer.h include 2023-03-08 23:34:38 -08:00
huawei Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-11-17 18:30:39 -08:00
i825xx
ibm ibmvnic: Assign XPS map to correct queue index 2023-02-24 18:34:26 -08:00
intel Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 2023-03-13 17:03:20 -07:00
litex net: ethernet: litex: Fix return type of liteeth_start_xmit 2022-09-19 18:23:39 -07:00
marvell net: mvpp2: Defer probe if MAC address source is not yet ready 2023-03-10 16:12:10 -08:00
mediatek Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-03-09 22:22:11 -08:00
mellanox net/mlx4_en: Replace fake flex-array with flexible-array member 2023-03-08 09:53:49 +00:00
micrel net: ksz884x: fix missing pci_disable_device() on error in pcidev_init() 2022-10-25 19:46:35 -07:00
microchip net: lan966x: Add support for IS1 VCAP ethernet protocol types 2023-03-10 16:44:25 -08:00
microsoft bpf-next-for-netdev 2023-02-10 17:51:27 -08:00
moxa
mscc net: dsa: ocelot: add PTP dependency for NET_DSA_MSCC_OCELOT_EXT 2023-02-10 19:35:58 -08:00
myricom myri10ge: Fix an error handling path in myri10ge_probe() 2022-12-19 12:30:32 +00:00
natsemi net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
neterion ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave() 2022-12-12 09:38:24 +00:00
netronome nfp: fix esp-tx-csum-offload doesn't take effect 2023-03-03 08:28:44 +00:00
ni net: nixge: Separate C22 and C45 transactions 2023-01-17 19:34:08 -08:00
nvidia net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
nxp
oki-semi net: pch_gbe: fix pci device refcount leak while module exiting 2022-11-18 19:40:14 -08:00
packetengines
pasemi net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
pensando ionic: add tx/rx-push support with device Component Memory Buffers 2023-02-13 11:05:12 +00:00
qlogic qede: remove linux/version.h and linux/compiler.h 2023-03-10 21:29:54 -08:00
qualcomm net: qualcomm: rmnet: add ethtool support for configuring tx aggregation 2023-01-13 10:23:52 +00:00
rdc r6040: Fix kmemleak in probe and remove 2022-12-15 12:48:34 +01:00
realtek r8169: remove ASPM restrictions now that ASPM is disabled during NAPI poll 2023-03-08 09:30:41 +00:00
renesas ravb: remove R-Car H3 ES1.* handling 2023-03-08 23:20:50 -08:00
rocker rocker: Explicitly mark learned FDB entries as offloaded 2022-11-02 20:45:23 -07:00
samsung net: sxgbe: Separate C22 and C45 transactions 2023-01-17 19:34:08 -08:00
seeq
sfc sfc: support offloading TC VLAN push/pop actions to the MAE 2023-03-10 21:28:59 -08:00
sgi
silan
sis
smsc net: remove smc911x driver 2022-10-18 19:33:51 -07:00
socionext drivers: net: turn on XDP features 2023-02-02 20:48:23 -08:00
stmicro net: stmmac: add to set device wake up flag when stmmac init phy 2023-03-06 07:36:20 +00:00
sun net: sunhme: Fix region request 2023-02-23 09:58:51 -08:00
sunplus net: Remove C45 check in C22 only MDIO bus drivers 2023-01-20 18:12:45 -08:00
synopsys net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
tehuti net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
ti net: ethernet: ti: am65-cpsw: Update name of Serdes PHY 2023-03-10 21:25:01 -08:00
toshiba net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
tundra ethernet: tundra: free irq when alloc ring failed in tsi108_open() 2022-11-10 15:39:08 +01:00
vertexcom net: vertexcom: mse102x: Silence no spi_device_id warnings 2022-09-26 12:46:16 -07:00
via net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
wangxun net: txgbe: Drop redundant pci_enable_pcie_error_reporting() 2023-03-08 23:34:39 -08:00
wiznet
xilinx Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-12-13 09:49:29 +01:00
xircom
xscale ptp_ixp46x: convert .adjfreq to .adjfine 2022-11-11 10:58:39 +00:00
dnet.c net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave() 2022-12-12 09:56:17 +00:00
dnet.h
ec_bhf.c
ethoc.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
fealnx.c eth: fealnx: bring back this old driver 2023-03-08 23:22:04 -08:00
jme.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
jme.h
Kconfig net: restore alpha order to Ethernet devices in config 2023-03-09 23:36:28 -08:00
korina.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
lantiq_etop.c net: lantiq_etop: don't free skb when returning NETDEV_TX_BUSY 2022-10-24 13:02:18 +01:00
lantiq_xrx200.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
Makefile eth: fealnx: bring back this old driver 2023-03-08 23:22:04 -08:00