From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58]) by dpdk.org (Postfix) with ESMTP id E961A5A0A for ; Fri, 19 Jun 2015 12:27:03 +0200 (CEST) Received: from voip-107-15-76-160.kyn.rr.com ([107.15.76.160] helo=localhost) by smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63) (envelope-from ) id 1Z5tVf-0004zg-Aa; Fri, 19 Jun 2015 06:27:01 -0400 Date: Fri, 19 Jun 2015 06:26:54 -0400 From: Neil Horman To: "O'Driscoll, Tim" Message-ID: <20150619102654.GA26678@hmsreliant.think-freely.org> References: <9092314.MoyqUJ5VU2@xps13> <26FA93C7ED1EAA44AB77D62FBE1D27BA54D6D24C@IRSMSX102.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <26FA93C7ED1EAA44AB77D62FBE1D27BA54D6D24C@IRSMSX102.ger.corp.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Score: -2.9 (--) X-Spam-Status: No Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [dpdk-announce] important design choices - statistics - ABI X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jun 2015 10:27:04 -0000 On Thu, Jun 18, 2015 at 04:55:45PM +0000, O'Driscoll, Tim wrote: > > -----Original Message----- > > From: announce [mailto:announce-bounces@dpdk.org] On Behalf Of Thomas > > Monjalon > > Sent: Wednesday, June 17, 2015 12:30 AM > > To: announce@dpdk.org > > Subject: [dpdk-announce] important design choices - statistics - ABI > > > > Hi all, > > > > > During the development of the release 2.0, there was an agreement to > > keep > > ABI compatibility or to bring new ABI while keeping old one during one > > release. > > In case it's not possible to have this transition, the (exceptional) > > break > > should be acknowledged by several developers. > > http://dpdk.org/doc/guides-2.0/rel_notes/abi.html > > There were some interesting discussions but not a lot of participants: > > http://thread.gmane.org/gmane.comp.networking.dpdk.devel/8367/focus > > =8461 > > > > During the current development cycle for the release 2.1, the ABI > > question > > arises many times in different threads. > > To add the hash key size field, it is proposed to use a struct padding > > gap: > > http://dpdk.org/ml/archives/dev/2015-June/019386.html > > To support the flow director for VF, there is no proposal yet: > > http://dpdk.org/ml/archives/dev/2015-June/019343.html > > To add the speed capability, it is proposed to break ABI in the release > > 2.2: > > http://dpdk.org/ml/archives/dev/2015-June/019225.html > > To support vhost-user multiqueues, it is proposed to break ABI in 2.2: > > http://dpdk.org/ml/archives/dev/2015-June/019443.html > > To add the interrupt mode, it is proposed to add a build-time option > > CONFIG_RTE_EAL_RX_INTR to switch between compatible and ABI breaking > > binary: > > http://dpdk.org/ml/archives/dev/2015-June/018947.html > > To add the packet type, there is a proposal to add a build-time option > > CONFIG_RTE_NEXT_ABI common to every ABI breaking features: > > http://dpdk.org/ml/archives/dev/2015-June/019172.html > > We must also better document how to remove a deprecated ABI: > > http://dpdk.org/ml/archives/dev/2015-June/019465.html > > The ABI compatibility is a new constraint and we need to better > > understand > > what it means and how to proceed. Even the macros are not yet well > > documented: > > http://dpdk.org/ml/archives/dev/2015-June/019357.html > > > > Thanks for your attention and your participation in these important > > choices. > > There's been some good discussion on the ABI policy in various responses to this email. I think we now need to reach a conclusion on how we're going to proceed for the 2.1 release. Then, we can have further discussion on the use of versioning or other methods for avoiding the problem in future. > > For the 2.1 release, I think we should agree to make patches that change the ABI controllable via a compile-time option. I like Olivier's proposal on using a single option (CONFIG_RTE_NEXT_ABI) to control all of these changes instead of a separate option per patch set (see http://dpdk.org/ml/archives/dev/2015-June/019147.html), so I think we should rework the affected patch sets to use that approach for 2.1. > This is a bad idea. Making ABI dependent on compile time options isn't a maintainable solution. It breaks the notion of how LIBABIVER is supposed to work (that is to say you make it impossible to really tell what ABI version you are building). If you have two compile time options that modify the ABI, you have to burn through 4 possible LIBABIVER version values to accomodate all possible combinations, and then you need to remember that when you make them statically applicable. Neil > > Tim >