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 60A07A04A7; Tue, 5 May 2020 19:31:46 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 446601D694; Tue, 5 May 2020 19:31:45 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 951531D68E for ; Tue, 5 May 2020 19:31:43 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200505173143euoutp026aa59d4163eae6359ad26535152d5697~MMiT_O_0f2258822588euoutp02g for ; Tue, 5 May 2020 17:31:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200505173143euoutp026aa59d4163eae6359ad26535152d5697~MMiT_O_0f2258822588euoutp02g DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1588699903; bh=2bmmUQNGDBUljvsqpMYFuKm2INnLAvp+Z/j5YpIrYzQ=; h=Subject:To:From:Date:In-Reply-To:References:From; b=uTUx+YuOLkdOMo4z/bbBJEYB3cKJm/qMV3EaMycoApPx9245u4VrzbKtajDhA3v7c /Y6jqLQ9F2mNPjVLRERdQtJUV4FsKVAbB0TXzc34bO111y9k1dlLxVEBAelj5vMZN6 GSOuXj25ijh0rYuSxyNVdZugFykvG0mr+wsJnf5o= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200505173142eucas1p27247e72ecc4cd674a73e8584560079f9~MMiT2RQjR1302413024eucas1p2E; Tue, 5 May 2020 17:31:42 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 4D.0F.60698.EF2A1BE5; Tue, 5 May 2020 18:31:42 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200505173142eucas1p2353425e42438f8f9ab1cec644713572a~MMiTkpnp_0572205722eucas1p2N; Tue, 5 May 2020 17:31:42 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200505173142eusmtrp2e38328858289d139e665b83d584293e4~MMiTkHjP31017110171eusmtrp2R; Tue, 5 May 2020 17:31:42 +0000 (GMT) X-AuditID: cbfec7f5-a29ff7000001ed1a-8e-5eb1a2fe0391 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 42.2F.08375.EF2A1BE5; Tue, 5 May 2020 18:31:42 +0100 (BST) Received: from [106.210.88.70] (unknown [106.210.88.70]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200505173141eusmtip1e340604482eba4d7f8d194937e6d856e~MMiS9vSyJ2168421684eusmtip1E; Tue, 5 May 2020 17:31:41 +0000 (GMT) To: Renata Saiakhova , "Burakov, Anatoly" , "dev@dpdk.org" From: Lukasz Wojciechowski Message-ID: Date: Tue, 5 May 2020 19:31:41 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA22SfSyVcRTH93ue+zz3oa49LuZMrXSniRUalVKNJvnDH7Zaa5VbF88w7qV7 EWULSSLlXa4N8/5a3l/qjnUzQmmVt2SJqGF6UXdLjFy/q/mj/z7nnO8553t++zGk8DNlxgTI Qjm5TBIkovV5zV2L/ftWCuvEdi86HBwnPxSRjl8XWgjH8fJyypl0/1NQQrmnT2cj9yLVDOFJ ntc/6ssFBYRzctvjl/X9KxrH+CFFqUREzWoqHY1ezqJEpMcA6wC32mPoRKTPCNlyBAtVHwkc /EJwP2OKwsFPBN8Hvv1rGapqRLhQhkBZ36dTzSNQ/ZgltSoj1gsyK1p4WjZm4xDczpJrmWaP QWeOhtKygHWD6LTudeaxFpAQ17q2m2FM1nqzh85giSH05Eytj9FjL8Jk8iqtZZI9C52vc/iY TWF0Kp/A5tL5sJTHYHaF0okenWkjmO1u5GPeDqtt+etnAtuMYHBpEeGgA8FwcrlO5QTPVpZo zC7wvvQRrTUHrAGMzBvixQaQ1pxN4rQAEuKFWG0D03cz0cau5RrsH1h30CS+4+O3GiWgpPY5 lYLMlZvuVG66TbnpNswusPxJTWHeCTebcknMgdBbnaXL28Lw2Ph/NKbQMRCv412QkTShm28J vapisgBtqUSmXJhC6scp7GXcVRuFRKoIk/nZ+ARL69Ha7+tb6da0ovZlbzViGSTaKhhxrRML KUm4IlKqRsCQImNB6e9asVDgK4m8xsmDL8nDgjiFGm1jeCJTgX3hjJeQ9ZOEcoEcF8LJN6oE o2cWja4I7x3QiBaW6X4X5UFBlGWe2FOzuzbFIzctv8r6pOYwYeLZvyc+qTKqKaatgeh3GDw1 /tb5ocHTG+fc8j0M9z6gY32NDg2E8VRdXmbmTkfM7ap93tBWc1/u1FAnyh5HWpxGxU8iVOav 1N5mVnNN7W5zibE7pA2FqRcKDOsnrztbi3gKf8l+a1KukPwFPd71fXkDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRmVeSWpSXmKPExsVy+t/xu7r/Fm2MM7jSKGvx6N5iZot3n7Yz WdxfsYLVgdnj14KlrB6Tn05n9Fi85yVTAHOUnk1RfmlJqkJGfnGJrVK0oYWRnqGlhZ6RiaWe obF5rJWRqZK+nU1Kak5mWWqRvl2CXsbSrtXsBe11FS0vfjM3MO6M7mLk5JAQMJG4tnoLYxcj F4eQwFJGie1/DwE5HEAJGYkPlwQgaoQl/lzrYoOoec0oseL+K0aQhLBArMTUldtZQBIiAi2M Er8fHGWCqLrFJLFyxjUmkCo2AVuJIzO/soLYvAJuEg2TjoPZLAIqEh0tO5hAtokCTWq5qAlR IihxcuYTFhCbUyBG4lHvfzaQEmaBMIn5b8AOYhYQl7j1ZD7TBEaBWUg6ZiFUzUJSBWHbStyZ u5sZwpaXaN46G8rWlVi0bQU7svgCRvZVjCKppcW56bnFhnrFibnFpXnpesn5uZsYgfG07djP zTsYL20MPsQowMGoxMNr6L4xTog1say4MvcQowQHs5II77IfG+KEeFMSK6tSi/Lji0pzUosP MZoCfTyRWUo0OR8Y63kl8YamhuYWlobmxubGZhZK4rwdAgdjhATSE0tSs1NTC1KLYPqYODil GhirP2wR2Hr81JqPpXtNHury9Pu96V0sYHT8pI+XH9f81Ix7hoybs099+m3lE/W9L/r6pZ+v U4w3G+Ze3jCv5sTv75tWFqZaLDm3Jl5sz/E2y2nB8+1P7/tw1PiEftcznbNRUhVLQjff5eUL 3efP6LvUKnaab47k3lWvzxaG9kWrq2cUar27H7VLiaU4I9FQi7moOBEAkwHm8b0CAAA= X-CMS-MailID: 20200505173142eucas1p2353425e42438f8f9ab1cec644713572a X-Msg-Generator: CA X-RootMTR: 20200504172809eucas1p2468ead2ef6274f05234dbc8a3f6b091f X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200504172809eucas1p2468ead2ef6274f05234dbc8a3f6b091f References: <20200503162636.5233-1-Renata.Saiakhova@ekinops.com> <20200503162636.5233-2-Renata.Saiakhova@ekinops.com> Content-Type: text/plain; charset="windows-1252"; format="flowed" Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH 1/2] librte_ethdev: Introduce a function to release HW rings 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" W dniu 05.05.2020 o 19:25, Renata Saiakhova pisze: > Hi Lukasz, > > thanks for your comments! I understand Anatoly is going to to make a > fix rather in memzone API level, to introduce atomic "find and > allocate" and "find and free" operations, so this patch code won't > stay long and in this case maybe better not to disturb the original > code of rte_eth_dma_zone_reserve() ? Just a question. I don't know. It's up to Anatoly, I guess. But your patch probably will be required also. You will just need to use some atomic rte_memzone_... function to avoid race, the function that Anatoly will propose. > > Kind regards, > Renata > ------------------------------------------------------------------------ > *From:* Lukasz Wojciechowski > *Sent:* Tuesday, May 5, 2020 5:47 PM > *To:* Renata Saiakhova ; dev@dpdk.org > > *Subject:* Re: [dpdk-dev] [PATCH 1/2] librte_ethdev: Introduce a > function to release HW rings > Hi Renata, > > few minor hints inline > > W dniu 03.05.2020 o 18:26, Renata Saiakhova pisze: > > Free previously allocated memzone for HW rings > > > > Signed-off-by: Renata Saiakhova > > --- > >   lib/librte_ethdev/rte_ethdev.c           | 23 +++++++++++++++++++++++ > >   lib/librte_ethdev/rte_ethdev_driver.h    | 14 ++++++++++++++ > >   lib/librte_ethdev/rte_ethdev_version.map |  1 + > >   3 files changed, 38 insertions(+) > > > > diff --git a/lib/librte_ethdev/rte_ethdev.c > b/lib/librte_ethdev/rte_ethdev.c > > index 72aed59a5..c6d27e1aa 100644 > > --- a/lib/librte_ethdev/rte_ethdev.c > > +++ b/lib/librte_ethdev/rte_ethdev.c > > @@ -4206,6 +4206,29 @@ rte_eth_dma_zone_reserve(const struct > rte_eth_dev *dev, const char *ring_name, > >                        RTE_MEMZONE_IOVA_CONTIG, align); > >   } > > > > +int > > +rte_eth_dma_zone_free(const struct rte_eth_dev *dev, const char > *ring_name, > > +             uint16_t queue_id) > > +{ > > +     char z_name[RTE_MEMZONE_NAMESIZE]; > > +     const struct rte_memzone *mz; > > +     int rc = 0; > > + > > +     snprintf(z_name, sizeof(z_name), "eth_p%d_q%d_%s", > > +                     dev->data->port_id, queue_id, ring_name); > > probably rc=snprintf(...) > > but maybe create a macro for that fancy memzone name as the same code > appears already in rte_eth_dma_zone_reserve and keeping it in one place > seems to be better idea to me. > > > +     if (rc >= RTE_MEMZONE_NAMESIZE) { > > +             RTE_ETHDEV_LOG(ERR, "ring name too long\n"); > > +             rte_errno = ENAMETOOLONG; > > +             return NULL; > It's an int returning function so instead of setting rte_errno, just: >      return -ENAMETOOLONG; > > +     } > > + > > +     mz = rte_memzone_lookup(z_name); > > +     if (mz) > > +             rc = rte_memzone_free(mz); > > + > > +     return rc; > > +} > > + > >   int > >   rte_eth_dev_create(struct rte_device *device, const char *name, > >        size_t priv_data_size, > > diff --git a/lib/librte_ethdev/rte_ethdev_driver.h > b/lib/librte_ethdev/rte_ethdev_driver.h > > index 99d4cd6cd..2769a185b 100644 > > --- a/lib/librte_ethdev/rte_ethdev_driver.h > > +++ b/lib/librte_ethdev/rte_ethdev_driver.h > > @@ -180,6 +180,20 @@ rte_eth_dma_zone_reserve(const struct > rte_eth_dev *eth_dev, const char *name, > >                         uint16_t queue_id, size_t size, > >                         unsigned align, int socket_id); > > > > +/** > > + * Free previously allocated memzone for HW rings. > > + * > > + * @param eth_dev > > + *   The *eth_dev* pointer is the address of the *rte_eth_dev* > structure > param name is dev > > + * @param name > > + *   The name of the memory zone > param name is ring_name > > + * @param queue_id > > + *   The index of the queue to add to name > > + * @param size > There is no size param, but some info about return would be probably nice: >   * @return > *   Negative errno value on error, 0 on success. > > > And as it's a new API function maybe it should be experimental. Should it? > > > + */ > > +int rte_eth_dma_zone_free(const struct rte_eth_dev *dev, const char > *ring_name, > > +              uint16_t queue_id); > > + > >   /** > >    * @internal > >    * Atomically set the link status for the specific device. > > diff --git a/lib/librte_ethdev/rte_ethdev_version.map > b/lib/librte_ethdev/rte_ethdev_version.map > > index 715505604..5d3c209bc 100644 > > --- a/lib/librte_ethdev/rte_ethdev_version.map > > +++ b/lib/librte_ethdev/rte_ethdev_version.map > > @@ -82,6 +82,7 @@ DPDK_20.0 { > >        rte_eth_dev_vlan_filter; > >        rte_eth_devices; > >        rte_eth_dma_zone_reserve; > > +     rte_eth_dma_zone_free; > >        rte_eth_find_next; > >        rte_eth_find_next_owned_by; > >        rte_eth_iterator_cleanup; > > Best regards > > Lukasz > > -- > > Lukasz Wojciechowski > Principal Software Engineer > > Samsung R&D Institute Poland > Samsung Electronics > Office +48 22 377 88 25 > l.wojciechow@partner.samsung.com > -- Lukasz Wojciechowski Principal Software Engineer Samsung R&D Institute Poland Samsung Electronics Office +48 22 377 88 25 l.wojciechow@partner.samsung.com