From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ig0-f172.google.com (mail-ig0-f172.google.com [209.85.213.172]) by dpdk.org (Postfix) with ESMTP id AABDE2C08 for ; Fri, 8 Apr 2016 10:47:52 +0200 (CEST) Received: by mail-ig0-f172.google.com with SMTP id f1so8568281igr.1 for ; Fri, 08 Apr 2016 01:47:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=CmRfJMMrtv8IrhK3OwCo7VKfgodTFh5wtvyKTPrV0S4=; b=zg0/ox+8x0T4vvaI49EybPwmfG0fyyYvVCaESzXDNEszKpjG5+vd85N6bYz1eF0fN+ vZJb8OxD+SFNFsdUHYYmW1q46tJnz/7sswRN73zDxjIlsytcuCS/Ctj/Tak7P6dUJctN p7Cf1MQze3izD8vZNrFjZknyuhMQWYzoaguk+/856GXxT24hfeLeNIh1/0WSXnftzDzV Q5sTWWLWIxaPKObf8F2kFigYNT5HP0iNPMTJKgJ+LApKjk/u78N3kTPS0RxwA0xS3UKu z4ChWNs5L6TrpZ6zqMRSSRXA52G8qxwczw7xQJIoXLNHo5WsdCS7kGD0Gc2gl6aO35u6 lbdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=CmRfJMMrtv8IrhK3OwCo7VKfgodTFh5wtvyKTPrV0S4=; b=hlrgHmK65slQ0nK8iI/7KQw66QlHR9jsclQqo9g8mGlhnO3uQbGI6KGI2DhG5lZZoF VLObwpltX9gexUhOl8ikQtYT2lUgwGNRPoTwpWY+575CYozzBdoY0Z4K5Biyn8hqifMa CKC5YBeVYzixPss0DAhiP0W8i9smKn+saYG+c7p+jPsnAY0xnXcxpS+PTn98UWfY3Wwo XRJFyHZDi/lJatwooPO/Giy1K7FxpKuZyAfFkiLMuolBvDoSghcMX3ey2h5T7GKnLHe9 4IPiZL+W1j3CySrwRbUVQYGxrg77fxxdrOnJ4wW/N4hiJI39nfNJ5otya6DCLqvlCdTM YRlQ== X-Gm-Message-State: AD7BkJK39ppeMNNhX68AYvgYSK7tyztgmXG+si6FPoQMEz8mh3qIx9kt4rRTYpWRkAKZRmSXY1bLi7OfPnY0Kg== MIME-Version: 1.0 X-Received: by 10.50.59.146 with SMTP id z18mr2271047igq.6.1460105272130; Fri, 08 Apr 2016 01:47:52 -0700 (PDT) Received: by 10.79.112.68 with HTTP; Fri, 8 Apr 2016 01:47:52 -0700 (PDT) In-Reply-To: <570649C7.2030709@redhat.com> References: <1610488.T03Kyi0Reo@xps13> <5911950.ZPQvAWoePl@xps13> <5706295A.3000406@redhat.com> <570649C7.2030709@redhat.com> Date: Fri, 8 Apr 2016 10:47:52 +0200 Message-ID: From: Marc Sune To: Panu Matilainen , Matthew Hall Cc: Thomas Monjalon , dev@dpdk.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] On DPDK ABI policy 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, 08 Apr 2016 08:47:53 -0000 2016-04-07 13:51 GMT+02:00 Panu Matilainen : > [ change of subject since this is about ABI policy, not namespacing ] > > On 04/07/2016 01:16 PM, Marc Sune wrote: > >> >> >> 2016-04-07 11:33 GMT+02:00 Panu Matilainen > >: >> >> On 04/07/2016 12:18 PM, Thomas Monjalon wrote: >> >> Thank you everyone for the feedbacks. >> >> 2016-04-05 15:56, Thomas Monjalon: >> >> The goal of this email is to get some feedback on how >> important it is >> to fix the DPDK namespace. >> >> >> Everybody agree every symbols must be prefixed. Checking and >> fixing the >> namespace consistency will be in the roadmap. >> >> It seems most of you agree renaming would be a nice improvement >> but not >> so important. >> The main drawback is the induced backporting pain, even if we have >> some scripts to convert the patches to the old namespace. >> Note: the backports can be in DPDK itself or in the applications. >> >> If there is enough agreement that we should do something, I >> suggest to >> introduce the "dpdk_" prefix slowly and live with both >> "rte_" and "dpdk_" >> during some time. >> We could start using the new prefix for the new APIs >> (example: crypto) >> or when there is a significant API break (example: mempool). >> >> >> The slow change has been clearly rejected in favor of a complete >> change >> in one patch. >> The timing was also discussed as it could impact the pending >> patches. >> So it would be done at the end or the beginning of a release. >> Marc suggests to do it for 16.04 as the numbering scheme has >> changed. >> >> >> Just noting that it cannot be done in 16.04 because the ABI policy >> requires a deprecation cycle of at least one major release for every >> breakage. And we're discussing a total 100% breakage of everything >> here, even if its just a simple rename. >> >> >> I keep not understanding the ABI policy, and particularly why ABI >> changes have to be announced once cycle before _if_ there is already at >> least one ABI change proposed. DPDK applications will have to recompile >> anyway. >> > > The point is to allow API/ABI consumers to assess in advance what sort of > pains can they expect when moving their applications from one version to > another. Otherwise all sorts of massive changes could ride the wave of > whatever "change 16bit struct member to 32bit" trivialities that are > nevertheless ABI breaks. > > There have already been quite a few exceptions to the rule when the ABI is > already being broken, so its not entirely rigid. Another point that migth > warrant some tweaking to the policy is the "core" libraries depending on > each other so an ABI break in any one of them forces recompile of > everything anyway. > In addition to what Matthew said: I don't understand which sort of pains an announcement saying "we are going to change this structure and this other, for those high level reasons, but we don't know exactly how yet, because it is not fully implemented" can be of any help to a DPDK user. At least it does not to me. This information has to be in the release notes and users can read that before deciding to upgrade to a new release. On the other side, bug fixes still go to NEXT_VERSION. So in 1 ouf ot 2 cases (so far), next release is breaking ABI, so you will have to anyway recompile your application. And about ABI breakages; DPDK is not a standard library/library set. For performance reasons it has a lot of inline code and other optimizations, so even for small bug fixings can brake ABI, or to be precise, some bug fixes in inline functions may be silently ignored. I don't know how many users really use dynamic libraries for DPDK and if there is some warning somewhere in the documentation for that. > This aspect of the policy only slows down DPDK development and it >> > > One could also think that slowing down development and forcing people to > think ahead are not entirely unintentional or unwanted side-effects :) > > Look at the latest librte_vhost initiative to remove unnecessarily exposed > structs to avoid having to deal with ABI breakages all the time: the policy > is effectively encouraging people into better library design. > > pollutes the repository with commits announcing ABI changes that are >> irrelevant after 2 cycles, as (code) diffs show that already (not >> mentioning NEXT_ABI complexity and extra LOCs). >> > > Fully agreed on NEXT_ABI, I never liked it at all. > > Maintaining LTS releases, and enforcing bug fixing in old LTS first, >> upstreaming bugfixes is to me a much better approach to solve backwards >> compatibility issues. >> > > LTS releases could help the situation somewhat, but then again people tend > to still want those new fancy things backported (you know, have the cake > and eat it too) but that can't be done because of ABI breakage, so they're > forced to run the latest version anyway. > But this is probably another discussion. >> > > Yup, changed subject to avoid mixing it up with the namespace discussion > too much. Yes, thanks for that Marc > > > - Panu - > >