mbox series

[net-next,00/11] eth: bnxt: use the new RSS API

Message ID 20240711220713.283778-1-kuba@kernel.org (mailing list archive)
Headers show
Series eth: bnxt: use the new RSS API | expand

Message

Jakub Kicinski July 11, 2024, 10:07 p.m. UTC
Convert bnxt from using the set_rxfh API to separate create/modify/remove
callbacks.

Two small extensions to the core APIs are necessary:
 - the ability to discard contexts if for some catastrophic reasons
   device can no longer provide them;
 - the ability to reserve space in the context for RSS table growth.

The driver is adjusted to store indirection tables on u32 to make
it easier to use core structs directly.

With that out of the way the conversion is fairly straightforward.

Since the opposition to discarding contexts was relatively mild
and its what bnxt does already, I'm sticking to that. We may very
well need to revisit that at a later time.

v2:
 - move "lost context" helper to common.c to avoid build problems
   when ethtool-nl isn't enabled
 - add a note about the counter proposal in the commit message
 - move key_off to the end, under the private label (hiding from kdoc)
 - remove bnxt_get_max_rss_ctx_ring()
 - switch from sizeof(u32) to sizeof(*indir_tbl)
 - add a sentence to the commit msg
 - store a pointer to struct ethtool_rxfh_param instead of
   adding the ethtool_rxfh_priv_context() helper
v1: https://lore.kernel.org/all/20240702234757.4188344-1-kuba@kernel.org/

Jakub Kicinski (11):
  net: ethtool: let drivers remove lost RSS contexts
  net: ethtool: let drivers declare max size of RSS indir table and key
  eth: bnxt: allow deleting RSS contexts when the device is down
  eth: bnxt: move from .set_rxfh to .create_rxfh_context and friends
  eth: bnxt: remove rss_ctx_bmap
  eth: bnxt: depend on core cleaning up RSS contexts
  eth: bnxt: use context priv for struct bnxt_rss_ctx
  eth: bnxt: use the RSS context XArray instead of the local list
  eth: bnxt: pad out the correct indirection table
  eth: bnxt: bump the entry size in indir tables to u32
  eth: bnxt: use the indir table from ethtool context

 drivers/net/ethernet/broadcom/bnxt/bnxt.c     | 126 +++++--------
 drivers/net/ethernet/broadcom/bnxt/bnxt.h     |  17 +-
 .../net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 165 ++++++++++--------
 include/linux/ethtool.h                       |  20 +--
 net/ethtool/common.c                          |  14 ++
 net/ethtool/ioctl.c                           |  46 +++--
 6 files changed, 194 insertions(+), 194 deletions(-)

Comments

Pavan Chebbi July 12, 2024, 5:08 a.m. UTC | #1
On Fri, Jul 12, 2024 at 3:37 AM Jakub Kicinski <kuba@kernel.org> wrote:
>
> Convert bnxt from using the set_rxfh API to separate create/modify/remove
> callbacks.
>
> Two small extensions to the core APIs are necessary:
>  - the ability to discard contexts if for some catastrophic reasons
>    device can no longer provide them;
>  - the ability to reserve space in the context for RSS table growth.
>
> The driver is adjusted to store indirection tables on u32 to make
> it easier to use core structs directly.
>
> With that out of the way the conversion is fairly straightforward.
>
> Since the opposition to discarding contexts was relatively mild
> and its what bnxt does already, I'm sticking to that. We may very
> well need to revisit that at a later time.
>
> v2:
>  - move "lost context" helper to common.c to avoid build problems
>    when ethtool-nl isn't enabled
>  - add a note about the counter proposal in the commit message
>  - move key_off to the end, under the private label (hiding from kdoc)
>  - remove bnxt_get_max_rss_ctx_ring()
>  - switch from sizeof(u32) to sizeof(*indir_tbl)
>  - add a sentence to the commit msg
>  - store a pointer to struct ethtool_rxfh_param instead of
>    adding the ethtool_rxfh_priv_context() helper
> v1: https://lore.kernel.org/all/20240702234757.4188344-1-kuba@kernel.org/

