From mboxrd@z Thu Jan 1 00:00:00 1970 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) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:organization :user-agent:in-reply-to:references:mime-version :content-transfer-encoding:content-type; bh=f+7roJP9PZnNAlK9NoE4X3qxrRTc+X6RGdvf6wGqMcU=; b=btJz+6+Qz7WeRpJ9hVpf34AE70H9oo33+Ktl3Xb63K9r9EGIlXunbuA5vZNG2OoZo5 riv28genpl41kSmOiVsQMX2pMIDB8EaN9HWnUvpJh+i9cDDUGi0XrI3ScI6fe0GhVHNK 23uQF0TXpUQjPluHwyLG1MvCrS6TMbPqBkofJE9/ramMiUXiIYHHwAyYlwmdkG3voK4F KRqSRiKKRgnwa++ESepI2O1cCw6fd4GvJB51EesCz0zxM1FxibQGg7LgtV+DSAZfT+OF 1D26jNL4gBK0aUH7b8V+1/fxtyJfND7f+/4qkWBtTTlpDn0XBlT4mVU4OUiy+S9sGoHz gU5w== X-Gm-Message-State: ALoCoQlhPPVMJyXflAJu0hTkw63Z9PD/q8ubZv+OCfLjQ4jWmZ7F0iupbOqErqinimXRY498kzsr X-Received: by 10.195.11.3 with SMTP id ee3mr3643322wjd.89.1434529463042; Wed, 17 Jun 2015 01:24:23 -0700 (PDT) Received: from xps13.localnet (136-92-190-109.dsl.ovh.fr. [109.190.92.136]) by mx.google.com with ESMTPSA id c2sm2545841wjf.18.2015.06.17.01.24.21 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 17 Jun 2015 01:24:22 -0700 (PDT) From: Thomas Monjalon To: Stephen Hemminger , Matthew Hall Date: Wed, 17 Jun 2015 10:23:23 +0200 Message-ID: <15605927.nQTld2nBbd@xps13> Organization: 6WIND User-Agent: KMail/4.14.8 (Linux/4.0.4-2-ARCH; KDE/4.14.8; x86_64; ; ) In-Reply-To: References: <9092314.MoyqUJ5VU2@xps13> <20150617043654.GA10337@mhcomputing.net> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" 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: Wed, 17 Jun 2015 08:24:23 -0000 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.