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 54B9A2C52 for ; Mon, 5 Nov 2018 13:23:00 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A19DC37E80; Mon, 5 Nov 2018 12:22:59 +0000 (UTC) Received: from ktraynor.remote.csb (ovpn-116-251.ams2.redhat.com [10.36.116.251]) by smtp.corp.redhat.com (Postfix) with ESMTP id E95B25D763; Mon, 5 Nov 2018 12:22:57 +0000 (UTC) To: Thomas Monjalon , dev@dpdk.org Cc: ophirmu@mellanox.com, ferruh.yigit@intel.com, arybchenko@solarflare.com, ian.stokes@intel.com References: <20181101144633.13429-1-thomas@monjalon.net> <20181101144633.13429-3-thomas@monjalon.net> From: Kevin Traynor Organization: Red Hat Message-ID: <1ae2efcc-0443-1e29-b905-1854959b71fb@redhat.com> Date: Mon, 5 Nov 2018 12:22:56 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 In-Reply-To: <20181101144633.13429-3-thomas@monjalon.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Mon, 05 Nov 2018 12:22:59 +0000 (UTC) Subject: Re: [dpdk-dev] [PATCH 2/2] ethdev: remove experimental tag for iterator API 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: Mon, 05 Nov 2018 12:23:00 -0000 On 11/01/2018 02:46 PM, Thomas Monjalon wrote: > After removing the function rte_eth_dev_attach(), > there are two replacement solutions possible: > one using probe event notification, and one using a new iterator. > So the application can get the new probed ports either asynchronously > or synchronously. > > The iterator API is new in DPDK 18.11 so they got the experimental > tag by policy. It causes an issue for strict applications which do > not use experimental functions, and want to use the synchronous method. > > The replacement for removed API should not be experimental. > That's why the experimental status of the ethdev iterator is removed. > > Signed-off-by: Thomas Monjalon Acked-by: Kevin Traynor Tested-by: Kevin Traynor > --- > lib/librte_ethdev/rte_ethdev.c | 6 +++--- > lib/librte_ethdev/rte_ethdev.h | 12 ------------ > lib/librte_ethdev/rte_ethdev_version.map | 6 +++--- > 3 files changed, 6 insertions(+), 18 deletions(-) > > diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c > index 9d3481389..d59154c69 100644 > --- a/lib/librte_ethdev/rte_ethdev.c > +++ b/lib/librte_ethdev/rte_ethdev.c > @@ -187,7 +187,7 @@ enum { > STAT_QMAP_RX > }; > > -int __rte_experimental > +int > rte_eth_iterator_init(struct rte_dev_iterator *iter, const char *devargs_str) > { > int ret; > @@ -288,7 +288,7 @@ rte_eth_iterator_init(struct rte_dev_iterator *iter, const char *devargs_str) > return ret; > } > > -uint16_t __rte_experimental > +uint16_t > rte_eth_iterator_next(struct rte_dev_iterator *iter) > { > if (iter->cls == NULL) /* invalid ethdev iterator */ > @@ -317,7 +317,7 @@ rte_eth_iterator_next(struct rte_dev_iterator *iter) > return RTE_MAX_ETHPORTS; > } > > -void __rte_experimental > +void > rte_eth_iterator_cleanup(struct rte_dev_iterator *iter) > { > if (iter->bus_str == NULL) > diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h > index 769a69430..8a92d91e3 100644 > --- a/lib/librte_ethdev/rte_ethdev.h > +++ b/lib/librte_ethdev/rte_ethdev.h > @@ -167,9 +167,6 @@ extern int rte_eth_dev_logtype; > struct rte_mbuf; > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice. > - * > * Initializes a device iterator. > * > * This iterator allows accessing a list of devices matching some devargs. > @@ -185,13 +182,9 @@ struct rte_mbuf; > * @return > * 0 on successful initialization, negative otherwise. > */ > -__rte_experimental > int rte_eth_iterator_init(struct rte_dev_iterator *iter, const char *devargs); > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice. > - * > * Iterates on devices with devargs filter. > * The ownership is not checked. > * > @@ -205,13 +198,9 @@ int rte_eth_iterator_init(struct rte_dev_iterator *iter, const char *devargs); > * @return > * A port id if found, RTE_MAX_ETHPORTS otherwise. > */ > -__rte_experimental > uint16_t rte_eth_iterator_next(struct rte_dev_iterator *iter); > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice. > - * > * Free some allocated fields of the iterator. > * > * This function is automatically called by rte_eth_iterator_next() > @@ -223,7 +212,6 @@ uint16_t rte_eth_iterator_next(struct rte_dev_iterator *iter); > * Device iterator handle initialized by rte_eth_iterator_init(). > * The fields bus_str and cls_str are freed if needed. > */ > -__rte_experimental > void rte_eth_iterator_cleanup(struct rte_dev_iterator *iter); > > /** > diff --git a/lib/librte_ethdev/rte_ethdev_version.map b/lib/librte_ethdev/rte_ethdev_version.map > index 3560c288b..92ac3de25 100644 > --- a/lib/librte_ethdev/rte_ethdev_version.map > +++ b/lib/librte_ethdev/rte_ethdev_version.map > @@ -223,6 +223,9 @@ DPDK_18.11 { > > rte_eth_dev_rx_offload_name; > rte_eth_dev_tx_offload_name; > + rte_eth_iterator_cleanup; > + rte_eth_iterator_init; > + rte_eth_iterator_next; > > } DPDK_18.08; > > @@ -242,9 +245,6 @@ EXPERIMENTAL { > rte_eth_dev_owner_set; > rte_eth_dev_owner_unset; > rte_eth_dev_rx_intr_ctl_q_get_fd; > - rte_eth_iterator_cleanup; > - rte_eth_iterator_init; > - rte_eth_iterator_next; > rte_eth_switch_domain_alloc; > rte_eth_switch_domain_free; > rte_flow_conv; >