From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id ACB2658D8 for ; Fri, 27 Nov 2015 14:09:26 +0100 (CET) Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id DC2108F26C; Fri, 27 Nov 2015 13:09:25 +0000 (UTC) Received: from sopuli.koti.laiskiainen.org (vpn1-5-112.ams2.redhat.com [10.36.5.112]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id tARD9ONi028714; Fri, 27 Nov 2015 08:09:25 -0500 To: "Doherty, Declan" , Thomas Monjalon References: <1448473135-19604-1-git-send-email-thomas.monjalon@6wind.com> <5656B71D.7030704@redhat.com> <5656BC09.20307@redhat.com> <34498752.nGP1cUxCqE@xps13> <345C63BAECC1AD42A2EC8C63AFFC3ADC2809A787@irsmsx105.ger.corp.intel.com> From: Panu Matilainen Message-ID: <56585604.9030909@redhat.com> Date: Fri, 27 Nov 2015 15:09:24 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <345C63BAECC1AD42A2EC8C63AFFC3ADC2809A787@irsmsx105.ger.corp.intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH] cryptodev: mark experimental state 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, 27 Nov 2015 13:09:26 -0000 On 11/26/2015 03:51 PM, Doherty, Declan wrote: >> -----Original Message----- >> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] >> Sent: Thursday, November 26, 2015 10:09 AM >> To: Panu Matilainen; Doherty, Declan >> Cc: dev@dpdk.org >> Subject: Re: [dpdk-dev] [PATCH] cryptodev: mark experimental state >> >> 2015-11-26 10:00, Panu Matilainen: >>> On 11/26/2015 09:39 AM, Panu Matilainen wrote: >>>> On 11/25/2015 07:38 PM, Thomas Monjalon wrote: >>>>> --- a/config/common_linuxapp >>>>> +++ b/config/common_linuxapp >>>>> @@ -319,6 +319,7 @@ CONFIG_RTE_PMD_PACKET_PREFETCH=y >>>>> >>>>> # >>>>> # Compile generic crypto device library >>>>> +# EXPERIMENTAL: API may change without prior notice >>>>> # >>>>> CONFIG_RTE_LIBRTE_CRYPTODEV=y >>>>> CONFIG_RTE_LIBRTE_CRYPTODEV_DEBUG=n >>>> [...] >>>> >>>> I think an experimental library which declares itself exempt from the >>>> ABI policy should not be compiled by default. That way anybody wanting >>>> to try it out will be forced to notice the experimental status. >>>> >>>> More generally / longer term, perhaps there should be a >>>> CONFIG_RTE_EXPERIMENTAL which wraps all experimental features and >>>> defaults to off. >>> >>> On a related note, librte_mbuf_offload cannot be built if >>> CONFIG_RTE_LIBRTE_CRYPTODEV is disabled. Which seems to suggest its (at >>> least currently) so tightly couple to cryptodev that perhaps it too >>> should be marked experimental and default to off. >> >> I think you are right. >> Declan, what is your opinion? > > > Hey Thomas, yes librte_mbuf_offload should also be set as experimental, it's > probably one of the areas which will most likely change in the future. > > On the issue of turning off experimental libraries in the build by default, my > preference would be not to turn them off unless the library has external > dependencies, otherwise the possibility of patches being submitted which > could break an experimental library will be much higher. In my opinion the > fewer build configurations developers have to test against the better. What I'm more worried about is users and developers starting to rely on it while still in experimental state, a single comment in the header is really easy to miss. So I'd like to see *some* mechanism which forces users and developers to acknowledge the fact that they're dealing with experimental work. Defaulting to off is one possibility, another one would be wrapping experimental APIs behind a define which you have to set to be able to use the API, eg: #if defined(I_KNOW_THIS_IS_EXPERIMENTAL_AND_MAY_EAT_BABIES) [...] #endif - Panu -