Skip to content

RFC Allow parallel devlink execution

Leon Romanovsky netdev 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest16 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/16devlink: Remove misleading internal_flags from health reporter dumpnet/core/devlink.c+0 -20 replies
2/16devlink: Delete useless checks of holding devlink locknet/core/devlink.c+0 -120 replies
3/16devlink: Simplify devlink resources unregister calldrivers/net/ethernet/mellanox/mlxsw/core.c drivers/net/ethernet/mellanox/mlxsw/spectrum.c drivers/net/netdevsim/dev.c +3 more+29 -260 replies
4/16devlink: Clean registration of devlink portdrivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-devlink.c drivers/net/ethernet/intel/ice/ice_devlink.c +15 more+41 -1160 replies
5/16devlink: Be explicit with devlink port protectionnet/core/devlink.c+40 -210 replies
6/16devlink: Reshuffle resource registration logicnet/core/devlink.c+12 -180 replies
7/16devlink: Inline sb related functionsnet/core/devlink.c+33 -770 replies
8/16devlink: Protect resource list with specific locknet/core/devlink.c+56 -440 replies
9/16devlink: Protect all traps lists with specialized locknet/core/devlink.c+102 -520 replies
10/16devlink: Separate region list protection to be done with specialized locknet/core/devlink.c+39 -270 replies
11/16devlink: Protect all rate operations with specialized locknet/core/devlink.c+36 -240 replies
12/16devlink: Protect all sb operations with specialized locknet/core/devlink.c+20 -160 replies
13/16devlink: Convert dpipe to use dpipe_locknet/core/devlink.c+43 -240 replies
14/16devlink: Require devlink lock during device reloadnet/core/devlink.c+2 -10 replies
15/16devlink: Use xarray locking mechanism instead big devlink locknet/core/devlink.c+150 -1060 replies
16/16devlink: Open devlink to parallel operationsnet/core/devlink.c+1 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC PATCH 00/16] Allow parallel devlink execution

From: Leon Romanovsky <[email protected]>

Jakub, this is RFC, not fully tested and not reviewed yet. I'm sending it to show that first we need to fix internal devlink locking before even thinking of exporting it to the drivers.

-------------------------------------------------------------------
Hi,

This is final piece of devlink locking puzzle, where I remove global mutex lock (devlink_mutex) and reduce scope of devlink->lock. The last change allows us to make sure that devlink commands are called while devlink_reload is executed and protected at the same time.

All of the changes mentioned above are limited to devlink.c without any need to update drivers or expose internal details of devlink implementation.

The diffstat is misleading here, because of initial cleanup of overly engineered interfaces.

BTW, I have one extra patch that documents devlink locking.

Thanks

Leon Romanovsky (16):
devlink: Remove misleading internal_flags from health reporter dump
devlink: Delete useless checks of holding devlink lock
devlink: Simplify devlink resources unregister call
devlink: Clean registration of devlink port
devlink: Be explicit with devlink port protection
devlink: Reshuffle resource registration logic
devlink: Inline sb related functions
devlink: Protect resource list with specific lock
devlink: Protect all traps lists with specialized lock
devlink: Separate region list protection to be done with specialized
lock
devlink: Protect all rate operations with specialized lock
devlink: Protect all sb operations with specialized lock
devlink: Convert dpipe to use dpipe_lock
devlink: Require devlink lock during device reload
devlink: Use xarray locking mechanism instead big devlink lock
devlink: Open devlink to parallel operations

 .../net/ethernet/broadcom/bnxt/bnxt_devlink.c |   7 +-
 .../freescale/dpaa2/dpaa2-eth-devlink.c       |   7 +-
 drivers/net/ethernet/intel/ice/ice_devlink.c  |  18 +-
 .../marvell/prestera/prestera_devlink.c       |   7 +-
 drivers/net/ethernet/mellanox/mlx4/main.c     |   4 +-
 .../ethernet/mellanox/mlx5/core/en/devlink.c  |   5 +-
 .../ethernet/mellanox/mlx5/core/en/devlink.h  |   2 +-
 .../net/ethernet/mellanox/mlx5/core/en_main.c |   7 +-
 .../mellanox/mlx5/core/esw/devlink_port.c     |   9 +-
 drivers/net/ethernet/mellanox/mlxsw/core.c    |  15 +-
 .../net/ethernet/mellanox/mlxsw/spectrum.c    |   4 +-
 drivers/net/ethernet/mscc/ocelot_net.c        |   4 +-
 .../net/ethernet/netronome/nfp/nfp_devlink.c  |   4 +-
 .../ethernet/pensando/ionic/ionic_devlink.c   |   8 +-
 drivers/net/ethernet/ti/am65-cpsw-nuss.c      |  14 +-
 drivers/net/netdevsim/dev.c                   |  11 +-
 include/net/devlink.h                         |   9 +-
 net/core/devlink.c                            | 938 ++++++++++--------
 net/dsa/dsa.c                                 |   2 +-
 net/dsa/dsa2.c                                |   9 +-
 20 files changed, 561 insertions(+), 523 deletions(-)
Signature · 1 line
2.33.1