All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Ferruh Yigit <ferruh.yigit@amd.com>
Cc: <dev@dpdk.org>, Thomas Monjalon <thomas@monjalon.net>,
	Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
	Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Subject: Re: [PATCH 4/4] ethdev: add traffic manager query function
Date: Mon, 7 Oct 2024 12:04:37 +0100	[thread overview]
Message-ID: <ZwPARRX5d1ulDdom@bricha3-mobl1.ger.corp.intel.com> (raw)
In-Reply-To: <ccf85ebb-be07-4868-9c55-d7a500ab4b25@amd.com>

On Sun, Sep 22, 2024 at 05:26:30PM +0100, Ferruh Yigit wrote:
> On 8/6/2024 4:24 PM, Bruce Richardson wrote:
> > +/**
> > + * Return information about a traffic management node
> > + *
> > + * Return information about a hierarchy node, using the same format of parameters
> > + * as was passed to the rte_rm_node_add() function.
> > + * Each of the "out" parameters pointers (except error) may be passed as NULL if the
> > + * information is not needed by the caller. For example, to one may check if a node id
> > + * is in use by:
> > + *
> > + *  struct rte_tm_error error;
> > + *  int ret = rte_tm_node_query(port, node_id, NULL, NULL, NULL, NULL, NULL, &error);
> > + *  if (ret == ENOENT) ...
> > + *
> > + * @param[in] port_id
> > + *   The port identifier of the Ethernet device.
> > + * @param[in] node_id
> > + *   Node ID. Should be a valid node id.
> > + * @param[out] parent_node_id
> > + *   Parent node ID.
> > + * @param[out] priority
> > + *   Node priority. The highest node priority is zero. Used by the SP algorithm
> > + *   running on the parent of the current node for scheduling this child node.
> > + * @param[out] weight
> > + *   Node weight. The node weight is relative to the weight sum of all siblings
> > + *   that have the same priority. The lowest weight is one. Used by the WFQ
> > + *   algorithm running on the parent of the current node for scheduling this
> > + *   child node.
> > + * @param[out] level_id
> > + *   The node level in the scheduler hierarchy.
> > + * @param[out] params
> > + *   Node parameters, as would be used when creating the node.
> > + * @param[out] error
> > + *   Error details. Filled in only on error, when not NULL.
> > + * @return
> > + *   0 on success, non-zero error code otherwise.
> > + *   -EINVAL - port or node id value is invalid
> > + *   -ENOENT - no node exists with the provided id
> > + */
> > +int
> > +rte_tm_node_query(uint16_t port_id,
> > +	uint32_t node_id,
> > +	uint32_t *parent_node_id,
> > +	uint32_t *priority,
> > +	uint32_t *weight,
> > +	uint32_t *level_id,
> > +	struct rte_tm_node_params *params,
> > +	struct rte_tm_error *error);
> > +
> >
> 
> No objection to get an TM node query API overall, but it would be good
> to get more comment on the what correct API should be, we are missing it.
> Both because it is not discussed much, and it is first release, better
> to add this API as experimental.
> 

Yes, good point, it should be added to version.map file and marked as
experimental. Happy to take any feedback on what the API should be.

> Also we should have an implementation in driver and a sample application
> usage (testpmd?) with new API. Are these planned separately for this
> release, or can it be available part of next version of this patch?
> 
I have an implemented for ice driver in [1]. On testpmd side, I never
thought to do so, because it was more for me when writing test code around
the APIs than for actual end-users. [As I explain, this API should save app
developers the work of storing a copy of the TM hierarchy in the app code
too]. However, I think it may be no harm to do a testpmd call for it, it
may be useful for debugging.

[1] https://patches.dpdk.org/project/dpdk/patch/20240812152815.1132697-2-bruce.richardson@intel.com/

> Finally, does it worth documenting this in release notes, as just a
> query API I am not sure if this a notable feature, but just a reminder.
> 

Don't think it requires an RN item.

Will perhaps do a new revision of this patchset without this final patch,
and then submit this patch as a separate one for tracking. I don't think
the other patches to mark things const should be blocked by discussion on
this.

Regards,

/Bruce

  reply	other threads:[~2024-10-07 11:04 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-06 15:24 [PATCH 0/4] improve rte_tm APIs Bruce Richardson
2024-08-06 15:24 ` [PATCH 1/4] ethdev: make parameters to TM node add fn constant Bruce Richardson
2024-08-07  7:27   ` Xu, Rosen
2024-09-22 16:10     ` Ferruh Yigit
2024-08-06 15:24 ` [PATCH 2/4] ethdev: make parameters to TM profile " Bruce Richardson
2024-08-07  7:27   ` Xu, Rosen
2024-09-22 16:11     ` Ferruh Yigit
2024-08-06 15:24 ` [PATCH 3/4] ethdev: make TM shaper parameters constant Bruce Richardson
2024-08-07  7:29   ` Xu, Rosen
2024-09-22 16:11     ` Ferruh Yigit
2024-08-06 15:24 ` [PATCH 4/4] ethdev: add traffic manager query function Bruce Richardson
2024-09-22 16:26   ` Ferruh Yigit
2024-10-07 11:04     ` Bruce Richardson [this message]
2024-10-08 10:56       ` Bruce Richardson
2024-10-07 11:49 ` [PATCH v2 0/3] make struct parameters constant in rte_tm APIs Bruce Richardson
2024-10-07 11:49   ` [PATCH v2 1/3] ethdev: make parameters to TM node add fn constant Bruce Richardson
2024-10-07 11:49   ` [PATCH v2 2/3] ethdev: make parameters to TM profile " Bruce Richardson
2024-10-07 11:49   ` [PATCH v2 3/3] ethdev: make TM shaper parameters constant Bruce Richardson
2024-10-07 15:22   ` [PATCH v2 0/3] make struct parameters constant in rte_tm APIs Stephen Hemminger
2024-10-08  0:38     ` Ferruh Yigit

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=ZwPARRX5d1ulDdom@bricha3-mobl1.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=cristian.dumitrescu@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=thomas@monjalon.net \
    /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.