Merge branch '200GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
Tony Nguyen says: ==================== idpf: XDP chapter I: convert Rx to libeth Alexander Lobakin says: XDP for idpf is currently 5 chapters: * convert Rx to libeth (this); * convert Tx and stats to libeth; * generic XDP and XSk code changes, libeth_xdp; * actual XDP for idpf via libeth_xdp; * XSk for idpf (^). Part I does the following: * splits &idpf_queue into 4 (RQ, SQ, FQ, CQ) and puts them on a diet; * ensures optimal cacheline placement, strictly asserts CL sizes; * moves currently unused/dead singleq mode out of line; * reuses libeth's Rx ptype definitions and helpers; * uses libeth's Rx buffer management for both header and payload; * eliminates memcpy()s and coherent DMA uses on hotpath, uses napi_build_skb() instead of in-place short skb allocation. Most idpf patches, except for the queue split, removes more lines than adds. Expect far better memory utilization and +5-8% on Rx depending on the case (+17% on skb XDP_DROP :>). * '200GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue: idpf: use libeth Rx buffer management for payload buffer idpf: convert header split mode to libeth + napi_build_skb() libeth: support different types of buffers for Rx idpf: remove legacy Page Pool Ethtool stats idpf: reuse libeth's definitions of parsed ptype structures idpf: compile singleq code only under default-n CONFIG_IDPF_SINGLEQ idpf: merge singleq and splitq &net_device_ops idpf: strictly assert cachelines of queue and queue vector structures idpf: avoid bloating &idpf_q_vector with big %NR_CPUS idpf: split &idpf_queue into 4 strictly-typed queue structures idpf: stop using macros for accessing queue descriptors libeth: add cacheline / struct layout assertion helpers page_pool: use __cacheline_group_{begin, end}_aligned() cache: add __cacheline_group_{begin, end}_aligned() (+ couple more) ==================== Link: https://patch.msgid.link/20240710203031.188081-1-anthony.l.nguyen@intel.com Signed-off-by:Jakub Kicinski <kuba@kernel.org>
Showing
- drivers/net/ethernet/intel/Kconfig 1 addition, 12 deletionsdrivers/net/ethernet/intel/Kconfig
- drivers/net/ethernet/intel/idpf/Kconfig 26 additions, 0 deletionsdrivers/net/ethernet/intel/idpf/Kconfig
- drivers/net/ethernet/intel/idpf/Makefile 2 additions, 1 deletiondrivers/net/ethernet/intel/idpf/Makefile
- drivers/net/ethernet/intel/idpf/idpf.h 4 additions, 7 deletionsdrivers/net/ethernet/intel/idpf/idpf.h
- drivers/net/ethernet/intel/idpf/idpf_ethtool.c 69 additions, 83 deletionsdrivers/net/ethernet/intel/idpf/idpf_ethtool.c
- drivers/net/ethernet/intel/idpf/idpf_lan_txrx.h 2 additions, 0 deletionsdrivers/net/ethernet/intel/idpf/idpf_lan_txrx.h
- drivers/net/ethernet/intel/idpf/idpf_lib.c 16 additions, 72 deletionsdrivers/net/ethernet/intel/idpf/idpf_lib.c
- drivers/net/ethernet/intel/idpf/idpf_main.c 1 addition, 0 deletionsdrivers/net/ethernet/intel/idpf/idpf_main.c
- drivers/net/ethernet/intel/idpf/idpf_singleq_txrx.c 137 additions, 169 deletionsdrivers/net/ethernet/intel/idpf/idpf_singleq_txrx.c
- drivers/net/ethernet/intel/idpf/idpf_txrx.c 784 additions, 628 deletionsdrivers/net/ethernet/intel/idpf/idpf_txrx.c
- drivers/net/ethernet/intel/idpf/idpf_txrx.h 392 additions, 342 deletionsdrivers/net/ethernet/intel/idpf/idpf_txrx.h
- drivers/net/ethernet/intel/idpf/idpf_virtchnl.c 111 additions, 67 deletionsdrivers/net/ethernet/intel/idpf/idpf_virtchnl.c
- drivers/net/ethernet/intel/libeth/rx.c 121 additions, 11 deletionsdrivers/net/ethernet/intel/libeth/rx.c
- include/linux/cache.h 59 additions, 0 deletionsinclude/linux/cache.h
- include/net/libeth/cache.h 66 additions, 0 deletionsinclude/net/libeth/cache.h
- include/net/libeth/rx.h 19 additions, 0 deletionsinclude/net/libeth/rx.h
- include/net/page_pool/types.h 12 additions, 10 deletionsinclude/net/page_pool/types.h
- net/core/page_pool.c 2 additions, 1 deletionnet/core/page_pool.c
Please register or sign in to comment