From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8BB91A0353; Tue, 5 Nov 2019 14:27:57 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 091F71BDAC; Tue, 5 Nov 2019 14:27:57 +0100 (CET) Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by dpdk.org (Postfix) with ESMTP id 81FDA5B32 for ; Tue, 5 Nov 2019 14:27:55 +0100 (CET) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id AAA792202A; Tue, 5 Nov 2019 08:27:54 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Tue, 05 Nov 2019 08:27:54 -0500 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=JbukxtFVdT8CJ6MjIMESv+KJHeBr1NZVB4F/cfdBesU=; b=WiBC5CkGz3ag jd8ThOwtVP0ekmIi9u5OlTZFJhD4K3c963MVM4t/zRlyWoLPeqx8nhPEOlxepVGY htMjohyaE7rdBuidf9cVlAaG8hu6iMWtb59KAFWv/gvKS3Q7UsGzAo1cEaoO99DC sOLkhsKdhZt/UWw0AKvpljXsLB7PCbA= 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=fm1; bh=JbukxtFVdT8CJ6MjIMESv+KJHeBr1NZVB4F/cfdBe sU=; b=nzKxi/BlF5Z+LuEOSfnZuAPewGqh3COdl9SrmerMSgHJNanWS+/5+nVU4 ndxaKLI5eYJ4OEwineqL1pnBjw0JgmE5t4pqKThv/I/6Z8efzcE08guaj/FbPNPc RbzXkslXNjg4OVJAFpx0BHuk0YKBAHOzJj2Y0+r5+GCJfkvAr+0xg39R3vVFs9b3 A1/DjOv1tAskLOiKNjXvmWAzHnL+h6EBj/DFJMfN7d+BUe8+8HlnyS4yeoOUgtFq mBa6UmMofv3ozEHG9gFtHOF3frZOaxROHO8dvSHRUXayEaNlMP71dCVllgsX6HNW 1GKvvVVdto2LaB46xWuGkL6bE/gPQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedufedrudduhedgheefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkfgjfhgggfgtsehtufertddttddvnecuhfhrohhmpefvhhhomhgr shcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqnecuff homhgrihhnpeguphgukhdrohhrghenucfkphepleefrddvfedrvdehuddrvddttdenucfr rghrrghmpehmrghilhhfrhhomhepthhhohhmrghssehmohhnjhgrlhhonhdrnhgvthenuc evlhhushhtvghrufhiiigvpedt X-ME-Proxy: Received: from xps.localnet (200.251.23.93.rev.sfr.net [93.23.251.200]) by mail.messagingengine.com (Postfix) with ESMTPA id ECA8F8005B; Tue, 5 Nov 2019 08:27:48 -0500 (EST) From: Thomas Monjalon To: Ori Kam , Andrew Rybchenko , Ferruh Yigit Cc: John McNamara , Marko Kovacevic , "dev@dpdk.org" , "jingjing.wu@intel.com" , "stephen@networkplumber.org" , Jerin Jacob Date: Tue, 05 Nov 2019 14:27:46 +0100 Message-ID: <2162780.py8TNoPOkV@xps> In-Reply-To: References: <1569479349-36962-1-git-send-email-orika@mellanox.com> <3424559.MG90hyF9n4@xps> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH v7 02/14] ethdev: add support for hairpin queue 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" 05/11/2019 14:23, Ori Kam: > From: Thomas Monjalon > > 05/11/2019 13:53, Andrew Rybchenko: > > > On 11/5/19 3:51 PM, Thomas Monjalon wrote: > > > > 05/11/2019 13:27, Andrew Rybchenko: > > > >> On 11/5/19 3:23 PM, Ferruh Yigit wrote: > > > >>> On 11/5/2019 12:12 PM, Andrew Rybchenko wrote: > > > >>>> On 11/5/19 3:05 PM, Ferruh Yigit wrote: > > > >>>>> On 11/5/2019 11:49 AM, Andrew Rybchenko wrote: > > > >>>>>> On 11/5/19 2:36 PM, Ori Kam wrote: > > > > >>>>>> From: Ferruh Yigit > > > >>>>>>>>> /** > > > >>>>>>>>> + * @internal > > > >>>>>>>>> + * Check if the selected Rx queue is hairpin queue. > > > >>>>>>>>> + * > > > >>>>>>>>> + * @param dev > > > >>>>>>>>> + * Pointer to the selected device. > > > >>>>>>>>> + * @param queue_id > > > >>>>>>>>> + * The selected queue. > > > >>>>>>>>> + * > > > >>>>>>>>> + * @return > > > >>>>>>>>> + * - (1) if the queue is hairpin queue, 0 otherwise. > > > >>>>>>>>> + */ > > > >>>>>>>>> +int > > > >>>>>>>>> +rte_eth_dev_is_rx_hairpin_queue(struct rte_eth_dev *dev, > > uint16_t > > > >>>>>>>> queue_id); > > > >>>>>>>>> + > > > >>>>>>>>> +/** > > > >>>>>>>>> + * @internal > > > >>>>>>>>> + * Check if the selected Tx queue is hairpin queue. > > > >>>>>>>>> + * > > > >>>>>>>>> + * @param dev > > > >>>>>>>>> + * Pointer to the selected device. > > > >>>>>>>>> + * @param queue_id > > > >>>>>>>>> + * The selected queue. > > > >>>>>>>>> + * > > > >>>>>>>>> + * @return > > > >>>>>>>>> + * - (1) if the queue is hairpin queue, 0 otherwise. > > > >>>>>>>>> + */ > > > >>>>>>>>> +int > > > >>>>>>>>> +rte_eth_dev_is_tx_hairpin_queue(struct rte_eth_dev *dev, > > uint16_t > > > >>>>>>>> queue_id); > > > > [...] > > > >>>>>>>> These are causing build error, thanks Jerin for catching, because > > they are > > > >>>>>>>> internal and called by a public static inline API, so whoever calls > > > >>>>>>>> 'rte_eth_rx/tx_burst()' APIs in the shared build, can't find > > > >>>>>>>> 'rte_eth_dev_is_rx/tx_hairpin_queue()' functions [1], > > > >>>>>>>> > > > >>>>>>>> as far as I can see there are two options: > > > >>>>>>>> 1) Remove these checks > > > >>>>>>>> 2) Make 'rte_eth_dev_is_rx/tx_hairpin_queue()' public API instead > > of internal > > > >>>>>>>> > > > >>>>>>>> If there is a value to make 'rte_eth_dev_is_rx/tx_hairpin_queue()' > > public API > > > >>>>>>>> we > > > >>>>>>>> should go with (2) else (1). > > > >>>>>>>> > > > >>>>>>> I think we can skip the tests, > > > >>>>>>> But it was Andrew request so we must get is response. > > > >>>>>>> It was also his empathies that they should be internal. > > > >>>>>> It is important for me to keep rte_eth_dev_state internal and > > > >>>>>> few patches ago rte_eth_dev_is_rx_hairpin_queue() was inline. > > > >>>>> Are you saying you don't want to option to make > > > >>>>> 'rte_eth_dev_is_rx_hairpin_queue()' static inline because it will force > > the > > > >>>>> 'RTE_ETH_QUEUE_STATE_xxx' being public? > > > >>>> Yes. > > > >>> +1 > > > >>> > > > >>>>>> I'm OK to make the function experimental or keep it internal > > > >>>>>> (no API/ABI stability requirements) but externally visible (in .map). > > > >>>>> I think we can't do this, add a function deceleration to the public > > header file > > > >>>>> and add it to the .map file but keep it internal. Instead we can make it > > a > > > >>>>> proper API and it should be experimental at least first release. Using an experimental function in an inline API may propagate the experimental flag further. > Moving the API to experimental results in the following error: > error: 'rte_eth_dev_is_rx_hairpin_queue' is deprecated (declared at /.autodirect/mtrswgwork/orika/pegasus04_share/dpdk.org/x86_64-native-linuxapp-gcc/include/rte_ethdev.h:4276): Symbol is not yet part of stable ABI [-Werror=deprecated-declarations] > > I suggest that we remove the checks, in any case this checks are only on debug mode, and when using data path the user must be very careful and what he > is doing. I agree it seems better to remove these checks for now. We can decide to re-introduce them later as non-experimental.