[dpdk-dev] [PATCH v2 2/2] ethdev: introduce Tx queue offloads API

Shahaf Shuler shahafs at mellanox.com
Mon Sep 11 07:52:19 CEST 2017


Sunday, September 10, 2017 8:48 PM, Stephen Hemminger:
> 
> On Sun, 10 Sep 2017 15:07:49 +0300
> Shahaf Shuler <shahafs at mellanox.com> wrote:
> 
> > Introduce a new API to configure Tx offloads.
> >
> > In the new API, offloads are divided into per-port and per-queue
> > offloads. The PMD reports capability for each of them.
> > Offloads are enabled using the existing DEV_TX_OFFLOAD_* flags.
> > To enable per-port offload, the offload should be set on both device
> > configuration and queue configuration. To enable per-queue offload,
> > the offloads can be set only on queue configuration.
> >
> > In addition the Tx offloads will be disabled by default and be enabled
> > per application needs. This will much simplify PMD management of the
> > different offloads.
> >
> > The new API does not have an equivalent for the below, benchmark
> > specific, flags:
> >
> > 	- ETH_TXQ_FLAGS_NOREFCOUNT
> > 	- ETH_TXQ_FLAGS_NOMULTMEMP
> >
> > Applications should set the ETH_TXQ_FLAGS_IGNORE flag on txq_flags
> > field in order to move to the new API.
> >
> > The old Tx offloads API is kept for the meanwhile, in order to enable
> > a smooth transition for PMDs and application to the new API.
> >
> > Signed-off-by: Shahaf Shuler <shahafs at mellanox.com>
> > ---
> 
> Agree on a conceptual and hardware level, that this is a property that could
> be per queue. But is there really an application that would want to have
> refcounting on one queue and not another?  If application is cloning mbuf's it
> needs refcounting.  One could even argue that for safety these should be
> library wide.  That way if an application tried to manipulate ref count on an
> mbuf and refcountin was enabled it could be panic'd.

Actually the refcount and multi mempool flags has no equivalent on this new API. They are not counted as offloads rather some guarantees from application side, which I agree that probably needs to by library wide. 
In the current API you cannot set those per queue nor per port. I think there is intention to move those flags to some other location following this series [1]

[1]
http://dpdk.org/ml/archives/dev/2017-September/074475.html





More information about the dev mailing list