All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: Wei Dai <wei.dai@intel.com>
Cc: dev@dpdk.org, ferruh.yigit@intel.com, Qi Zhang <qi.z.zhang@intel.com>
Subject: Re: [PATCH v12] ethdev: new Rx/Tx offloads API
Date: Mon, 14 May 2018 10:37:23 +0200	[thread overview]
Message-ID: <6062045.q3mRbyETGS@xps> (raw)
In-Reply-To: <1576914.aDSgkB13uL@xps>

Wei Dai,
Do you agree with my comments?
Could we have a wording patch to squash in RC3?


10/05/2018 23:39, Thomas Monjalon:
> Hi,
> 
> A first general comment: a lot of spaces are still inside parens.
> You can grep '( )'.
> 
> 10/05/2018 13:56, Wei Dai:
> > --- a/doc/guides/prog_guide/poll_mode_drv.rst
> > +++ b/doc/guides/prog_guide/poll_mode_drv.rst
> > +A per-queue offloading can be enabled on a queue and disabled on another queue at the same time.
> > +A pure per-port offload is the one supported by device but not per-queue type.
> 
> Another way to say it: pure per-port offloads are not directly advertised but
> are the port offloads capabilities minus the queue capabilities.
> port capabilities = pure per-port capabilities + queue capabilities
> 
> > +A pure per-port offloading can't be enabled on a queue and disabled on another queue at the same time.
> > +A pure per-port offloading must be enabled or disabled on all queues at the same time.
> > +Any offloading is per-queue or pure per-port type, but can't be both types at same devices.
> > +A per-port offloading can be enabled or disabled on all queues at the same time.
> 
> This sentence is useless: it says any offload can be setup for the whole port.
> 
> > +It is certain that both per-queue and pure per-port offloading are per-port type.
> 
> This sentence is confusing. I cannot understand it.
> 
> 
> >  The different offloads capabilities can be queried using ``rte_eth_dev_info_get()``.
> > +The dev_info->[rt]x_queue_offload_capa returned from ``rte_eth_dev_info_get()`` includes all per-queue offloading capabilities.
> > +The dev_info->[rt]x_offload_capa returned from ``rte_eth_dev_info_get()`` includes all per-port and per-queue offloading capabilities.
> 
> If you want to stick with pure per-port wording, you should say
> [rt]x_offload_capa is the port capabilities (including pure per-port and per-queue).
> 
> 
> > --- a/lib/librte_ethdev/rte_ethdev.c
> > +++ b/lib/librte_ethdev/rte_ethdev.c
> > +	/* Any requested offloading must be within its device capabilities */
> > +	if ((local_conf.rxmode.offloads & dev_info.rx_offload_capa) !=
> > +	     local_conf.rxmode.offloads) {
> > +		ethdev_log(ERR, "ethdev port_id=%d requested Rx offloads "
> > +				"0x%" PRIx64 " doesn't match Rx offloads "
> > +				"capabilities 0x%" PRIx64 " in %s( )\n",
> > +				port_id,
> > +				local_conf.rxmode.offloads,
> > +				dev_info.rx_offload_capa,
> > +				__func__);
> 
> We could have a comment saying that an error will be returned in next version.
> 
> > +	}
> > +	if ((local_conf.txmode.offloads & dev_info.tx_offload_capa) !=
> > +	     local_conf.txmode.offloads) {
> > +		ethdev_log(ERR, "ethdev port_id=%d requested Tx offloads "
> > +				"0x%" PRIx64 " doesn't match Tx offloads "
> > +				"capabilities 0x%" PRIx64 " in %s( )\n",
> > +				port_id,
> > +				local_conf.txmode.offloads,
> > +				dev_info.tx_offload_capa,
> > +				__func__);
> 
> idem
> 
> > +	}
> 
> 
> > +	/*
> > +	 * If an offloading has already been enabled in
> > +	 * rte_eth_dev_configure(), it has been enabled on all queues,
> > +	 * so there is no need to enable it in this queue again.
> > +	 * The local_conf.offloads input to underlying PMD only carries
> > +	 * those offloadings which are only enabled on this queue and
> > +	 * not enabled on all queues.
> > +	 * The underlying PMD must be aware of this point.
> 
> I think the last sentence is useless.
> 
> > +	 */
> > +	local_conf.offloads &= ~dev->data->dev_conf.rxmode.offloads;
> > +
> > +	/*
> > +	 * New added offloadings for this queue are those not enabled in
> > +	 * rte_eth_dev_configure( ) and they must be per-queue type.
> > +	 * A pure per-port offloading can't be enabled on a queue while
> > +	 * disabled on another queue. A pure per-port offloading can't
> > +	 * be enabled for any queue as new added one if it hasn't been
> > +	 * enabled in rte_eth_dev_configure( ).
> > +	 */
> > +	if ((local_conf.offloads & dev_info.rx_queue_offload_capa) !=
> > +	     local_conf.offloads) {
> > +		ethdev_log(ERR, "Ethdev port_id=%d rx_queue_id=%d, new "
> > +				"added offloads 0x%" PRIx64 " must be "
> > +				"within pre-queue offload capabilities 0x%"
> > +				PRIx64 " in %s( )\n",
> > +				port_id,
> > +				rx_queue_id,
> > +				local_conf.offloads,
> > +				dev_info.rx_queue_offload_capa,
> > +				__func__);
> 
> idem, we can have a comment about error in next version
> 
> > +	}
> 
> 
> > --- a/lib/librte_ethdev/rte_ethdev.h
> > +++ b/lib/librte_ethdev/rte_ethdev.h
> >  	uint64_t rx_offload_capa;
> > -	/**< Device per port RX offload capabilities. */
> > +	/**< All RX offload capabilities including all per queue ones */
> 
> OK
> per queue -> per-queue
> 
> >  	uint64_t tx_offload_capa;
> > -	/**< Device per port TX offload capabilities. */
> > +	/**< All TX offload capabilities.including all per-queue ones */
> 
> Typo: there is a dot instead of space.
> 
> >  	uint64_t rx_queue_offload_capa;
> >  	/**< Device per queue RX offload capabilities. */
> 
> Here you should add more comments:
> 	No need to repeat flags already enabled at port level.
> 	A flag enabled at port level, cannot be disabled at queue level.
> 
> 
> > + *     -  Any offloading set in eth_conf->[rt]xmode.offloads must be within
> > + *        the [rt]x_offload_capa returned from rte_eth_dev_infos_get().
> 
> OK
> 
> > + *        Any type of device supported offloading set in the input argument
> > + *        eth_conf->[rt]xmode.offloads to rte_eth_dev_configure() is enabled
> > + *        on all [RT]x queues and it can't be disabled no matter whether
> > + *        it is cleared or set in the input argument [rt]x_conf->offloads
> > + *        to rte_eth_[rt]x_queue_setup().
> 
> last part can be simpler: cannot be disabled in queue setup.
> "[RT]x queues" can be simply "queues".
> 
> 
> > + *   If an offloading set in rx_conf->offloads
> > + *   hasn't been set in the input argument eth_conf->rxmode.offloads
> > + *   to rte_eth_dev_configure(), it is a new added offloading, it must be
> > + *   per-queue type and it is enabled for the queue.
> 
> OK
> Another wording:
> The offloads not advertised in queue capabilities, and not already enabled
> at port level, are rejected.

  reply	other threads:[~2018-05-14  8:37 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-01 13:53 [PATCH] ethdev: check consistency of per port offloads Wei Dai
2018-03-28  8:57 ` [PATCH v2] ethdev: check Rx/Tx offloads Wei Dai
2018-04-13 17:31   ` Ferruh Yigit
2018-04-15 10:37     ` Thomas Monjalon
2018-04-16  3:06       ` Dai, Wei
2018-04-25 11:26   ` [PATCH] " Wei Dai
2018-04-25 11:31   ` [PATCH v3] " Wei Dai
2018-04-25 11:49     ` Wei Dai
2018-04-25 11:50   ` [PATCH v4] " Wei Dai
2018-04-25 17:04     ` Ferruh Yigit
2018-04-26  7:59       ` Zhang, Qi Z
2018-04-26  8:18         ` Thomas Monjalon
2018-04-26  8:51           ` Zhang, Qi Z
2018-04-26 14:45             ` Dai, Wei
2018-04-26 14:37     ` [PATCH v5] " Wei Dai
2018-04-26 15:50       ` Ferruh Yigit
2018-04-26 15:56         ` Thomas Monjalon
2018-04-26 15:59           ` Ferruh Yigit
2018-04-26 16:11         ` Ferruh Yigit
2018-05-03  1:30       ` [PATCH v6] " Wei Dai
2018-05-04 11:12         ` Ferruh Yigit
2018-05-04 14:02         ` [PATCH v7] " Wei Dai
2018-05-04 14:42           ` Ferruh Yigit
2018-05-04 14:45             ` Ferruh Yigit
2018-05-05 18:59           ` Shahaf Shuler
2018-05-07  7:15             ` Dai, Wei
2018-05-08 10:58             ` Ferruh Yigit
2018-05-08 10:05           ` [PATCH v8] " Wei Dai
2018-05-08 10:41             ` Andrew Rybchenko
2018-05-08 11:02               ` Ferruh Yigit
2018-05-08 11:22                 ` Andrew Rybchenko
2018-05-08 11:37             ` Andrew Rybchenko
2018-05-08 12:34               ` Dai, Wei
2018-05-08 12:12             ` Ferruh Yigit
2018-05-09 12:45               ` Dai, Wei
2018-05-10  0:49             ` [PATCH v9] ethdev: new Rx/Tx offloads API Wei Dai
2018-05-10  0:56               ` [PATCH v10] " Wei Dai
2018-05-10  1:28                 ` Ferruh Yigit
2018-05-10  2:35                 ` Thomas Monjalon
2018-05-10 11:27                   ` Dai, Wei
2018-05-10  9:25                 ` Andrew Rybchenko
2018-05-10 19:47                   ` Ferruh Yigit
2018-05-10 11:30                 ` [PATCH v11] " Wei Dai
2018-05-10 11:56                   ` [PATCH v12] " Wei Dai
2018-05-10 21:39                     ` Thomas Monjalon
2018-05-14  8:37                       ` Thomas Monjalon [this message]
2018-05-14 11:19                         ` Dai, Wei
2018-05-10 21:48                     ` Ferruh Yigit
2018-05-14 12:00                     ` [PATCH v13] " Wei Dai
2018-05-14 12:54                       ` Thomas Monjalon
2018-05-14 13:26                         ` Dai, Wei
2018-05-14 13:20                       ` [PATCH v14] " Wei Dai
2018-05-14 14:11                         ` Thomas Monjalon
2018-05-14 14:46                           ` Ferruh Yigit
2018-05-10 21:08                 ` [PATCH v10] " Ferruh Yigit
2018-05-08 10:10           ` [PATCH v8] ethdev: check Rx/Tx offloads Wei Dai
2018-05-08 17:51             ` Andrew Rybchenko
2018-05-09  2:10               ` Dai, Wei
2018-05-09 14:11               ` Ferruh Yigit
2018-05-09 22:40                 ` 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=6062045.q3mRbyETGS@xps \
    --to=thomas@monjalon.net \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=qi.z.zhang@intel.com \
    --cc=wei.dai@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.