From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id C41D26CD8; Thu, 4 Apr 2019 15:10:33 +0200 (CEST) X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Apr 2019 06:10:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,308,1549958400"; d="scan'208";a="128592141" Received: from bricha3-mobl.ger.corp.intel.com ([10.237.221.35]) by orsmga007.jf.intel.com with SMTP; 04 Apr 2019 06:10:30 -0700 Received: by (sSMTP sendmail emulation); Thu, 04 Apr 2019 14:10:29 +0100 Date: Thu, 4 Apr 2019 14:10:29 +0100 From: Bruce Richardson To: Ray Kinsella Cc: Luca Boccassi , "Burakov, Anatoly" , dev@dpdk.org, Kevin Traynor , "techboard@dpdk.org" Message-ID: <20190404131028.GB1355@bricha3-MOBL.ger.corp.intel.com> References: <94df3cc4-de54-72d6-84c6-81bebd209a81@intel.com> <20190404105447.GA1351@bricha3-MOBL.ger.corp.intel.com> <4ec2c98004ef5d693d0e033c93820580bbd2ebfa.camel@debian.org> <3055e4ce-767b-ab43-43ac-c3604fd3ea5c@ashroe.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3055e4ce-767b-ab43-43ac-c3604fd3ea5c@ashroe.eu> User-Agent: Mutt/1.11.4 (2019-03-13) Subject: Re: [dpdk-dev] [dpdk-techboard] DPDK ABI/API Stability 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: , X-List-Received-Date: Thu, 04 Apr 2019 13:10:34 -0000 On Thu, Apr 04, 2019 at 02:05:27PM +0100, Ray Kinsella wrote: > > > On 04/04/2019 13:02, Luca Boccassi wrote: > > On Thu, 2019-04-04 at 11:54 +0100, Bruce Richardson wrote: > >> On Thu, Apr 04, 2019 at 10:29:19AM +0100, Burakov, Anatoly wrote: > >>> On 03-Apr-19 4:42 PM, Ray Kinsella wrote: > [SNIP] > >>> > >> > >> Actually, I think we *do* need to constrain the pace of development > >> for the > >> sake of ABI stability. At this stage DPDK has been around for quite a > >> number of years and so should be considered a fairly mature project - > >> it > >> should just start acting like it. > >> > >> Now, in terms of features like the memory rework, that is indeed a > >> case > >> that there was no alternative other than a massive ABI break. > >> However, for > >> that rework there was a strong need for improvement in that area that > >> we > >> can make the case for an ABI break to support it - and it is of a > >> scale > >> that nothing other than an ABI change would do. For other areas and > >> examples, I doubt there are many in the last couple of years that are > >> of > >> that scale. > > > > Fully agree. > > > > It's normal for new project, big and small, to start without a > > stability promise as development ramps up, and then steer toward > > stability as the user base grows. Sometimes the switch is made explicit > > by crossing from a 0.x to a 1.x version numbering, sometimes it's not. > > I don't think we crossed that boundary yet in this project, and I > > believe that's the main question Ray was trying to raise: has the time > > finally come for DPDK to do this phase shift? > > Yes - we never had a 1.0, where we cut an API and stood behind it > similar to GStreamer. There a number of reasons why this happened not > worth going into, however you make the point very well Luca - this phase > shift is long over due. > > > > > Of course it comes with a price for all developers, and that's again > > common. > > Agreed - nothing is for free. > The question is this something we value and is it something worth doing. > > > > >> My thoughts on the matter are: > >> 1. I think we really need to do work to start hiding more of our data > >> structures - like what Stephen's latest RFC does. This hiding should > >> reduce > >> the scope for ABI breaks. > > > > Yes, I'm a big fan of accessors and opaque structs. > > +1, me too. > I would be too, with certain exceptions - rte_mbuf for one. Any structures that are used by applications cannot be made opaque, as apps do not want to pay the cost of having to call a function every time they want to access something from one of those structures. Thankfully for us, we have plenty of other structures that we can work on in the meantime that can be made private to avoid ABI breaks! :-) I suggest we work through those first, allowing us to hone our ABI-break avoidance skills. /Bruce From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id B52D5A0679 for ; Thu, 4 Apr 2019 15:10:37 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6F0011B107; Thu, 4 Apr 2019 15:10:36 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id C41D26CD8; Thu, 4 Apr 2019 15:10:33 +0200 (CEST) X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Apr 2019 06:10:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,308,1549958400"; d="scan'208";a="128592141" Received: from bricha3-mobl.ger.corp.intel.com ([10.237.221.35]) by orsmga007.jf.intel.com with SMTP; 04 Apr 2019 06:10:30 -0700 Received: by (sSMTP sendmail emulation); Thu, 04 Apr 2019 14:10:29 +0100 Date: Thu, 4 Apr 2019 14:10:29 +0100 From: Bruce Richardson To: Ray Kinsella Cc: Luca Boccassi , "Burakov, Anatoly" , dev@dpdk.org, Kevin Traynor , "techboard@dpdk.org" Message-ID: <20190404131028.GB1355@bricha3-MOBL.ger.corp.intel.com> References: <94df3cc4-de54-72d6-84c6-81bebd209a81@intel.com> <20190404105447.GA1351@bricha3-MOBL.ger.corp.intel.com> <4ec2c98004ef5d693d0e033c93820580bbd2ebfa.camel@debian.org> <3055e4ce-767b-ab43-43ac-c3604fd3ea5c@ashroe.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline In-Reply-To: <3055e4ce-767b-ab43-43ac-c3604fd3ea5c@ashroe.eu> User-Agent: Mutt/1.11.4 (2019-03-13) Subject: Re: [dpdk-dev] [dpdk-techboard] DPDK ABI/API Stability 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" Message-ID: <20190404131029.JB8l2c6XRbrW5l2D2D9QK3ucr994uD07BNM-03XkN3A@z> On Thu, Apr 04, 2019 at 02:05:27PM +0100, Ray Kinsella wrote: > > > On 04/04/2019 13:02, Luca Boccassi wrote: > > On Thu, 2019-04-04 at 11:54 +0100, Bruce Richardson wrote: > >> On Thu, Apr 04, 2019 at 10:29:19AM +0100, Burakov, Anatoly wrote: > >>> On 03-Apr-19 4:42 PM, Ray Kinsella wrote: > [SNIP] > >>> > >> > >> Actually, I think we *do* need to constrain the pace of development > >> for the > >> sake of ABI stability. At this stage DPDK has been around for quite a > >> number of years and so should be considered a fairly mature project - > >> it > >> should just start acting like it. > >> > >> Now, in terms of features like the memory rework, that is indeed a > >> case > >> that there was no alternative other than a massive ABI break. > >> However, for > >> that rework there was a strong need for improvement in that area that > >> we > >> can make the case for an ABI break to support it - and it is of a > >> scale > >> that nothing other than an ABI change would do. For other areas and > >> examples, I doubt there are many in the last couple of years that are > >> of > >> that scale. > > > > Fully agree. > > > > It's normal for new project, big and small, to start without a > > stability promise as development ramps up, and then steer toward > > stability as the user base grows. Sometimes the switch is made explicit > > by crossing from a 0.x to a 1.x version numbering, sometimes it's not. > > I don't think we crossed that boundary yet in this project, and I > > believe that's the main question Ray was trying to raise: has the time > > finally come for DPDK to do this phase shift? > > Yes - we never had a 1.0, where we cut an API and stood behind it > similar to GStreamer. There a number of reasons why this happened not > worth going into, however you make the point very well Luca - this phase > shift is long over due. > > > > > Of course it comes with a price for all developers, and that's again > > common. > > Agreed - nothing is for free. > The question is this something we value and is it something worth doing. > > > > >> My thoughts on the matter are: > >> 1. I think we really need to do work to start hiding more of our data > >> structures - like what Stephen's latest RFC does. This hiding should > >> reduce > >> the scope for ABI breaks. > > > > Yes, I'm a big fan of accessors and opaque structs. > > +1, me too. > I would be too, with certain exceptions - rte_mbuf for one. Any structures that are used by applications cannot be made opaque, as apps do not want to pay the cost of having to call a function every time they want to access something from one of those structures. Thankfully for us, we have plenty of other structures that we can work on in the meantime that can be made private to avoid ABI breaks! :-) I suggest we work through those first, allowing us to hone our ABI-break avoidance skills. /Bruce