1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet/intel/i40e
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
..
i40e.h i40e: Remove unnecessary aer.h include 2023-03-08 23:34:39 -08:00
i40e_adminq.c i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_adminq.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
i40e_adminq_cmd.h i40e: allow toggling loopback mode via ndo_set_features callback 2022-12-12 15:24:47 -08:00
i40e_alloc.h i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_client.c i40e: use ERR_PTR error print in i40e messages 2023-02-09 08:35:53 -08:00
i40e_common.c i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_dcb.c i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_dcb.h i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_dcb_nl.c i40e: use ERR_PTR error print in i40e messages 2023-02-09 08:35:53 -08:00
i40e_ddp.c i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_debugfs.c i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_devids.h i40e: Add basic support for I710 devices 2022-09-06 12:49:00 -07:00
i40e_diag.c i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_diag.h i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_ethtool.c i40e: change Rx buffer size for legacy-rx to support XDP multi-buffer 2023-03-09 13:10:57 -08:00
i40e_hmc.c i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_hmc.h i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_lan_hmc.c i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_lan_hmc.h i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_main.c i40e: add support for XDP multi-buffer Rx 2023-03-09 13:11:29 -08:00
i40e_nvm.c i40e: use ERR_PTR error print in i40e messages 2023-02-09 08:35:53 -08:00
i40e_osdep.h i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_prototype.h i40e: use int for i40e_status 2023-02-09 08:35:53 -08:00
i40e_ptp.c ptp: introduce helpers to adjust by scaled parts per million 2022-10-31 11:14:16 +00:00
i40e_register.h i40e: Fix dropped jumbo frames statistics 2022-06-30 13:09:00 -07:00
i40e_status.h i40e: Remove unused i40e status codes 2023-02-09 08:35:53 -08:00
i40e_trace.h i40e: add xdp_buff to i40e_ring struct 2023-03-09 13:11:24 -08:00
i40e_txrx.c i40e: add support for XDP multi-buffer Rx 2023-03-09 13:11:29 -08:00
i40e_txrx.h i40e: add support for XDP multi-buffer Rx 2023-03-09 13:11:29 -08:00
i40e_txrx_common.h i40e, xsk: Terminate Rx side of NAPI when XSK Rx queue gets full 2022-04-15 21:10:41 +02:00
i40e_type.h i40e: Fix ethtool rx-flow-hash setting for X722 2022-10-25 16:18:31 -07:00
i40e_virtchnl_pf.c i40e: use ERR_PTR error print in i40e messages 2023-02-09 08:35:53 -08:00
i40e_virtchnl_pf.h virtchnl: i40e/iavf: rename iwarp to rdma 2023-01-25 08:55:19 -08:00
i40e_xsk.c i40e: Fix DMA mappings leak 2022-10-14 08:24:31 +01:00
i40e_xsk.h i40e: Fix DMA mappings leak 2022-10-14 08:24:31 +01:00
Makefile i40e: Implement DDP support in i40e driver 2019-04-16 15:10:21 -07:00