From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [dpdk-announce] important design choices - statistics - ABI Date: Wed, 17 Jun 2015 10:23:23 +0200 Message-ID: <15605927.nQTld2nBbd@xps13> References: <9092314.MoyqUJ5VU2@xps13> <20150617043654.GA10337@mhcomputing.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org To: Stephen Hemminger , Matthew Hall Return-path: Received: from mail-wg0-f41.google.com (mail-wg0-f41.google.com [74.125.82.41]) by dpdk.org (Postfix) with ESMTP id 2DD80C3E6 for ; Wed, 17 Jun 2015 10:24:23 +0200 (CEST) Received: by wgzl5 with SMTP id l5so30263953wgz.3 for ; Wed, 17 Jun 2015 01:24:23 -0700 (PDT) In-Reply-To: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 2015-06-16 22:28, Stephen Hemminger: > On Tue, Jun 16, 2015 at 9:36 PM, Matthew Hall wrote: > > On Wed, Jun 17, 2015 at 01:29:47AM +0200, Thomas Monjalon wrote: > > > There were some debates about software statistics disabling. > > > Should they be always on or possibly disabled when compiled? > > > We need to take a decision shortly and discuss (or agree) this proposal: > > > http://dpdk.org/ml/archives/dev/2015-June/019461.html > > > > This goes against the idea I have seen before that we should be moving > > toward a distro-friendly approach where one copy of DPDK can be used by > > multiple apps without having to rebuild it. It seems like it is also a > > bit ABI hostile according to the below goals / discussions. > > > > Jemalloc is also very high-performance code and still manages to allow > > enabling and disabling statistics at runtime. Are we sure it's impossible > > for DPDK or just theorizing? Please Matthew, it is better to comment in the thread dedicated to statistics. [...] > > Personally to me it seems more important to preserve the ABI on patch > > releases, like 2.X.Y going to 2.X.Z. But maybe I missed something? The goal of the ABI deprecation process was to provide a smooth integration of the release 2.X+1.0. There are 4 months between releases 2.X.0 and 2.X+1.0. [...] > > However new-style libraries such as libcurl usually just have init > > functions which initialize all the secret structs based on some defaults > > and some user parameters and hide the actual structs from the user. > > If you want to adjust some you call an adjuster function that modifies > > the actual secret struct contents, with some enum saying what field to > > adjust, and the new value you want it to have. > > > > If you want to keep a stable ABI for a non-stable library like DPDK, > > there's a good chance you must begin hiding all these weird device > > specific structs all over the DPDK from the user needing to directly > > allocate and modify them. > > Otherwise the ABI breaks everytime you have to add adjustments, > > extensions, modifications to all these obscure special features. > > The DPDK makes extensive use of inline functions which prevents data hiding > necessary for ABI stablility. This a fundamental tradeoff, and since the > whole reason for DPDK is performance; the ABI is going to be a moving target. > > It would make more sense to provide a higher level API which was abstracted, > slower, but stable for applications. But in doing so it would mean giving > up things like inline lockless rings. Just don't go as far as the Open (not) > dataplane API; > which is just an excuse for closed source. I don't understand what you mean.