mbox series

[net-next,v2,0/3] bnxt_en: implement netdev_queue_mgmt_ops

Message ID 20240618055202.2530064-1-dw@davidwei.uk (mailing list archive)
Headers show
Series bnxt_en: implement netdev_queue_mgmt_ops | expand

Message

David Wei June 18, 2024, 5:51 a.m. UTC
Implement netdev_queue_mgmt_ops for bnxt added in [1]. This will be used
in the io_uring ZC Rx patchset to configure queues with a custom page
pool w/ a special memory provider for zero copy support.

The first two patches prep the driver, while the final patch adds the
implementation.

This implementation can only reset Rx queues that are _not_ in the main
RSS context. That is, ethtool -X must be called to reserve a number of
queues outside of the main RSS context, and only these queues work with
netdev_queue_mgmt_ops. Otherwise, EOPNOTSUPP is returned.

I didn't include the netdev core API using this netdev_queue_mgmt_ops
because Mina is adding it in his devmem TCP series [2]. But I'm happy to
include it if folks want to include a user with this series.

I tested this series on BCM957504-N1100FY4 with FW 229.1.123.0. I
manually injected failures at all the places that can return an errno
and confirmed that the device/queue is never left in a broken state.

[1]: https://lore.kernel.org/netdev/20240501232549.1327174-2-shailend@google.com/
[2]: https://lore.kernel.org/netdev/20240607005127.3078656-2-almasrymina@google.com/

---
v2:
 - fix broken build
 - remove unused var in bnxt_init_one_rx_ring()

David Wei (2):
  bnxt_en: split rx ring helpers out from ring helpers
  bnxt_en: implement netdev_queue_mgmt_ops

Michael Chan (1):
  bnxt_en: Add support to call FW to update a VNIC

 drivers/net/ethernet/broadcom/bnxt/bnxt.c     | 627 +++++++++++++++---
 drivers/net/ethernet/broadcom/bnxt/bnxt.h     |   3 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h |  37 ++
 3 files changed, 559 insertions(+), 108 deletions(-)