Implement devlink-rate API and extend it
From: | Michal Wilczynski <michal.wilczynski-AT-intel.com> | |
To: | netdev-AT-vger.kernel.org | |
Subject: | [RFC PATCH net-next v4 0/6] Implement devlink-rate API and extend it | |
Date: | Thu, 15 Sep 2022 15:42:33 +0200 | |
Message-ID: | <20220915134239.1935604-1-michal.wilczynski@intel.com> | |
Cc: | alexandr.lobakin-AT-intel.com, dchumak-AT-nvidia.com, maximmi-AT-nvidia.com, jiri-AT-resnulli.us, simon.horman-AT-corigine.com, jacob.e.keller-AT-intel.com, jesse.brandeburg-AT-intel.com, przemyslaw.kitszel-AT-intel.com, Michal Wilczynski <michal.wilczynski-AT-intel.com> | |
Archive-link: | Article |
This patch series implements devlink-rate for ice driver. Unfortunately current API isn't flexible enough for our use case, so there is a need to extend it. New object type 'queue' is being introduced, and more functions has been changed to non-static, to enable the driver to export current Tx scheduling configuration. This patch series is a follow up for this thread: https://lore.kernel.org/netdev/20220704114513.2958937-1-m... V4: - changed static variable counter to per port IDA to uniquely identify nodes V3: - removed shift macros, since FIELD_PREP is used - added static_assert for struct - removed unnecessary functions - used tab instead of space in define V2: - fixed Alexandr comments - refactored code to fix checkpatch issues - added mutual exclusion for RDMA, DCB Ben Shelton (1): ice: Add function for move/reconfigure TxQ AQ command Michal Wilczynski (5): devlink: Extend devlink-rate api with queues and new parameters ice: Introduce new parameters in ice_sched_node ice: Implement devlink-rate API ice: Export Tx scheduler configuration to devlink-rate ice: Prevent ADQ, DCB and RDMA coexistence with Custom Tx scheduler .../net/ethernet/intel/ice/ice_adminq_cmd.h | 41 +- drivers/net/ethernet/intel/ice/ice_common.c | 75 ++- drivers/net/ethernet/intel/ice/ice_common.h | 8 + drivers/net/ethernet/intel/ice/ice_dcb.c | 2 +- drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 4 + drivers/net/ethernet/intel/ice/ice_devlink.c | 598 ++++++++++++++++++ drivers/net/ethernet/intel/ice/ice_devlink.h | 2 + drivers/net/ethernet/intel/ice/ice_idc.c | 5 + drivers/net/ethernet/intel/ice/ice_main.c | 2 + drivers/net/ethernet/intel/ice/ice_sched.c | 81 ++- drivers/net/ethernet/intel/ice/ice_sched.h | 27 +- drivers/net/ethernet/intel/ice/ice_type.h | 7 + drivers/net/ethernet/intel/ice/ice_virtchnl.c | 10 + .../net/ethernet/mellanox/mlx5/core/devlink.c | 6 +- .../mellanox/mlx5/core/esw/devlink_port.c | 8 +- .../net/ethernet/mellanox/mlx5/core/esw/qos.c | 12 +- .../net/ethernet/mellanox/mlx5/core/esw/qos.h | 10 +- drivers/net/netdevsim/dev.c | 32 +- include/net/devlink.h | 56 +- include/uapi/linux/devlink.h | 8 +- net/core/devlink.c | 407 ++++++++++-- 21 files changed, 1284 insertions(+), 117 deletions(-) -- 2.35.1