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 BB8C9A04B1; Wed, 23 Sep 2020 18:45:13 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9B64A1DA3A; Wed, 23 Sep 2020 18:45:13 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 873FC1DA3A for ; Wed, 23 Sep 2020 18:45:11 +0200 (CEST) IronPort-SDR: Ugqk3ammtrmU81PrREQcmfhp4uXyW66Ns+2VXkfsK4xLwRrzwrgM7nHaD2BztW2MAhVbl4SqAA Z8zJi5VsoiQw== X-IronPort-AV: E=McAfee;i="6000,8403,9753"; a="222525486" X-IronPort-AV: E=Sophos;i="5.77,293,1596524400"; d="scan'208";a="222525486" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Sep 2020 09:45:10 -0700 IronPort-SDR: 1ACVbtdiLL0f+4t7TFFzQRBz8pMjq/3ztCb/qieDtCvuitiGI5F82z0kdVYA9vetZZKdEoBXCi voiJdJNMCPIw== X-IronPort-AV: E=Sophos;i="5.77,293,1596524400"; d="scan'208";a="305448146" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.213.218.147]) ([10.213.218.147]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Sep 2020 09:44:56 -0700 To: Thomas Monjalon , dev@dpdk.org Cc: arybchenko@solarflare.com, Rahul Lakkireddy , Rosen Xu , Shijith Thotton , Srisivasubramanian Srinivasan , Rasesh Mody , Shahed Shaikh , Heinrich Kuhn , Hemant Agrawal , Sachin Saxena , Gagandeep Singh , Akhil Goyal , Alfredo Cardigliano , Ray Kinsella , Neil Horman , John McNamara , Marko Kovacevic , "John W. Linville" , Ciara Loftus , Qi Zhang , Shepard Siegel , Ed Czeck , John Miller , Igor Russkikh , Pavel Belous , Steven Webster , Matt Peters , Somalapuram Amaranath , Ajit Khaparde , Somnath Kotur , Chas Williams , "Wei Hu (Xavier)" , Wei Zhao , Jeff Guo , Marcin Wojtas , Michal Krawczyk , Guy Tzalik , Evgeny Schemeilin , Igor Chauskin , John Daley , Hyong Youb Kim , Gaetan Rivet , Xiao Wang , Ziyang Xuan , Xiaoyun Wang , Guoyang Zhou , "Min Hu (Connor)" , Yisen Zhuang , Beilei Xing , Jingjing Wu , Qiming Yang , Jakub Grajciar , Matan Azrad , Shahaf Shuler , Viacheslav Ovsiienko , Zyta Szpak , Liron Himi , Stephen Hemminger , "K. Y. Srinivasan" , Haiyang Zhang , Long Li , Martin Spinler , Tetsuya Mukawa , Harman Kalra , Jerin Jacob , Nithin Dabilpuram , Kiran Kumar K , Bruce Richardson , Jasvinder Singh , Cristian Dumitrescu , Keith Wiles , Maxime Coquelin , Chenbo Xia , Zhihong Wang , Yong Wang References: <20200913220711.3768597-1-thomas@monjalon.net> <20200913220711.3768597-17-thomas@monjalon.net> From: Ferruh Yigit Message-ID: Date: Wed, 23 Sep 2020 17:44:55 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.2.2 MIME-Version: 1.0 In-Reply-To: <20200913220711.3768597-17-thomas@monjalon.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH 16/20] ethdev: remove old close behaviour 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" On 9/13/2020 11:07 PM, Thomas Monjalon wrote: > The temporary flag RTE_ETH_DEV_CLOSE_REMOVE is removed. > It was introduced in DPDK 18.11 in order to give time for PMDs to migrate. > > The old behaviour was to free only queues when closing a port. > The new behaviour is calling rte_eth_dev_release_port() which does > three more tasks: > - trigger event callback > - reset state and few pointers > - free all generic port resources > > The private port resources must be released in the .dev_close callback. > > The .remove callback should: > - call .dev_close callback > - call rte_eth_dev_release_port() > - free multi-port device shared resources > > Despite waiting two years, some drivers have not migrated, > so they may hit issues with the incompatible new behaviour. > After sending emails, adding logs, and announcing the deprecation, > the only last solution is to declare these drivers as unmaintained: > bnx2x, cxgbe, dpaa, dpaa2, enetc, ionic, > ipn3ke, liquidio, nfp, pfe, qede > Below is a summary of what to implement in those drivers. > > * The freeing of private port resources must be moved > from the ".remove(device)" function to the ".dev_close(port)" function. > > * If a generic resource (.mac_addrs or .hash_mac_addrs) cannot be freed, > it must be set to NULL in ".dev_close" function to protect from > subsequent rte_eth_dev_release_port() freeing. > > * Note 1: > The generic resources are freed in rte_eth_dev_release_port(), > after ".dev_close" is called in rte_eth_dev_close(), but not when > calling ".dev_close" directly from the ".remove" PMD function. > That's why rte_eth_dev_release_port() must still be called explicitly > from ".remove(device)" after calling the ".dev_close" PMD function. > > * Note 2: > If a device can have multiple ports, the common resources must be freed > only in the ".remove(device)" function. > > * Note 3: > The port is supposed to be in a stopped state when it is closed. > If it is not the case, it is free to the PMD implementation > how to react when trying to close a non-stopped port: > either try to stop it automatically or just return an error. For this note, 'rte_eth_dev_close()' assumes port stopped and sets "dev->data->dev_started = 0;" blindly. should we verify this, or perhaps should call 'rte_eth_dev_stop()' within the 'rte_eth_dev_close()' to be sure. Also many PMDs doesn't check primary process check in the close, which should be fixed too, I wonder if it can be fixed in this series? > -Cavium LiquidIO > +Cavium LiquidIO - UNMAINTAINED > M: Shijith Thotton > M: Srisivasubramanian Srinivasan > T: git://dpdk.org/next/dpdk-next-net-mrvl > @@ -622,7 +622,7 @@ F: drivers/net/octeontx/ > F: doc/guides/nics/octeontx.rst > F: doc/guides/nics/features/octeontx.ini > > -Chelsio cxgbe > +Chelsio cxgbe - UNMAINTAINED > M: Rahul Lakkireddy > F: drivers/net/cxgbe/ > F: doc/guides/nics/cxgbe.rst > @@ -711,7 +711,7 @@ F: drivers/net/igc/ > F: doc/guides/nics/igc.rst > F: doc/guides/nics/features/igc.ini > > -Intel ipn3ke > +Intel ipn3ke - UNMAINTAINED > M: Rosen Xu > T: git://dpdk.org/next/dpdk-next-net-intel > F: drivers/net/ipn3ke/ > @@ -794,13 +794,13 @@ F: drivers/net/nfb/ > F: doc/guides/nics/nfb.rst > F: doc/guides/nics/features/nfb.ini > > -Netronome nfp > +Netronome nfp - UNMAINTAINED > M: Heinrich Kuhn > F: drivers/net/nfp/ > F: doc/guides/nics/nfp.rst > F: doc/guides/nics/features/nfp*.ini > > -NXP dpaa > +NXP dpaa - UNMAINTAINED > M: Hemant Agrawal > M: Sachin Saxena > F: drivers/mempool/dpaa/ > @@ -808,7 +808,7 @@ F: drivers/net/dpaa/ > F: doc/guides/nics/dpaa.rst > F: doc/guides/nics/features/dpaa.ini > > -NXP dpaa2 > +NXP dpaa2 - UNMAINTAINED > M: Hemant Agrawal > M: Sachin Saxena > F: drivers/mempool/dpaa2/ > @@ -816,27 +816,27 @@ F: drivers/net/dpaa2/ > F: doc/guides/nics/dpaa2.rst > F: doc/guides/nics/features/dpaa2.ini > > -NXP enetc > +NXP enetc - UNMAINTAINED > M: Gagandeep Singh > M: Sachin Saxena > F: drivers/net/enetc/ > F: doc/guides/nics/enetc.rst > F: doc/guides/nics/features/enetc.ini > > -NXP pfe > +NXP pfe - UNMAINTAINED > M: Gagandeep Singh > M: Akhil Goyal > F: doc/guides/nics/pfe.rst > F: drivers/net/pfe/ > F: doc/guides/nics/features/pfe.ini > > -Pensando ionic > +Pensando ionic - UNMAINTAINED > M: Alfredo Cardigliano > F: drivers/net/ionic/ > F: doc/guides/nics/ionic.rst > F: doc/guides/nics/features/ionic.ini > > -QLogic bnx2x > +QLogic bnx2x - UNMAINTAINED > M: Rasesh Mody > M: Shahed Shaikh > T: git://dpdk.org/next/dpdk-next-net-mrvl > @@ -844,7 +844,7 @@ F: drivers/net/bnx2x/ > F: doc/guides/nics/bnx2x.rst > F: doc/guides/nics/features/bnx2x*.ini > > -QLogic qede PMD > +QLogic qede PMD - UNMAINTAINED I guess 'cxgbe' already send the patch, but for rest, is there a deadline for the patches, before mark them as "UNMAINTAINED"?