[dpdk-dev] [patch v4] doc: announce API change in ethdev offload flags

Tom Barbette barbette at kth.se
Fri Aug 9 11:13:50 CEST 2019


I think the silent breaking is still not solved for 
DEV_RX_OFFLOAD_RSS_HASH and DEV_RX_OFFLOAD_FLOW_MARK.

An old application will still compile without any problem, but the RSS 
hash will not be written and the app will break... They should be 
negative. Eg DEV_RX_OFFLOAD_NO_RSS_HASH and DEV_RX_OFFLOAD_NO_FLOW_MARK?

Then, regarding the idea, are we sure it's better to add a configuration 
check/a branch than always copying a few bytes from a warm cache line to 
a warm cache line? Or some HW could free some internal resources? But 
drivers are free to ignore it so it is not a problem as opposed to 
silent breaking.

Tom

On 2019-08-09 10:17, pbhagavatula at marvell.com wrote:
> From: Pavan Nikhilesh <pbhagavatula at marvell.com>
> 
> Add new offload flags ``DEV_RX_OFFLOAD_RSS`` and ``DEV_RX_OFFLOAD_FLOW_MARK``.
> Add new function ``rte_eth_dev_set_supported_ptypes`` to allow application to
> set specific ptypes to be updated in ``rte_mbuf::packet_type``
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
> Acked-by: Andrew Rybchenko <arybchenko at solarflare.com>
> Acked-by: Jerin Jacob <jerinj at marvell.com>
> Acked-by: Hemant Agrawal <hemant.agrawal at nxp.com>
> ---
>   doc/guides/rel_notes/deprecation.rst | 23 +++++++++++++++++++++++
>   1 file changed, 23 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 37b8592b6..e4e2a85d7 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -78,3 +78,26 @@ Deprecation Notices
>     to set new power environment if power environment was already initialized.
>     In this case the function will return -1 unless the environment is unset first
>     (using ``rte_power_unset_env``). Other function usage scenarios will not change.
> +
> +* ethdev: New offload flags ``DEV_RX_OFFLOAD_RSS_HASH`` and ``DEV_RX_OFFLOAD_FLOW_MARK``
> +  will be added in 19.11.
> +  This will allow application to enable or disable PMDs from updating
> +  ``rte_mbuf::hash::rss`` and ``rte_mbuf::hash::fdir`` respectively.
> +  This scheme will allow PMDs to avoid writes to ``rte_mbuf`` fields on Rx and
> +  thereby improve Rx performance if application wishes do so.
> +  In 19.11 PMDs will still update the fields even when the offloads are not
> +  enabled.
> +
> +* ethdev: New function ``rte_eth_dev_set_supported_ptypes`` will be added in
> +  19.11.
> +  This will allow application to request PMD to set specific ptypes defined
> +  through ``rte_eth_dev_set_supported_ptypes`` in ``rte_mbuf::packet_type``.
> +  If application doesn't want any ptype information it can call
> +  ``rte_eth_dev_set_supported_ptypes(ethdev_id, RTE_PTYPE_UNKNOWN)``
> +  If application doesn't call ``rte_eth_dev_set_supported_ptypes`` PMD can
> +  return ``rte_mbuf::packet_type`` with ``rte_eth_dev_get_supported_ptypes``.
> +  If application is interested only in L2/L3 layer, it can inform the PMD to update
> + ``rte_mbuf::packet_type`` with L2/L3 ptype by calling
> + ``rte_eth_dev_set_supported_ptypes(ethdev_id, RTE_PTYPE_L2_MASK | RTE_PTYPE_L3_MASK)``.
> +  This scheme will allow PMDs to avoid writes to ``rte_mbuf`` fields on Rx and
> +  thereby improve Rx performance if application wishes do so.
> --
> 2.17.1
> 


More information about the dev mailing list