mbox series

[net-next,v3,0/2] bnxt_en: implement netdev_queue_mgmt_ops

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

Message

David Wei June 19, 2024, 6:29 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.

Any arbitrary Rx queue can be reset without affecting other queues. V2
and prior of this patchset was thought to only support resetting queues
not in the main RSS context. Upon further testing I realised moving
queues out and calling bnxt_hwrm_vnic_update() wasn't necessary.

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/

---
v3:
 - tested w/o bnxt_hwrm_vnic_update() and it works on any queue
 - removed unneeded code

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

 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 575 ++++++++++++++++++----
 1 file changed, 468 insertions(+), 107 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org June 21, 2024, 9:20 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (main)
by David S. Miller <davem@davemloft.net>:

On Tue, 18 Jun 2024 23:29:29 -0700 you wrote:
> 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.
> 
> [...]

Here is the summary with links:
  - [net-next,v3,1/2] bnxt_en: split rx ring helpers out from ring helpers
    https://git.kernel.org/netdev/net-next/c/88f56254a275
  - [net-next,v3,2/2] bnxt_en: implement netdev_queue_mgmt_ops
    https://git.kernel.org/netdev/net-next/c/2d694c27d32e

You are awesome, thank you!