For a moment I was confused and a little scared not seeing v2 in the
subject line, until I opened the email :)
Series LGTM. Thanks to Edward and you for a cleaner infrastructure.
For the series:
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>

>
> Jakub Kicinski (11):
>   net: ethtool: let drivers remove lost RSS contexts
>   net: ethtool: let drivers declare max size of RSS indir table and key
>   eth: bnxt: allow deleting RSS contexts when the device is down
>   eth: bnxt: move from .set_rxfh to .create_rxfh_context and friends
>   eth: bnxt: remove rss_ctx_bmap
>   eth: bnxt: depend on core cleaning up RSS contexts
>   eth: bnxt: use context priv for struct bnxt_rss_ctx
>   eth: bnxt: use the RSS context XArray instead of the local list
>   eth: bnxt: pad out the correct indirection table
>   eth: bnxt: bump the entry size in indir tables to u32
>   eth: bnxt: use the indir table from ethtool context
>
>  drivers/net/ethernet/broadcom/bnxt/bnxt.c     | 126 +++++--------
>  drivers/net/ethernet/broadcom/bnxt/bnxt.h     |  17 +-
>  .../net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 165 ++++++++++--------
>  include/linux/ethtool.h                       |  20 +--
>  net/ethtool/common.c                          |  14 ++
>  net/ethtool/ioctl.c                           |  46 +++--
>  6 files changed, 194 insertions(+), 194 deletions(-)
>
> --
> 2.45.2
>
>
patchwork-bot+netdevbpf@kernel.org July 13, 2024, 5:30 a.m. UTC | #2
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Thu, 11 Jul 2024 15:07:02 -0700 you wrote:
> Convert bnxt from using the set_rxfh API to separate create/modify/remove
> callbacks.
> 
> Two small extensions to the core APIs are necessary:
>  - the ability to discard contexts if for some catastrophic reasons
>    device can no longer provide them;
>  - the ability to reserve space in the context for RSS table growth.
> 
> [...]

Here is the summary with links:
  - [net-next,01/11] net: ethtool: let drivers remove lost RSS contexts
    https://git.kernel.org/netdev/net-next/c/d69ba6bbaf1f
  - [net-next,02/11] net: ethtool: let drivers declare max size of RSS indir table and key
    https://git.kernel.org/netdev/net-next/c/28c8757a792b
  - [net-next,03/11] eth: bnxt: allow deleting RSS contexts when the device is down
    https://git.kernel.org/netdev/net-next/c/667ac333dbb7
  - [net-next,04/11] eth: bnxt: move from .set_rxfh to .create_rxfh_context and friends
    https://git.kernel.org/netdev/net-next/c/5c466b4d4e75
  - [net-next,05/11] eth: bnxt: remove rss_ctx_bmap
    https://git.kernel.org/netdev/net-next/c/1a49a23c034b
  - [net-next,06/11] eth: bnxt: depend on core cleaning up RSS contexts
    https://git.kernel.org/netdev/net-next/c/bf30162915f8
  - [net-next,07/11] eth: bnxt: use context priv for struct bnxt_rss_ctx
    https://git.kernel.org/netdev/net-next/c/63d4769cf74a
  - [net-next,08/11] eth: bnxt: use the RSS context XArray instead of the local list
    https://git.kernel.org/netdev/net-next/c/20c8ad72eb7f
  - [net-next,09/11] eth: bnxt: pad out the correct indirection table
    https://git.kernel.org/netdev/net-next/c/9c34c6c28c70
  - [net-next,10/11] eth: bnxt: bump the entry size in indir tables to u32
    https://git.kernel.org/netdev/net-next/c/73afb518af4a
  - [net-next,11/11] eth: bnxt: use the indir table from ethtool context
    https://git.kernel.org/netdev/net-next/c/46e457a454de

You are awesome, thank you!