[dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures

Bruce Richardson bruce.richardson at intel.com
Tue Aug 4 12:41:53 CEST 2020


On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula at marvell.com wrote:
> From: Pavan Nikhilesh <pbhagavatula at marvell.com>
> 
> Add 64 byte padding at the end of event device public structure to allow
> future extensions.
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
> Acked-by: Jerin Jacob <jerinj at marvell.com>
> ---
>  v2 Changes:
>  - Modify commit title.
>  - Add patch reference to doc.
> 
>  doc/guides/rel_notes/deprecation.rst | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index ea4cfa7a4..ec5db68e9 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -151,3 +151,14 @@ Deprecation Notices
>    Python 2 support will be completely removed in 20.11.
>    In 20.08, explicit deprecation warnings will be displayed when running
>    scripts with Python 2.
> +
> +* eventdev: A 64 byte padding is added at the end of the following structures
> +  in event device library to support future extensions:
> +  ``rte_event_crypto_adapter_conf``, ``rte_event_eth_rx_adapter_conf``,
> +  ``rte_event_eth_rx_adapter_queue_conf``, ``rte_event_eth_tx_adapter_conf``,
> +  ``rte_event_timer_adapter_conf``, ``rte_event_timer_adapter_info``,
> +  ``rte_event_dev_info``, ``rte_event_dev_config``, ``rte_event_queue_conf``,
> +  ``rte_event_port_conf``, ``rte_event_timer_adapter``,
> +  ``rte_event_timer_adapter_data``.
> +  Reference:
> +  http://patches.dpdk.org/project/dpdk/list/?series=10728&archive=both&state=*
> --

I don't like this idea of adding lots of padding to the ends of these
structures. For some structures, such as the public arrays for devices it
may be necessary, but for all the conf structures passed as parameters to
functions I think we can do better. Since these structures are passed by
the user to various functions, function versioning can be used to ensure
that the correct function in eventdev is always called. From there to the
individual PMDs, we can implement ABI compatibility by either:
1. including the length of the struct as a parameter to the driver. (This is
  a bit similar to my proposal for rawdev [1])
2. including the ABI version as a parameter to the driver.

Regards
/Bruce

[1] http://inbox.dpdk.org/dev/?q=enhance+rawdev+APIs


More information about the dev mailing list