| From: |
| Tony Nguyen <anthony.l.nguyen-AT-intel.com> |
| To: |
| davem-AT-davemloft.net, kuba-AT-kernel.org, pabeni-AT-redhat.com, edumazet-AT-google.com, andrew+netdev-AT-lunn.ch, netdev-AT-vger.kernel.org |
| Subject: |
| [PATCH net-next v2 0/5][pull request] ice: add support for devmem/io_uring Rx and Tx |
| Date: |
| Wed, 25 Mar 2026 13:06:38 -0700 |
| Message-ID: |
| <20260325200644.2528726-1-anthony.l.nguyen@intel.com> |
| Cc: |
| Tony Nguyen <anthony.l.nguyen-AT-intel.com>, aleksander.lobakin-AT-intel.com, jacob.e.keller-AT-intel.com, nxne.cnse.osdt.itp.upstreaming-AT-intel.com, horms-AT-kernel.org, maciej.fijalkowski-AT-intel.com, magnus.karlsson-AT-intel.com, ast-AT-kernel.org, daniel-AT-iogearbox.net, hawk-AT-kernel.org, john.fastabend-AT-gmail.com, sdf-AT-fomichev.me, bpf-AT-vger.kernel.org |
| Archive-link: |
| Article |
Alexander Lobakin says:
Now that ice uses libeth for managing Rx buffers and supports
configurable header split, it's ready to get support for sending
and receiving packets with unreadable (to the kernel) frags.
Extend libeth just a little bit to allow creating PPs with custom
memory providers and make sure ice works correctly with the netdev
ops locking. Then add the full set of queue_mgmt_ops and don't
unmap unreadable frags on Tx completion.
No perf regressions for the regular flows and no code duplication
implied.
Credits to the fbnic developers, which's code helped me understand
the memory providers and queue_mgmt_ops logics and served as
a reference.
---
v2:
Patch 3:
- More locking fixes
- Fix for safe mode from Kohei
v1: https://lore.kernel.org/netdev/20260310220624.537917-1-an...
Originally from:
https://lore.kernel.org/netdev/20260206174910.4066255-1-a...
Changes since:
Rebased
Patch 3:
- fix [hopefully] all inconsistent locking
- fix kdoc
The following are changes since commit d1e59a46973719e458bec78d00dd767d7a7ba71f:
tcp: add cwnd_event_tx_start to tcp_congestion_ops
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 100GbE
Alexander Lobakin (5):
libeth: pass Rx queue index to PP when creating a fill queue
libeth: handle creating pools with unreadable buffers
ice: migrate to netdev ops lock
ice: implement Rx queue management ops
ice: add support for transmitting unreadable frags
drivers/net/ethernet/intel/iavf/iavf_txrx.c | 1 +
drivers/net/ethernet/intel/ice/ice_base.c | 247 +++++++++++++++----
drivers/net/ethernet/intel/ice/ice_base.h | 2 +
drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 15 +-
drivers/net/ethernet/intel/ice/ice_lib.c | 225 +++++++++++++----
drivers/net/ethernet/intel/ice/ice_lib.h | 18 +-
drivers/net/ethernet/intel/ice/ice_main.c | 75 +++---
drivers/net/ethernet/intel/ice/ice_sf_eth.c | 4 +
drivers/net/ethernet/intel/ice/ice_txrx.c | 43 +++-
drivers/net/ethernet/intel/ice/ice_txrx.h | 2 +
drivers/net/ethernet/intel/ice/ice_xsk.c | 4 +-
drivers/net/ethernet/intel/idpf/idpf_txrx.c | 13 +
drivers/net/ethernet/intel/idpf/idpf_txrx.h | 2 +
drivers/net/ethernet/intel/libeth/rx.c | 43 ++++
include/net/libeth/rx.h | 2 +
include/net/libeth/tx.h | 2 +-
16 files changed, 542 insertions(+), 156 deletions(-)
--
2.47.1