mbox series

[net-next,v2,0/5] devlink: hold the instance lock in eswitch callbacks

Message ID 20220318192344.1587891-1-kuba@kernel.org (mailing list archive)
Headers show
Series devlink: hold the instance lock in eswitch callbacks | expand

Message

Jakub Kicinski March 18, 2022, 7:23 p.m. UTC
Series number 2 in the effort to hold the devlink instance lock
in call driver callbacks. We have the following drivers using
this API:

 - bnxt, nfp, netdevsim - their own locking is removed / simplified
   by this series; all of them needed a lock to protect from changes
   to the number of VFs while switching modes, now the VF config bus
   callback takes the devlink instance lock via devl_lock();
 - ice - appears not to allow changing modes while SR-IOV enabled,
   so nothing to do there;
 - liquidio - does not contain any locking;
 - octeontx2/af - is very special but at least doesn't have locking
   so doesn't get in the way either;
 - mlx5 has a wealth of locks - I chickened out and dropped the lock
   in the callbacks so that I can leave the driver be, for now.

The last one is obviously not ideal, but I would prefer to transition
the API already as it make take longer.

v2: use a wrapper in mlx5 and extend the comment

Jakub Kicinski (5):
  bnxt: use the devlink instance lock to protect sriov
  devlink: add explicitly locked flavor of the rate node APIs
  netdevsim: replace port_list_lock with devlink instance lock
  netdevsim: replace vfs_lock with devlink instance lock
  devlink: hold the instance lock during eswitch_mode callbacks

 drivers/net/ethernet/broadcom/bnxt/bnxt.c     |  1 -
 drivers/net/ethernet/broadcom/bnxt/bnxt.h     |  6 --
 .../net/ethernet/broadcom/bnxt/bnxt_sriov.c   |  4 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c | 22 ++---
 .../mellanox/mlx5/core/eswitch_offloads.c     | 54 ++++++++---
 .../net/ethernet/netronome/nfp/nfp_devlink.c  |  7 +-
 drivers/net/netdevsim/dev.c                   | 85 +++++++++---------
 drivers/net/netdevsim/netdevsim.h             |  2 -
 include/net/devlink.h                         |  4 +
 net/core/devlink.c                            | 90 ++++++++++++-------
 10 files changed, 156 insertions(+), 119 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org March 21, 2022, 4:50 p.m. UTC | #1
Hello:

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

On Fri, 18 Mar 2022 12:23:39 -0700 you wrote:
> Series number 2 in the effort to hold the devlink instance lock
> in call driver callbacks. We have the following drivers using
> this API:
> 
>  - bnxt, nfp, netdevsim - their own locking is removed / simplified
>    by this series; all of them needed a lock to protect from changes
>    to the number of VFs while switching modes, now the VF config bus
>    callback takes the devlink instance lock via devl_lock();
>  - ice - appears not to allow changing modes while SR-IOV enabled,
>    so nothing to do there;
>  - liquidio - does not contain any locking;
>  - octeontx2/af - is very special but at least doesn't have locking
>    so doesn't get in the way either;
>  - mlx5 has a wealth of locks - I chickened out and dropped the lock
>    in the callbacks so that I can leave the driver be, for now.
> 
> [...]

Here is the summary with links:
  - [net-next,v2,1/5] bnxt: use the devlink instance lock to protect sriov
    https://git.kernel.org/netdev/net-next/c/7a1b0b1a555e
  - [net-next,v2,2/5] devlink: add explicitly locked flavor of the rate node APIs
    https://git.kernel.org/netdev/net-next/c/8879b32a3a80
  - [net-next,v2,3/5] netdevsim: replace port_list_lock with devlink instance lock
    https://git.kernel.org/netdev/net-next/c/76eea6c2e663
  - [net-next,v2,4/5] netdevsim: replace vfs_lock with devlink instance lock
    https://git.kernel.org/netdev/net-next/c/aff3a9250946
  - [net-next,v2,5/5] devlink: hold the instance lock during eswitch_mode callbacks
    https://git.kernel.org/netdev/net-next/c/14e426bf1a4d

You are awesome, thank you!