Re: [PATCH net-next V4 00/11] net/mlx5: ConnectX-8 SW Steering + Rate management on traffic classes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03.12.24 21:29, Tariq Toukan wrote:
Hi,

This patchset starts with 3 patches that modify the IFC, targeted to
mlx5-next in order to be taken to rdma-next branch side sooner than in
the next merge window.

This patchset consists of two features:
1. In patches 4-5, Itamar adds SW Steering support for ConnectX-8.
2. Followed by patches by Carolina that add rate management support on
traffic classes in devlink and mlx5, more details below [1].

Series generated against:
commit e8e7be7d212d ("mctp i2c: drop check because i2c_unregister_device() is NULL safe")

From the link https://people.kernel.org/monsieuricon/all-patches-must-include-base-commit-info,

If we use --base=auto or the commit id (in this patch, the commit id should be e8e7be7d212d), then we will notice that the commits will have the base-commit: tailer at the very bottom.

This seems somewhat professional compared to the above. ^_^

Best Regards,
Zhu Yanjun


Regards,
Tariq

V4:
- Renamed the nested attribute for traffic class bandwidth to
   DEVLINK_ATTR_RATE_TC_BWS.
- Changed the order of the attributes in `devlink.h`.
- Refactored the initialization tc-bw array in
   devlink_nl_rate_tc_bw_set().
- Added extack messages to provide clear feedback on issues with tc-bw
   arguments.
- Updated `rate-tc-bws` to support a multi-attr set, where each
   attribute includes an index and the corresponding bandwidth for that
   traffic class.
- Handled the issue where the user could provide
   DEVLINK_ATTR_RATE_TC_BWS with duplicate indices.
- Provided ynl exmaples in devlink patch commit message.
- Take IFC patches to beginning of the series, targeted for mlx5-next.


V3:
- Dropped rate-tc-index, using tc-bw array index instead.
- Renamed rate-bw to rate-tc-bw.
- Documneted what the rate-tc-bw represents and added a range check for
   validation.
- Intorduced devlink_nl_rate_tc_bw_set() to parse and set the TC
   bandwidth values.
- Updated the user API in the commit message of patch 1/6 to ensure
   bandwidths sum equals 100.
- Fixed missing filling of rate-parent in devlink_nl_rate_fill().

V2:
- Included <linux/dcbnl.h> in devlink.h to resolve missing
   IEEE_8021QAZ_MAX_TCS definition.
- Refactored the rate-tc-bw attribute structure to use a separate
   rate-tc-index.
- Updated patch 2/6 title.


[1]
This patch series extends the devlink-rate API to support traffic class
(TC) bandwidth management, enabling more granular control over traffic
shaping and rate limiting across multiple TCs. The API now allows users
to specify bandwidth proportions for different traffic classes in a
single command. This is particularly useful for managing Enhanced
Transmission Selection (ETS) for groups of Virtual Functions (VFs),
allowing precise bandwidth allocation across traffic classes.

Additionally the series refines the QoS handling in net/mlx5 to support
TC arbitration and bandwidth management on vports and rate nodes.

Extend devlink-rate API to support rate management on TCs:
- devlink: Extend the devlink rate API to support traffic class
   bandwidth management

Introduce a no-op implementation:
- net/mlx5: Add no-op implementation for setting tc-bw on rate objects

Add support for enabling and disabling TC QoS on vports and nodes:
- net/mlx5: Add support for setting tc-bw on nodes
- net/mlx5: Add traffic class scheduling support for vport QoS

Support for setting tc-bw on rate objects:
- net/mlx5: Manage TC arbiter nodes and implement full support for
   tc-bw

Carolina Jubran (6):
   net/mlx5: Add support for new scheduling elements
   devlink: Extend devlink rate API with traffic classes bandwidth
     management
   net/mlx5: Add no-op implementation for setting tc-bw on rate objects
   net/mlx5: Add support for setting tc-bw on nodes
   net/mlx5: Add traffic class scheduling support for vport QoS
   net/mlx5: Manage TC arbiter nodes and implement full support for tc-bw

Cosmin Ratiu (2):
   net/mlx5: ifc: Reorganize mlx5_ifc_flow_table_context_bits
   net/mlx5: qos: Add ifc support for cross-esw scheduling

Itamar Gozlan (2):
   net/mlx5: DR, Expand SWS STE callbacks and consolidate common structs
   net/mlx5: DR, Add support for ConnectX-8 steering

Yevgeny Kliteynik (1):
   net/mlx5: Add ConnectX-8 device to ifc

  Documentation/netlink/specs/devlink.yaml      |  28 +-
  .../net/ethernet/mellanox/mlx5/core/Makefile  |   1 +
  .../net/ethernet/mellanox/mlx5/core/devlink.c |   2 +
  .../net/ethernet/mellanox/mlx5/core/esw/qos.c | 795 +++++++++++++++++-
  .../net/ethernet/mellanox/mlx5/core/esw/qos.h |   4 +
  .../net/ethernet/mellanox/mlx5/core/eswitch.h |  13 +-
  drivers/net/ethernet/mellanox/mlx5/core/rl.c  |   4 +
  .../mlx5/core/steering/sws/dr_domain.c        |   2 +-
  .../mellanox/mlx5/core/steering/sws/dr_ste.c  |   6 +-
  .../mellanox/mlx5/core/steering/sws/dr_ste.h  |  19 +-
  .../mlx5/core/steering/sws/dr_ste_v0.c        |   6 +-
  .../mlx5/core/steering/sws/dr_ste_v1.c        | 207 +----
  .../mlx5/core/steering/sws/dr_ste_v1.h        | 147 +++-
  .../mlx5/core/steering/sws/dr_ste_v2.c        | 169 +---
  .../mlx5/core/steering/sws/dr_ste_v2.h        | 168 ++++
  .../mlx5/core/steering/sws/dr_ste_v3.c        | 221 +++++
  .../mlx5/core/steering/sws/mlx5_ifc_dr.h      |  40 +
  .../mellanox/mlx5/core/steering/sws/mlx5dr.h  |   2 +-
  include/linux/mlx5/mlx5_ifc.h                 |  56 +-
  include/net/devlink.h                         |   7 +
  include/uapi/linux/devlink.h                  |   4 +
  net/devlink/netlink_gen.c                     |  15 +-
  net/devlink/netlink_gen.h                     |   1 +
  net/devlink/rate.c                            | 124 +++
  24 files changed, 1645 insertions(+), 396 deletions(-)
  create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v2.h
  create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_ste_v3.c






[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux