On Tue, 4 Aug 2020 11:41:53 +0100 Bruce Richardson <bruce.richard...@intel.com> wrote:
> On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavat...@marvell.com wrote: > > From: Pavan Nikhilesh <pbhagavat...@marvell.com> > > > > Add 64 byte padding at the end of event device public structure to allow > > future extensions. > > > > Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com> > > Acked-by: Jerin Jacob <jer...@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 This is a bad idea. Reserved fields won't work because nothing requires that the application zero them. You can't start using them later because the application may put uninitialized or junk data there.