Skip to content

Add support for resource abstraction

Jiri Pirko netdev 4 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest11 patches 1 replyIn review
  2. v2 posting 2/210 patches 50 repliesSuperseded
  3. v2 RFC posting 1/211 patches 28 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v1 RFC7 patches4 repliesSuperseded

Changes in v3 from the cover letter

- Mix/Max/Gran attributes.
- Add resource consumption per table.
- Change basic resource unit to 'entry'.
- ABI documentation.

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/11devlink: Add per devlink instance lockinclude/net/devlink.h net/core/devlink.c+78 -590 replies
2/11devlink: Add support for resource abstractioninclude/net/devlink.h include/uapi/linux/devlink.h net/core/devlink.c+488 -00 replies
3/11devlink: Add support for reloadinclude/net/devlink.h include/uapi/linux/devlink.h net/core/devlink.c+53 -00 replies
4/11devlink: Add relation between dpipe and resourceinclude/net/devlink.h include/uapi/linux/devlink.h net/core/devlink.c+56 -00 replies
5/11mlxsw: pci: Add support for performing bus resetdrivers/net/ethernet/mellanox/mlxsw/core.h drivers/net/ethernet/mellanox/mlxsw/pci.c+41 -130 replies
6/11mlxsw: spectrum: Register KVD resources with devlinkdrivers/net/ethernet/mellanox/mlxsw/core.c drivers/net/ethernet/mellanox/mlxsw/core.h drivers/net/ethernet/mellanox/mlxsw/spectrum.c +1 more+205 -00 replies
7/11mlxsw: spectrum_dpipe: Connect dpipe tables to resourcesdrivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c+69 -120 replies
8/11mlxsw: spectrum: Add support for getting kvdl occupancydrivers/net/ethernet/mellanox/mlxsw/spectrum.c drivers/net/ethernet/mellanox/mlxsw/spectrum.h drivers/net/ethernet/mellanox/mlxsw/spectrum_kvdl.c+36 -00 replies
9/11mlxsw: pci: Add support for getting resource through devlinkdrivers/net/ethernet/mellanox/mlxsw/core.c drivers/net/ethernet/mellanox/mlxsw/core.h drivers/net/ethernet/mellanox/mlxsw/pci.c +1 more+92 -300 replies
10/11mlxsw: core: Add support for reloaddrivers/net/ethernet/mellanox/mlxsw/core.c drivers/net/ethernet/mellanox/mlxsw/core.h drivers/net/ethernet/mellanox/mlxsw/i2c.c +1 more+65 -230 replies
11/11mlxsw: documentation: Add resources ABI documentationDocumentation/ABI/testing/devlink-resource-mlxsw+33 -00 replies

Reviews trailers per patch

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

Read the v3 thread

Cover letter [patch net-next v3 00/11] Add support for resource abstraction

From: Jiri Pirko <[email protected]>

Arkadi says:

Many of the ASIC's internal resources are limited and are shared between several hardware procedures. For example, unified hash-based memory can be used for many lookup purposes, like FDB and LPM. In many cases the user can provide a partitioning scheme for such a resource in order to perform fine tuning for his application. In such cases performing driver reload is needed for the changes to take place, thus this patchset also adds support for hot reload.

Such an abstraction can be coupled with devlink's dpipe interface, which models the ASIC's pipeline as a graph of match/action tables. By modeling the hardware resource object, and by coupling it to several dpipe tables, further visibility can be achieved in order to debug ASIC-wide issues.

The proposed interface will provide the user the ability to understand the limitations of the hardware, and receive notification regarding its occupancy. Furthermore, monitoring the resource occupancy can be done in real-time and can be useful in many cases.

---
v2->v3
- Mix/Max/Gran attributes.
- Add resource consumption per table.
- Change basic resource unit to 'entry'.
- ABI documentation.

v1->v2
- Add resource size attribute.
- Fix split bug.

---
Userspace part prototype can be found at https://github.com/arkadis/iproute2/
at resource_dev branch.

Arkadi Sharshevsky (11):
devlink: Add per devlink instance lock
devlink: Add support for resource abstraction
devlink: Add support for reload
devlink: Add relation between dpipe and resource
mlxsw: pci: Add support for performing bus reset
mlxsw: spectrum: Register KVD resources with devlink
mlxsw: spectrum_dpipe: Connect dpipe tables to resources
mlxsw: spectrum: Add support for getting kvdl occupancy
mlxsw: pci: Add support for getting resource through devlink
mlxsw: core: Add support for reload
mlxsw: documentation: Add resources ABI documentation

 Documentation/ABI/testing/devlink-resource-mlxsw   |  33 ++
 drivers/net/ethernet/mellanox/mlxsw/core.c         |  92 +++-
 drivers/net/ethernet/mellanox/mlxsw/core.h         |  16 +-
 drivers/net/ethernet/mellanox/mlxsw/i2c.c          |   5 +-
 drivers/net/ethernet/mellanox/mlxsw/pci.c          |  98 ++--
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c     | 249 +++++++++
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h     |  13 +
 .../net/ethernet/mellanox/mlxsw/spectrum_dpipe.c   |  81 ++-
 .../net/ethernet/mellanox/mlxsw/spectrum_kvdl.c    |  26 +
 include/net/devlink.h                              | 115 ++++
 include/uapi/linux/devlink.h                       |  25 +
 net/core/devlink.c                                 | 594 +++++++++++++++++++--
 12 files changed, 1213 insertions(+), 134 deletions(-)
 create mode 100644 Documentation/ABI/testing/devlink-resource-mlxsw
Signature · 1 line
2.14.3