All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Michal Wilczynski <michal.wilczynski@intel.com>
Cc: netdev@vger.kernel.org, alexandr.lobakin@intel.com,
	jacob.e.keller@intel.com, jesse.brandeburg@intel.com,
	przemyslaw.kitszel@intel.com, anthony.l.nguyen@intel.com,
	ecree.xilinx@gmail.com, jiri@resnulli.us
Subject: Re: [PATCH net-next v10 10/10] ice: add documentation for devlink-rate implementation
Date: Tue, 8 Nov 2022 14:39:36 -0800	[thread overview]
Message-ID: <20221108143936.4e59f6e8@kernel.org> (raw)
In-Reply-To: <20221107181327.379007-11-michal.wilczynski@intel.com>

On Mon,  7 Nov 2022 19:13:26 +0100 Michal Wilczynski wrote:
> Add documentation to a newly added devlink-rate feature. Provide some
> examples on how to use the features, which netlink attributes are
> supported and descriptions of the attributes.

> +Devlink Rate
> +==========
> +
> +The ``ice`` driver implements devlink-rate API. It allows for offload of
> +the Hierarchical QoS to the hardware. It enables user to group Virtual
> +Functions in a tree structure and assign supported parameters: tx_share,
> +tx_max, tx_priority and tx_weight to each node in a tree. So effectively
> +user gains an ability to control how much bandwidth is allocated for each
> +VF group. This is later enforced by the HW.
> +
> +It is assumed that this feature is mutually exclusive with DCB and ADQ, or
> +any driver feature that would trigger changes in QoS, for example creation
> +of the new traffic class.

Meaning? Will the devlink API no longer reflect reality once one of 
the VFs enables DCB for example? 

> This feature is also dependent on switchdev
> +being enabled in the system. It's required bacause devlink-rate requires
> +devlink-port objects to be present, and those objects are only created
> +in switchdev mode.
> +
> +If the driver is set to the switchdev mode, it will export
> +internal hierarchy the moment the VF's are created. Root of the tree
> +is always represented by the node_0. This node can't be deleted by the user.
> +Leaf nodes and nodes with children also can't be deleted.
> +
> +.. list-table:: Attributes supported
> +    :widths: 15 85
> +
> +    * - Name
> +      - Description
> +    * - ``tx_max``
> +      - This attribute allows for specifying a maximum bandwidth to be

Drop the "This attribute allows for specifying a" from all attrs.

> +        consumed by the tree Node. Rate Limit is an absolute number
> +        specifying a maximum amount of bytes a Node may consume during
> +        the course of one second. Rate limit guarantees that a link will
> +        not oversaturate the receiver on the remote end and also enforces
> +        an SLA between the subscriber and network provider.
> +    * - ``tx_share``

Wouldn't it be more common to call this tx_min, like in the old VF API
and the cgroup APIs?

> +      - This attribute allows for specifying a minimum bandwidth allocated
> +        to a tree node when it is not blocked. It specifies an absolute
> +        BW. While tx_max defines the maximum bandwidth the node may consume,
> +        the tx_share marks committed BW for the Node.
> +    * - ``tx_priority``
> +      - This attribute allows for usage of strict priority arbiter among
> +        siblings. This arbitration scheme attempts to schedule nodes based
> +        on their priority as long as the nodes remain within their
> +        bandwidth limit. Range 0-7.

Nodes meaning it will (W)RR across all nodes of highest prio?

Is prio 0 or 7 highest?

> +    * - ``tx_weight``
> +      - This attribute allows for usage of Weighted Fair Queuing
> +        arbitration scheme among siblings. This arbitration scheme can be
> +        used simultaneously with the strict priority. Range 1-200.

Would be good to specify how the interaction with SP looks.
Does the absolute value of the weight matter or only the relative
values? (IOW is 1 vs 10 the same as 10 vs 100)

  reply	other threads:[~2022-11-08 22:39 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-07 18:13 [PATCH net-next v10 00/10] Implement devlink-rate API and extend it Michal Wilczynski
2022-11-07 18:13 ` [PATCH net-next v10 01/10] devlink: Introduce new attribute 'tx_priority' to devlink-rate Michal Wilczynski
2022-11-07 18:13 ` [PATCH net-next v10 02/10] devlink: Introduce new attribute 'tx_weight' " Michal Wilczynski
2022-11-07 18:13 ` [PATCH net-next v10 03/10] devlink: Enable creation of the devlink-rate nodes from the driver Michal Wilczynski
2022-11-07 18:13 ` [PATCH net-next v10 04/10] devlink: Allow for devlink-rate nodes parent reassignment Michal Wilczynski
2022-11-07 18:13 ` [PATCH net-next v10 05/10] devlink: Allow to set up parent in devl_rate_leaf_create() Michal Wilczynski
2022-11-07 18:13 ` [PATCH net-next v10 06/10] ice: Introduce new parameters in ice_sched_node Michal Wilczynski
2022-11-07 18:13 ` [PATCH net-next v10 07/10] ice: Add an option to pre-allocate memory for ice_sched_node Michal Wilczynski
2022-11-07 18:13 ` [PATCH net-next v10 08/10] ice: Implement devlink-rate API Michal Wilczynski
2022-11-07 18:13 ` [PATCH net-next v10 09/10] ice: Prevent ADQ, DCB coexistence with Custom Tx scheduler Michal Wilczynski
2022-11-07 18:13 ` [PATCH net-next v10 10/10] ice: add documentation for devlink-rate implementation Michal Wilczynski
2022-11-08 22:39   ` Jakub Kicinski [this message]
2022-11-09 18:54     ` Wilczynski, Michal
2022-11-09 21:25       ` Jakub Kicinski
2022-11-10 16:54         ` Wilczynski, Michal
2022-11-10 17:03           ` Jakub Kicinski
2022-11-10 17:40             ` Wilczynski, Michal
2022-11-07 18:13 ` [PATCH net-next v10 10/10] ice: Add " Michal Wilczynski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221108143936.4e59f6e8@kernel.org \
    --to=kuba@kernel.org \
    --cc=alexandr.lobakin@intel.com \
    --cc=anthony.l.nguyen@intel.com \
    --cc=ecree.xilinx@gmail.com \
    --cc=jacob.e.keller@intel.com \
    --cc=jesse.brandeburg@intel.com \
    --cc=jiri@resnulli.us \
    --cc=michal.wilczynski@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=przemyslaw.kitszel@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.