From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by dpdk.org (Postfix) with ESMTP id B83F52B95; Fri, 10 May 2019 20:43:40 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 42BDA220AB; Fri, 10 May 2019 14:43:40 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Fri, 10 May 2019 14:43:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:content-type; s=mesmtp; bh=A4SpnkdSwJN7bBRkSnINVMzbtXHK+3/GiCwxRA8RY/4=; b=RpViTvhNXbyX A+3+YoBBQtsZtgB0eG7ddgTDFogB8EgsAnibyeBJfsAoJTqeQnTyHaD/R85OVuEL 9/7lmoT/scrPoyT1a/G3UH1CVcnb6JXKnw6VGl43jL9MZR5xqrNCtZiN1Eh8D/9R lXGBEu34npq4NiiFAo9MUcARK2/oC4o= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=A4SpnkdSwJN7bBRkSnINVMzbtXHK+3/GiCwxRA8RY /4=; b=pnLXBBoBp08k+2r1WV5ZhPvd4yPeJ1L1hwBGw3zBebAvKqxu1jUMyF4VZ 7OWCKPXalMGhw68CzGSVML7GKvQJ/V9ZWUQKG+4wDYL0fLEKuweM8spbtluoSA0R Wooz7UvQiWF5X8ewAm3OT2TvvAKLV2aErj/AglOKfdvZIU2W1Oz9ANoa6qv1zLi5 VTuZq4BQqo3DalnninCiYCDLo83TthRh/xVpdbkBGgpEvzGhXVaaza2j4/sVdN26 XrVz/azYgZbGOdqgT4jyAIZM3oI3epyDY8HmJMAtTfs/RvbInacpJgD7cg2VHe1f gmy/2Xcj6gccKWaLMU8+DLsg3k3WA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrkeekgddufeduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkfgjfhgggfgtsehtufertddttddvnecuhfhrohhmpefvhhhomhgr shcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqnecuff homhgrihhnpeguphgukhdrohhrghenucfkphepkedurddukeehrddujeefrddugeelnecu rfgrrhgrmhepmhgrihhlfhhrohhmpehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtne cuvehluhhsthgvrhfuihiivgeptd X-ME-Proxy: Received: from xps.localnet (149.173.185.81.rev.sfr.net [81.185.173.149]) by mail.messagingengine.com (Postfix) with ESMTPA id 4781810378; Fri, 10 May 2019 14:43:36 -0400 (EDT) From: Thomas Monjalon To: techboard@dpdk.org Cc: Bruce Richardson , Ray Kinsella , Billy McFall , Thomas F Herbert , dpdk-dev , Luca Boccassi , ndas@suse.de, Christian Ehrhardt , "Stokes, Ian" Date: Fri, 10 May 2019 20:43:33 +0200 Message-ID: <2098214.X7U14xP0QZ@xps> In-Reply-To: <20190510134333.GA87@bricha3-MOBL.ger.corp.intel.com> References: <80c4f1df-da68-520e-d47d-b4ccaeedb69f@ashroe.eu> <20190510134333.GA87@bricha3-MOBL.ger.corp.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [dpdk-techboard] Discussion on the OS Packaging of DPDK 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: Fri, 10 May 2019 18:43:41 -0000 10/05/2019 15:43, Bruce Richardson: > On Fri, May 10, 2019 at 02:01:54PM +0100, Ray Kinsella wrote: > > ( from the undersigned ) > > > > Hi folks, > > > > In light of the renewed community discussion on API Stability > > (https://mails.dpdk.org/archives/dev/2019-April/128969.html), now is > > right time to open a discussion on how DPDK is distributed and updated. > > > > To this point in time, DPDK's primary distribution method has been as > > source code distributed as a tarball from dpdk.org. This distribution > > method, in addition to abi instability and the dpdk's build system > > default behaviour of static linking have all encouraged the "tight > > coupling" or "vendorization" of DPDK. > > > > These behaviours makes it a challenge for end users, those deploying > > applications based on DPDK, to manage and update DPDK in a method > > consistent with other system libraries. For instance, an end user may > > not have any idea which version of DPDK a consuming application may be > > using and if this DPDK version is reasonably up to date with the latest > > upstream version. This would not be the case for other system libraries > > such as glibc. > > > > For these reasons, now is the right time for DPDK to embrace standard > > Operating System practices for distributing and updating system > > libraries. The current industry push towards cloud and > > cloud-friendliness make addressing this issue all the more timely. > > > > To this end, the following proposals are made for discussion at the next > > techboard meeting:- > > > > * The primary method of distributing DPDK should be as an operating > > system package, dpdk.org should be updated to reflect this reality and > > provide OS installation details in place of tarball downloads. > > I really like that idea. Since DPDK is available in distro packages that > should be the first port of call for users getting DPDK. Since it's just a > doc update - as I understand it anyway - it should be easy to implement if > agreed, which is a nice bonus. Yes. The real effort will be to stay up to date with changes in OS distributions. If distro maintainers are willing to maintain it, that's fine. Thank you :) > > * DPDK should build as a dynamic shared libraries by default, to > > encourage loose coupling with consuming applications. > > To a certain extent, this only applies with the "make" build system, which > is due to be deprecated in the next release and removed sometime next year. > With builds done with meson and ninja, both shared and static libraries are > always built. The default setting though remains as "static" which applies > only to the linking of applications as part of the DPDK build. This default > was set mainly for legacy purposes, but also has benefits for us developers > working on DPDK, since we don't need to worry about setting LD_LIBRARY_PATH > and EAL_PMD_PATH values for running applications we've built. Therefore, > I'm not sure of the value of changing the default here - it's certainly > less important than the default in the "make" build system where only one > library type at a time was built. Yes no need to change the default. If you build DPDK yourself, it is more convenient to use static libs. If you want something easier to update, you probably use the packages from distributions which are shared libraries. > > * Future guarantees around ABI/API stability should be provided, so that > > OS packagers can offer safe upgrade paths for consuming applications. DPDK is a set of libraries, some more stable than others. If we cannot guarantee a full stability for a long time, we may have some changes here and there sometimes. And it's even worst with experimental functions. I think it is more realistic to provide a level of stability per DPDK library. In order to leverage such fine grained stability, the libraries should be packaged separately in the OS. Then the applications relying only on stable libraries will be able to link with updated libraries without any change or re-compilation. 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 9F376A0096 for ; Fri, 10 May 2019 20:43:44 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BB63F2BF5; Fri, 10 May 2019 20:43:42 +0200 (CEST) Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by dpdk.org (Postfix) with ESMTP id B83F52B95; Fri, 10 May 2019 20:43:40 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 42BDA220AB; Fri, 10 May 2019 14:43:40 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Fri, 10 May 2019 14:43:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:content-type; s=mesmtp; bh=A4SpnkdSwJN7bBRkSnINVMzbtXHK+3/GiCwxRA8RY/4=; b=RpViTvhNXbyX A+3+YoBBQtsZtgB0eG7ddgTDFogB8EgsAnibyeBJfsAoJTqeQnTyHaD/R85OVuEL 9/7lmoT/scrPoyT1a/G3UH1CVcnb6JXKnw6VGl43jL9MZR5xqrNCtZiN1Eh8D/9R lXGBEu34npq4NiiFAo9MUcARK2/oC4o= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=A4SpnkdSwJN7bBRkSnINVMzbtXHK+3/GiCwxRA8RY /4=; b=pnLXBBoBp08k+2r1WV5ZhPvd4yPeJ1L1hwBGw3zBebAvKqxu1jUMyF4VZ 7OWCKPXalMGhw68CzGSVML7GKvQJ/V9ZWUQKG+4wDYL0fLEKuweM8spbtluoSA0R Wooz7UvQiWF5X8ewAm3OT2TvvAKLV2aErj/AglOKfdvZIU2W1Oz9ANoa6qv1zLi5 VTuZq4BQqo3DalnninCiYCDLo83TthRh/xVpdbkBGgpEvzGhXVaaza2j4/sVdN26 XrVz/azYgZbGOdqgT4jyAIZM3oI3epyDY8HmJMAtTfs/RvbInacpJgD7cg2VHe1f gmy/2Xcj6gccKWaLMU8+DLsg3k3WA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrkeekgddufeduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkfgjfhgggfgtsehtufertddttddvnecuhfhrohhmpefvhhhomhgr shcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqnecuff homhgrihhnpeguphgukhdrohhrghenucfkphepkedurddukeehrddujeefrddugeelnecu rfgrrhgrmhepmhgrihhlfhhrohhmpehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtne cuvehluhhsthgvrhfuihiivgeptd X-ME-Proxy: Received: from xps.localnet (149.173.185.81.rev.sfr.net [81.185.173.149]) by mail.messagingengine.com (Postfix) with ESMTPA id 4781810378; Fri, 10 May 2019 14:43:36 -0400 (EDT) From: Thomas Monjalon To: techboard@dpdk.org Cc: Bruce Richardson , Ray Kinsella , Billy McFall , Thomas F Herbert , dpdk-dev , Luca Boccassi , ndas@suse.de, Christian Ehrhardt , "Stokes, Ian" Date: Fri, 10 May 2019 20:43:33 +0200 Message-ID: <2098214.X7U14xP0QZ@xps> In-Reply-To: <20190510134333.GA87@bricha3-MOBL.ger.corp.intel.com> References: <80c4f1df-da68-520e-d47d-b4ccaeedb69f@ashroe.eu> <20190510134333.GA87@bricha3-MOBL.ger.corp.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [dpdk-techboard] Discussion on the OS Packaging of DPDK 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: <20190510184333.et2q_fqY0cFMS1x0Xi-BLnuus4OKlSD8cMOVH67FBTk@z> 10/05/2019 15:43, Bruce Richardson: > On Fri, May 10, 2019 at 02:01:54PM +0100, Ray Kinsella wrote: > > ( from the undersigned ) > > > > Hi folks, > > > > In light of the renewed community discussion on API Stability > > (https://mails.dpdk.org/archives/dev/2019-April/128969.html), now is > > right time to open a discussion on how DPDK is distributed and updated. > > > > To this point in time, DPDK's primary distribution method has been as > > source code distributed as a tarball from dpdk.org. This distribution > > method, in addition to abi instability and the dpdk's build system > > default behaviour of static linking have all encouraged the "tight > > coupling" or "vendorization" of DPDK. > > > > These behaviours makes it a challenge for end users, those deploying > > applications based on DPDK, to manage and update DPDK in a method > > consistent with other system libraries. For instance, an end user may > > not have any idea which version of DPDK a consuming application may be > > using and if this DPDK version is reasonably up to date with the latest > > upstream version. This would not be the case for other system libraries > > such as glibc. > > > > For these reasons, now is the right time for DPDK to embrace standard > > Operating System practices for distributing and updating system > > libraries. The current industry push towards cloud and > > cloud-friendliness make addressing this issue all the more timely. > > > > To this end, the following proposals are made for discussion at the next > > techboard meeting:- > > > > * The primary method of distributing DPDK should be as an operating > > system package, dpdk.org should be updated to reflect this reality and > > provide OS installation details in place of tarball downloads. > > I really like that idea. Since DPDK is available in distro packages that > should be the first port of call for users getting DPDK. Since it's just a > doc update - as I understand it anyway - it should be easy to implement if > agreed, which is a nice bonus. Yes. The real effort will be to stay up to date with changes in OS distributions. If distro maintainers are willing to maintain it, that's fine. Thank you :) > > * DPDK should build as a dynamic shared libraries by default, to > > encourage loose coupling with consuming applications. > > To a certain extent, this only applies with the "make" build system, which > is due to be deprecated in the next release and removed sometime next year. > With builds done with meson and ninja, both shared and static libraries are > always built. The default setting though remains as "static" which applies > only to the linking of applications as part of the DPDK build. This default > was set mainly for legacy purposes, but also has benefits for us developers > working on DPDK, since we don't need to worry about setting LD_LIBRARY_PATH > and EAL_PMD_PATH values for running applications we've built. Therefore, > I'm not sure of the value of changing the default here - it's certainly > less important than the default in the "make" build system where only one > library type at a time was built. Yes no need to change the default. If you build DPDK yourself, it is more convenient to use static libs. If you want something easier to update, you probably use the packages from distributions which are shared libraries. > > * Future guarantees around ABI/API stability should be provided, so that > > OS packagers can offer safe upgrade paths for consuming applications. DPDK is a set of libraries, some more stable than others. If we cannot guarantee a full stability for a long time, we may have some changes here and there sometimes. And it's even worst with experimental functions. I think it is more realistic to provide a level of stability per DPDK library. In order to leverage such fine grained stability, the libraries should be packaged separately in the OS. Then the applications relying only on stable libraries will be able to link with updated libraries without any change or re-compilation.