[dpdk-dev] [PATCH v13] ethdev: new Rx/Tx offloads API

Dai, Wei wei.dai at intel.com
Mon May 14 15:26:40 CEST 2018


Hi, Thomas
Thanks for your quick feedback.

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas at monjalon.net]
> Sent: Monday, May 14, 2018 8:54 PM
> To: Dai, Wei <wei.dai at intel.com>
> Cc: dev at dpdk.org; Yigit, Ferruh <ferruh.yigit at intel.com>; Zhang, Qi Z
> <qi.z.zhang at intel.com>
> Subject: Re: [dpdk-dev] [PATCH v13] ethdev: new Rx/Tx offloads API
> 
> 14/05/2018 14:00, Wei Dai:
> > --- a/doc/guides/prog_guide/poll_mode_drv.rst
> > +++ b/doc/guides/prog_guide/poll_mode_drv.rst
> > @@ -303,12 +303,12 @@ In the DPDK offload API, offloads are divided
> > into per-port and per-queue offloa
> >  * 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.
> > -* It is certain that both per-queue and pure per-port offloading are
> per-port type.
> > +* Port capabilities = pre-queue capabilities + pure per-port capabilities.
> 
> s/pre/per/
Sorry for the typo error.

> 
> > +* Any supported offloading can be enabled on all queues.
> >
> >  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.
> > +The ``dev_info->[rt]x_offload_capa`` returned from
> ``rte_eth_dev_info_get()`` includes all pure per-port and per-queue
> offloading capabilities.
> 
> OK
> 
> 
> > @@ -1556,29 +1558,29 @@ rte_eth_rx_queue_setup(uint16_t port_id,
> uint16_t rx_queue_id,
> >  	 * 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.
> >  	 */
> 
> OK
> 
> 
> > --- a/lib/librte_ethdev/rte_ethdev.h
> > +++ b/lib/librte_ethdev/rte_ethdev.h
> > @@ -1067,13 +1067,18 @@ struct rte_eth_dev_info {
> >  	uint16_t max_vfs; /**< Maximum number of VFs. */
> >  	uint16_t max_vmdq_pools; /**< Maximum number of VMDq pools. */
> >  	uint64_t rx_offload_capa;
> > -	/**< All RX offload capabilities including all per queue ones */
> > +	/**<
> > +	 * All RX offload capabilities including all per-queue ones.
> > +	 * Any flag in [rt]x_offload_capa and [rt]x_queue_offload_capa
> > +	 * of this structure needn't be repeated in rte_eth_[rt]x_queue_setup().
> 
> It is confusing. Better to remove this sentence about queue_setup in port
> capa comment.
> 
> > +	 * A flag enabled at port level can't be disabled at queue level.
> 
> This one too: it is a comment about port capa, not queue setup.
> 
Sorry, I think I have a mistake about your feedback on v12.
Will remove above 2 sentences.

> 
> > @@ -1554,9 +1559,7 @@ const char * __rte_experimental
> rte_eth_dev_tx_offload_name(uint64_t offload);
> >   *        the [rt]x_offload_capa returned from
> rte_eth_dev_infos_get().
> >   *        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().
> > + *        on all queues and it can't be disabled in
> rte_eth_[rt]x_queue_setup().
> 
> OK
> 
> 
> Missing: we must explain the "no repeat need" and "no disable port offload
> on queue" constraint.
> In the last review, I was suggesting such sentences:
>         No need to repeat flags already enabled at port level.
>         A flag enabled at port level, cannot be disabled at queue level.
> I think it should go in queue setup comments.
> 
> Opinion?
> 
Will add this in the comments of queue_setup( ) in rte_ethdev.h




More information about the dev mailing list