From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E6778A053A; Tue, 4 Aug 2020 12:42:15 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3C27E29D2; Tue, 4 Aug 2020 12:42:15 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 0324DF04 for ; Tue, 4 Aug 2020 12:42:12 +0200 (CEST) IronPort-SDR: eKJxPnCVEn873RtQlxaFQT+b+8yldWOvTPWt/0msmq6wPVBzFvrG4oK7+EgduYQtRItLrTxo1W uWvqN1yNuymQ== X-IronPort-AV: E=McAfee;i="6000,8403,9702"; a="140204964" X-IronPort-AV: E=Sophos;i="5.75,433,1589266800"; d="scan'208";a="140204964" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Aug 2020 03:42:11 -0700 IronPort-SDR: EXTIM5lPyOVfoluT/xyAQ+abXY9uNqii0j0+Lhalz41ZPR0VejPXGaVj2V7mCbu77VxnLYtpjH ArPFFoA81V7Q== X-IronPort-AV: E=Sophos;i="5.75,433,1589266800"; d="scan'208";a="467018053" Received: from mkalinsk-mobl1.ger.corp.intel.com (HELO bricha3-MOBL.ger.corp.intel.com) ([10.213.28.51]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 04 Aug 2020 03:42:08 -0700 Date: Tue, 4 Aug 2020 11:41:53 +0100 From: Bruce Richardson To: pbhagavatula@marvell.com Cc: jerinj@marvell.com, Ray Kinsella , Neil Horman , John McNamara , Marko Kovacevic , dev@dpdk.org, thomas@monjalon.net, david.marchand@redhat.com Message-ID: <20200804104153.GA1464@bricha3-MOBL.ger.corp.intel.com> References: <20200802105137.1666-1-pbhagavatula@marvell.com> <20200803072903.1209-1-pbhagavatula@marvell.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200803072903.1209-1-pbhagavatula@marvell.com> Subject: Re: [dpdk-dev] [PATCH v2] doc: add reserve fields to eventdev public structures X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Mon, Aug 03, 2020 at 12:59:03PM +0530, pbhagavatula@marvell.com wrote: > From: Pavan Nikhilesh > > Add 64 byte padding at the end of event device public structure to allow > future extensions. > > Signed-off-by: Pavan Nikhilesh > Acked-by: Jerin Jacob > --- > 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