From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <thomas@monjalon.net>
Received: from new1-smtp.messagingengine.com (new1-smtp.messagingengine.com
 [66.111.4.221]) by dpdk.org (Postfix) with ESMTP id 42A651B905
 for <dev@dpdk.org>; Thu, 18 Apr 2019 02:31:54 +0200 (CEST)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
 by mailnew.nyi.internal (Postfix) with ESMTP id B58A46000;
 Wed, 17 Apr 2019 20:31:53 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute1.internal (MEProxy); Wed, 17 Apr 2019 20:31:53 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=
 from:to:cc:subject:date:message-id:mime-version
 :content-transfer-encoding; s=mesmtp; bh=+3t+0HeHIH2J//fcKpiOi8g
 hr8Qypf7a/fPiJGNvU6s=; b=lbCSj1ej3Mv0QxH+PuVUh1NeGAawstcL1HO+Uw3
 fxuMKiu6U87tRo8gFBNJ5m/tRxqW97TRbcGhs5F1jVB1Aat+KIAJMOvd8kD5t/+o
 AbIYC/09klRuGNSD4De+pitwlPzoghslUoM4MYHCnMXMz/3xGUmxHRemdwvfy3Kw
 fH8Y=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-transfer-encoding:date:from
 :message-id:mime-version:subject:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=+3t+0HeHIH2J//fcK
 piOi8ghr8Qypf7a/fPiJGNvU6s=; b=SerSmza8cFp+oSseUEuqur1pwrhuSCpQs
 2OQMS7YDjpQIkRW0ygGBQFWkM0+NuzRKmeR6tgDnMyUoaOR9mKdbKKY4HrysxFs9
 7ixqdycTnisq62wJgbxqA0iqHIBe7xLzEKq9d6Jtlo9t5NdFZJpbAI1GVznMhNI+
 A0iNrQUnva+DJQJyFZwwbOBbCTMrgPS1ogyfiz1WX9kQRBm4d9B3VRzjbl6zT4PE
 RHCyIp5+4tjVVp4aH95c98XtwK++Bw2268H9VWFqOe93Zj+gn0Eyvjmh2nnCOnni
 Vf/eKbzdvrZV54BtfySmGTnlzCeuBsDZ32NHTFaxL7JtvMARuwhJg==
X-ME-Sender: <xms:eMW3XFmzbxqXTMQ_ksTzVSWg5aEDMCozXuTOcAzAYsRhVL2EEsfecA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrfeeggdefvdcutefuodetggdotefrodftvf
 curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
 uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
 fjughrpefhvffufffkofgggfestdekredtredttdenucfhrhhomhepvfhhohhmrghsucfo
 ohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenucffohhmrg
 hinhepvhgrrhhsrdhmkhdpvgigthgrphhprdhmkhenucfkphepjeejrddufeegrddvtdef
 rddukeegnecurfgrrhgrmhepmhgrihhlfhhrohhmpehthhhomhgrshesmhhonhhjrghloh
 hnrdhnvghtnecuvehluhhsthgvrhfuihiivgeptd
X-ME-Proxy: <xmx:eMW3XPlUY_ftO5a6HPqfQbrxmwnSqm-nfzWLkLiFhHuHSCyBODZXRg>
 <xmx:eMW3XN2cgUfjAYDpM88PfWcW08zLzHqd45YC9XahAMqsZvLNoxBE_A>
 <xmx:eMW3XKHtnSixq9sV5eL-uBLajT9pNH2ekzs3HCxutjfc3hps0Vt0NQ>
 <xmx:ecW3XAkIe7s5cDZph9FWmNne0Wqq9kPc2o9qEj-sWQg3IJ1aBNYyLQ>
Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])
 by mail.messagingengine.com (Postfix) with ESMTPA id 57CA3E4067;
 Wed, 17 Apr 2019 20:31:51 -0400 (EDT)
From: Thomas Monjalon <thomas@monjalon.net>
To: Reshma Pattan <reshma.pattan@intel.com>,
 Maryam Tahhan <maryam.tahhan@intel.com>,
 Ferruh Yigit <ferruh.yigit@intel.com>,
 Anatoly Burakov <anatoly.burakov@intel.com>,
 John McNamara <john.mcnamara@intel.com>,
 Pablo de Lara <pablo.de.lara.guarch@intel.com>,
 Bruce Richardson <bruce.richardson@intel.com>,
 Harry van Haaren <harry.van.haaren@intel.com>,
 Xiaoyun Li <xiaoyun.li@intel.com>
Cc: david.marchand@redhat.com,
	dev@dpdk.org
Date: Thu, 18 Apr 2019 02:30:58 +0200
Message-Id: <20190418003059.18170-1-thomas@monjalon.net>
X-Mailer: git-send-email 2.21.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: [dpdk-dev] [PATCH] eal: promote some experimental functions as
	stable
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Apr 2019 00:31:54 -0000

The function rte_eal_cleanup() was introduced more than one year ago,
in DPDK 18.02. It is no longer experimental, allowing
pdump, proc-info and hotplug_mp apps to not need any experimental API.

The function rte_ctrl_thread_create() was introduced one year ago
in DPDK 18.05. It is no longer experimental, allowing
KNI PMD and TEP example to not need any experimental API.

The functions rte_socket_count() and rte_socket_id_by_idx() were
introduced one year ago in DPDK 18.05. They are no longer experimental.

The function rte_dev_is_probed() was introduced half a year ago
in DPDK 18.11. It is no longer experimental.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 app/pdump/Makefile                         |  1 -
 app/pdump/meson.build                      |  1 -
 app/proc-info/Makefile                     |  1 -
 app/proc-info/meson.build                  |  1 -
 drivers/net/kni/Makefile                   |  1 -
 drivers/net/kni/meson.build                |  1 -
 examples/multi_process/hotplug_mp/Makefile |  1 -
 examples/tep_termination/Makefile          |  3 ---
 examples/tep_termination/meson.build       |  1 -
 lib/librte_eal/common/eal_common_dev.c     |  2 +-
 lib/librte_eal/common/eal_common_lcore.c   |  4 ++--
 lib/librte_eal/common/eal_common_thread.c  |  2 +-
 lib/librte_eal/common/include/rte_dev.h    |  4 ----
 lib/librte_eal/common/include/rte_eal.h    |  5 +----
 lib/librte_eal/common/include/rte_lcore.h  |  6 +++---
 lib/librte_eal/linux/eal/eal.c             |  2 +-
 lib/librte_eal/rte_eal_version.map         | 10 +++++-----
 17 files changed, 14 insertions(+), 32 deletions(-)

diff --git a/app/pdump/Makefile b/app/pdump/Makefile
index bd3c20819..e6b9eea91 100644
--- a/app/pdump/Makefile
+++ b/app/pdump/Makefile
@@ -7,7 +7,6 @@ ifeq ($(CONFIG_RTE_LIBRTE_PDUMP),y)
 
 APP = dpdk-pdump
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS)
 
 # all source are stored in SRCS-y
diff --git a/app/pdump/meson.build b/app/pdump/meson.build
index 116c27f02..7bb908e04 100644
--- a/app/pdump/meson.build
+++ b/app/pdump/meson.build
@@ -2,5 +2,4 @@
 # Copyright(c) 2018 Intel Corporation
 
 sources = files('main.c')
-allow_experimental_apis = true
 deps += ['ethdev', 'kvargs', 'pdump']
diff --git a/app/proc-info/Makefile b/app/proc-info/Makefile
index 9e87f524d..214f3f54a 100644
--- a/app/proc-info/Makefile
+++ b/app/proc-info/Makefile
@@ -5,7 +5,6 @@ include $(RTE_SDK)/mk/rte.vars.mk
 
 APP = dpdk-procinfo
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS)
 
 # all source are stored in SRCS-y
diff --git a/app/proc-info/meson.build b/app/proc-info/meson.build
index 866b390d6..f050c4a9b 100644
--- a/app/proc-info/meson.build
+++ b/app/proc-info/meson.build
@@ -2,5 +2,4 @@
 # Copyright(c) 2018 Intel Corporation
 
 sources = files('main.c')
-allow_experimental_apis = true
 deps += ['ethdev', 'metrics', 'security']
diff --git a/drivers/net/kni/Makefile b/drivers/net/kni/Makefile
index 562e8d2da..01eaef056 100644
--- a/drivers/net/kni/Makefile
+++ b/drivers/net/kni/Makefile
@@ -10,7 +10,6 @@ LIB = librte_pmd_kni.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lpthread
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_kni
diff --git a/drivers/net/kni/meson.build b/drivers/net/kni/meson.build
index 0f784c6d5..e3b2d83b5 100644
--- a/drivers/net/kni/meson.build
+++ b/drivers/net/kni/meson.build
@@ -3,6 +3,5 @@
 
 # this driver can be built if-and-only-if KNI library is buildable
 build = dpdk_conf.has('RTE_LIBRTE_KNI')
-allow_experimental_apis = true
 sources = files('rte_eth_kni.c')
 deps += 'kni'
diff --git a/examples/multi_process/hotplug_mp/Makefile b/examples/multi_process/hotplug_mp/Makefile
index 1fd7aa085..3ff74d52a 100644
--- a/examples/multi_process/hotplug_mp/Makefile
+++ b/examples/multi_process/hotplug_mp/Makefile
@@ -18,6 +18,5 @@ SRCS-y := main.c commands.c
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/tep_termination/Makefile b/examples/tep_termination/Makefile
index 2da41922f..deaf61fb5 100644
--- a/examples/tep_termination/Makefile
+++ b/examples/tep_termination/Makefile
@@ -25,8 +25,6 @@ CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
 LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
 LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
 	$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)
 
@@ -57,7 +55,6 @@ $(error This application can only operate in a linux environment, \
 please change the definition of the RTE_TARGET environment variable)
 endif
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/examples/tep_termination/meson.build b/examples/tep_termination/meson.build
index a75cc7100..e6e5073fb 100644
--- a/examples/tep_termination/meson.build
+++ b/examples/tep_termination/meson.build
@@ -10,7 +10,6 @@ if not is_linux
 	build = false
 endif
 deps += ['hash', 'vhost']
-allow_experimental_apis = true
 sources = files(
 	'main.c', 'vxlan.c', 'vxlan_setup.c'
 )
diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
index 0ec42d828..824b8f926 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -76,7 +76,7 @@ static int cmp_dev_name(const struct rte_device *dev, const void *_name)
 	return strcmp(dev->name, name);
 }
 
-int __rte_experimental
+int
 rte_dev_is_probed(const struct rte_device *dev)
 {
 	/* The field driver should be set only when the probe is successful. */
diff --git a/lib/librte_eal/common/eal_common_lcore.c b/lib/librte_eal/common/eal_common_lcore.c
index 1cbac4228..8c2744fab 100644
--- a/lib/librte_eal/common/eal_common_lcore.c
+++ b/lib/librte_eal/common/eal_common_lcore.c
@@ -114,14 +114,14 @@ rte_eal_cpu_init(void)
 	return 0;
 }
 
-unsigned int __rte_experimental
+unsigned int
 rte_socket_count(void)
 {
 	const struct rte_config *config = rte_eal_get_configuration();
 	return config->numa_node_count;
 }
 
-int __rte_experimental
+int
 rte_socket_id_by_idx(unsigned int idx)
 {
 	const struct rte_config *config = rte_eal_get_configuration();
diff --git a/lib/librte_eal/common/eal_common_thread.c b/lib/librte_eal/common/eal_common_thread.c
index 14f206c04..c91aba8f9 100644
--- a/lib/librte_eal/common/eal_common_thread.c
+++ b/lib/librte_eal/common/eal_common_thread.c
@@ -164,7 +164,7 @@ static void *rte_thread_init(void *arg)
 	return start_routine(routine_arg);
 }
 
-__rte_experimental int
+int
 rte_ctrl_thread_create(pthread_t *thread, const char *name,
 		const pthread_attr_t *attr,
 		void *(*start_routine)(void *), void *arg)
diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h
index 0d5e25b50..56dd52ad9 100644
--- a/lib/librte_eal/common/include/rte_dev.h
+++ b/lib/librte_eal/common/include/rte_dev.h
@@ -111,9 +111,6 @@ struct rte_device {
 };
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Query status of a device.
  *
  * @param dev
@@ -121,7 +118,6 @@ struct rte_device {
  * @return
  *   (int)true if already probed successfully, 0 otherwise.
  */
-__rte_experimental
 int rte_dev_is_probed(const struct rte_device *dev);
 
 /**
diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h
index 833433229..f9288666e 100644
--- a/lib/librte_eal/common/include/rte_eal.h
+++ b/lib/librte_eal/common/include/rte_eal.h
@@ -174,9 +174,6 @@ int rte_eal_iopl_init(void);
 int rte_eal_init(int argc, char **argv);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Clean up the Environment Abstraction Layer (EAL)
  *
  * This function must be called to release any internal resources that EAL has
@@ -187,7 +184,7 @@ int rte_eal_init(int argc, char **argv);
  * @return 0 Successfully released all internal EAL resources
  * @return -EFAULT There was an error in releasing all resources.
  */
-int __rte_experimental rte_eal_cleanup(void);
+int rte_eal_cleanup(void);
 
 /**
  * Check if a primary process is currently alive
diff --git a/lib/librte_eal/common/include/rte_lcore.h b/lib/librte_eal/common/include/rte_lcore.h
index dea17f500..be757a32e 100644
--- a/lib/librte_eal/common/include/rte_lcore.h
+++ b/lib/librte_eal/common/include/rte_lcore.h
@@ -149,7 +149,7 @@ unsigned rte_socket_id(void);
  * @return
  *   the number of physical sockets as recognized by EAL
  */
-unsigned int __rte_experimental
+unsigned int
 rte_socket_count(void);
 
 /**
@@ -166,7 +166,7 @@ rte_socket_count(void);
  *   - physical socket id as recognized by EAL
  *   - -1 on error, with errno set to EINVAL
  */
-int __rte_experimental
+int
 rte_socket_id_by_idx(unsigned int idx);
 
 /**
@@ -306,7 +306,7 @@ int rte_thread_setname(pthread_t id, const char *name);
  *   On success, returns 0; on error, it returns a negative value
  *   corresponding to the error number.
  */
-__rte_experimental int
+int
 rte_ctrl_thread_create(pthread_t *thread, const char *name,
 		const pthread_attr_t *attr,
 		void *(*start_routine)(void *), void *arg);
diff --git a/lib/librte_eal/linux/eal/eal.c b/lib/librte_eal/linux/eal/eal.c
index f7ae62d7b..161399619 100644
--- a/lib/librte_eal/linux/eal/eal.c
+++ b/lib/librte_eal/linux/eal/eal.c
@@ -1253,7 +1253,7 @@ mark_freeable(const struct rte_memseg_list *msl, const struct rte_memseg *ms,
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_eal_cleanup(void)
 {
 	/* if we're in a primary process, we need to mark hugepages as freeable
diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
index 18d02017c..245493461 100644
--- a/lib/librte_eal/rte_eal_version.map
+++ b/lib/librte_eal/rte_eal_version.map
@@ -271,6 +271,8 @@ DPDK_18.11 {
 DPDK_19.05 {
 	global:
 
+	rte_ctrl_thread_create;
+	rte_dev_is_probed;
 	rte_devargs_add;
 	rte_devargs_dump;
 	rte_devargs_insert;
@@ -279,6 +281,9 @@ DPDK_19.05 {
 	rte_devargs_parsef;
 	rte_devargs_remove;
 	rte_devargs_type_count;
+	rte_eal_cleanup;
+	rte_socket_count;
+	rte_socket_id_by_idx;
 
 } DPDK_18.11;
 
@@ -289,7 +294,6 @@ EXPERIMENTAL {
 	rte_class_find_by_name;
 	rte_class_register;
 	rte_class_unregister;
-	rte_ctrl_thread_create;
 	rte_delay_us_sleep;
 	rte_dev_dma_map;
 	rte_dev_dma_unmap;
@@ -300,10 +304,8 @@ EXPERIMENTAL {
 	rte_dev_event_monitor_stop;
 	rte_dev_hotplug_handle_disable;
 	rte_dev_hotplug_handle_enable;
-	rte_dev_is_probed;
 	rte_dev_iterator_init;
 	rte_dev_iterator_next;
-	rte_eal_cleanup;
 	rte_extmem_attach;
 	rte_extmem_detach;
 	rte_extmem_register;
@@ -376,6 +378,4 @@ EXPERIMENTAL {
 	rte_service_lcore_attr_get;
 	rte_service_lcore_attr_reset_all;
 	rte_service_may_be_active;
-	rte_socket_count;
-	rte_socket_id_by_idx;
 };
-- 
2.21.0

From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id 2FA42A00E6
	for <public@inbox.dpdk.org>; Thu, 18 Apr 2019 02:31:57 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id EDF261B906;
	Thu, 18 Apr 2019 02:31:55 +0200 (CEST)
Received: from new1-smtp.messagingengine.com (new1-smtp.messagingengine.com
 [66.111.4.221]) by dpdk.org (Postfix) with ESMTP id 42A651B905
 for <dev@dpdk.org>; Thu, 18 Apr 2019 02:31:54 +0200 (CEST)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
 by mailnew.nyi.internal (Postfix) with ESMTP id B58A46000;
 Wed, 17 Apr 2019 20:31:53 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
 by compute1.internal (MEProxy); Wed, 17 Apr 2019 20:31:53 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=
 from:to:cc:subject:date:message-id:mime-version
 :content-transfer-encoding; s=mesmtp; bh=+3t+0HeHIH2J//fcKpiOi8g
 hr8Qypf7a/fPiJGNvU6s=; b=lbCSj1ej3Mv0QxH+PuVUh1NeGAawstcL1HO+Uw3
 fxuMKiu6U87tRo8gFBNJ5m/tRxqW97TRbcGhs5F1jVB1Aat+KIAJMOvd8kD5t/+o
 AbIYC/09klRuGNSD4De+pitwlPzoghslUoM4MYHCnMXMz/3xGUmxHRemdwvfy3Kw
 fH8Y=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-transfer-encoding:date:from
 :message-id:mime-version:subject:to:x-me-proxy:x-me-proxy
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=+3t+0HeHIH2J//fcK
 piOi8ghr8Qypf7a/fPiJGNvU6s=; b=SerSmza8cFp+oSseUEuqur1pwrhuSCpQs
 2OQMS7YDjpQIkRW0ygGBQFWkM0+NuzRKmeR6tgDnMyUoaOR9mKdbKKY4HrysxFs9
 7ixqdycTnisq62wJgbxqA0iqHIBe7xLzEKq9d6Jtlo9t5NdFZJpbAI1GVznMhNI+
 A0iNrQUnva+DJQJyFZwwbOBbCTMrgPS1ogyfiz1WX9kQRBm4d9B3VRzjbl6zT4PE
 RHCyIp5+4tjVVp4aH95c98XtwK++Bw2268H9VWFqOe93Zj+gn0Eyvjmh2nnCOnni
 Vf/eKbzdvrZV54BtfySmGTnlzCeuBsDZ32NHTFaxL7JtvMARuwhJg==
X-ME-Sender: <xms:eMW3XFmzbxqXTMQ_ksTzVSWg5aEDMCozXuTOcAzAYsRhVL2EEsfecA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrfeeggdefvdcutefuodetggdotefrodftvf
 curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
 uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc
 fjughrpefhvffufffkofgggfestdekredtredttdenucfhrhhomhepvfhhohhmrghsucfo
 ohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenucffohhmrg
 hinhepvhgrrhhsrdhmkhdpvgigthgrphhprdhmkhenucfkphepjeejrddufeegrddvtdef
 rddukeegnecurfgrrhgrmhepmhgrihhlfhhrohhmpehthhhomhgrshesmhhonhhjrghloh
 hnrdhnvghtnecuvehluhhsthgvrhfuihiivgeptd
X-ME-Proxy: <xmx:eMW3XPlUY_ftO5a6HPqfQbrxmwnSqm-nfzWLkLiFhHuHSCyBODZXRg>
 <xmx:eMW3XN2cgUfjAYDpM88PfWcW08zLzHqd45YC9XahAMqsZvLNoxBE_A>
 <xmx:eMW3XKHtnSixq9sV5eL-uBLajT9pNH2ekzs3HCxutjfc3hps0Vt0NQ>
 <xmx:ecW3XAkIe7s5cDZph9FWmNne0Wqq9kPc2o9qEj-sWQg3IJ1aBNYyLQ>
Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])
 by mail.messagingengine.com (Postfix) with ESMTPA id 57CA3E4067;
 Wed, 17 Apr 2019 20:31:51 -0400 (EDT)
From: Thomas Monjalon <thomas@monjalon.net>
To: Reshma Pattan <reshma.pattan@intel.com>,
 Maryam Tahhan <maryam.tahhan@intel.com>,
 Ferruh Yigit <ferruh.yigit@intel.com>,
 Anatoly Burakov <anatoly.burakov@intel.com>,
 John McNamara <john.mcnamara@intel.com>,
 Pablo de Lara <pablo.de.lara.guarch@intel.com>,
 Bruce Richardson <bruce.richardson@intel.com>,
 Harry van Haaren <harry.van.haaren@intel.com>,
 Xiaoyun Li <xiaoyun.li@intel.com>
Cc: david.marchand@redhat.com,
	dev@dpdk.org
Date: Thu, 18 Apr 2019 02:30:58 +0200
Message-Id: <20190418003059.18170-1-thomas@monjalon.net>
X-Mailer: git-send-email 2.21.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: [dpdk-dev] [PATCH] eal: promote some experimental functions as
	stable
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>
Content-Type: text/plain; charset="UTF-8"
Message-ID: <20190418003058.EsLFGBPxDm1ACIY4H89F0dZRDL4LMJZeuY5FtwNZnL8@z>

The function rte_eal_cleanup() was introduced more than one year ago,
in DPDK 18.02. It is no longer experimental, allowing
pdump, proc-info and hotplug_mp apps to not need any experimental API.

The function rte_ctrl_thread_create() was introduced one year ago
in DPDK 18.05. It is no longer experimental, allowing
KNI PMD and TEP example to not need any experimental API.

The functions rte_socket_count() and rte_socket_id_by_idx() were
introduced one year ago in DPDK 18.05. They are no longer experimental.

The function rte_dev_is_probed() was introduced half a year ago
in DPDK 18.11. It is no longer experimental.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 app/pdump/Makefile                         |  1 -
 app/pdump/meson.build                      |  1 -
 app/proc-info/Makefile                     |  1 -
 app/proc-info/meson.build                  |  1 -
 drivers/net/kni/Makefile                   |  1 -
 drivers/net/kni/meson.build                |  1 -
 examples/multi_process/hotplug_mp/Makefile |  1 -
 examples/tep_termination/Makefile          |  3 ---
 examples/tep_termination/meson.build       |  1 -
 lib/librte_eal/common/eal_common_dev.c     |  2 +-
 lib/librte_eal/common/eal_common_lcore.c   |  4 ++--
 lib/librte_eal/common/eal_common_thread.c  |  2 +-
 lib/librte_eal/common/include/rte_dev.h    |  4 ----
 lib/librte_eal/common/include/rte_eal.h    |  5 +----
 lib/librte_eal/common/include/rte_lcore.h  |  6 +++---
 lib/librte_eal/linux/eal/eal.c             |  2 +-
 lib/librte_eal/rte_eal_version.map         | 10 +++++-----
 17 files changed, 14 insertions(+), 32 deletions(-)

diff --git a/app/pdump/Makefile b/app/pdump/Makefile
index bd3c20819..e6b9eea91 100644
--- a/app/pdump/Makefile
+++ b/app/pdump/Makefile
@@ -7,7 +7,6 @@ ifeq ($(CONFIG_RTE_LIBRTE_PDUMP),y)
 
 APP = dpdk-pdump
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS)
 
 # all source are stored in SRCS-y
diff --git a/app/pdump/meson.build b/app/pdump/meson.build
index 116c27f02..7bb908e04 100644
--- a/app/pdump/meson.build
+++ b/app/pdump/meson.build
@@ -2,5 +2,4 @@
 # Copyright(c) 2018 Intel Corporation
 
 sources = files('main.c')
-allow_experimental_apis = true
 deps += ['ethdev', 'kvargs', 'pdump']
diff --git a/app/proc-info/Makefile b/app/proc-info/Makefile
index 9e87f524d..214f3f54a 100644
--- a/app/proc-info/Makefile
+++ b/app/proc-info/Makefile
@@ -5,7 +5,6 @@ include $(RTE_SDK)/mk/rte.vars.mk
 
 APP = dpdk-procinfo
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += $(WERROR_FLAGS)
 
 # all source are stored in SRCS-y
diff --git a/app/proc-info/meson.build b/app/proc-info/meson.build
index 866b390d6..f050c4a9b 100644
--- a/app/proc-info/meson.build
+++ b/app/proc-info/meson.build
@@ -2,5 +2,4 @@
 # Copyright(c) 2018 Intel Corporation
 
 sources = files('main.c')
-allow_experimental_apis = true
 deps += ['ethdev', 'metrics', 'security']
diff --git a/drivers/net/kni/Makefile b/drivers/net/kni/Makefile
index 562e8d2da..01eaef056 100644
--- a/drivers/net/kni/Makefile
+++ b/drivers/net/kni/Makefile
@@ -10,7 +10,6 @@ LIB = librte_pmd_kni.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 LDLIBS += -lpthread
 LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring
 LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs -lrte_kni
diff --git a/drivers/net/kni/meson.build b/drivers/net/kni/meson.build
index 0f784c6d5..e3b2d83b5 100644
--- a/drivers/net/kni/meson.build
+++ b/drivers/net/kni/meson.build
@@ -3,6 +3,5 @@
 
 # this driver can be built if-and-only-if KNI library is buildable
 build = dpdk_conf.has('RTE_LIBRTE_KNI')
-allow_experimental_apis = true
 sources = files('rte_eth_kni.c')
 deps += 'kni'
diff --git a/examples/multi_process/hotplug_mp/Makefile b/examples/multi_process/hotplug_mp/Makefile
index 1fd7aa085..3ff74d52a 100644
--- a/examples/multi_process/hotplug_mp/Makefile
+++ b/examples/multi_process/hotplug_mp/Makefile
@@ -18,6 +18,5 @@ SRCS-y := main.c commands.c
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/examples/tep_termination/Makefile b/examples/tep_termination/Makefile
index 2da41922f..deaf61fb5 100644
--- a/examples/tep_termination/Makefile
+++ b/examples/tep_termination/Makefile
@@ -25,8 +25,6 @@ CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
 LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
 LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
-
 build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
 	$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)
 
@@ -57,7 +55,6 @@ $(error This application can only operate in a linux environment, \
 please change the definition of the RTE_TARGET environment variable)
 endif
 
-CFLAGS += -DALLOW_EXPERIMENTAL_API
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
 
diff --git a/examples/tep_termination/meson.build b/examples/tep_termination/meson.build
index a75cc7100..e6e5073fb 100644
--- a/examples/tep_termination/meson.build
+++ b/examples/tep_termination/meson.build
@@ -10,7 +10,6 @@ if not is_linux
 	build = false
 endif
 deps += ['hash', 'vhost']
-allow_experimental_apis = true
 sources = files(
 	'main.c', 'vxlan.c', 'vxlan_setup.c'
 )
diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
index 0ec42d828..824b8f926 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -76,7 +76,7 @@ static int cmp_dev_name(const struct rte_device *dev, const void *_name)
 	return strcmp(dev->name, name);
 }
 
-int __rte_experimental
+int
 rte_dev_is_probed(const struct rte_device *dev)
 {
 	/* The field driver should be set only when the probe is successful. */
diff --git a/lib/librte_eal/common/eal_common_lcore.c b/lib/librte_eal/common/eal_common_lcore.c
index 1cbac4228..8c2744fab 100644
--- a/lib/librte_eal/common/eal_common_lcore.c
+++ b/lib/librte_eal/common/eal_common_lcore.c
@@ -114,14 +114,14 @@ rte_eal_cpu_init(void)
 	return 0;
 }
 
-unsigned int __rte_experimental
+unsigned int
 rte_socket_count(void)
 {
 	const struct rte_config *config = rte_eal_get_configuration();
 	return config->numa_node_count;
 }
 
-int __rte_experimental
+int
 rte_socket_id_by_idx(unsigned int idx)
 {
 	const struct rte_config *config = rte_eal_get_configuration();
diff --git a/lib/librte_eal/common/eal_common_thread.c b/lib/librte_eal/common/eal_common_thread.c
index 14f206c04..c91aba8f9 100644
--- a/lib/librte_eal/common/eal_common_thread.c
+++ b/lib/librte_eal/common/eal_common_thread.c
@@ -164,7 +164,7 @@ static void *rte_thread_init(void *arg)
 	return start_routine(routine_arg);
 }
 
-__rte_experimental int
+int
 rte_ctrl_thread_create(pthread_t *thread, const char *name,
 		const pthread_attr_t *attr,
 		void *(*start_routine)(void *), void *arg)
diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h
index 0d5e25b50..56dd52ad9 100644
--- a/lib/librte_eal/common/include/rte_dev.h
+++ b/lib/librte_eal/common/include/rte_dev.h
@@ -111,9 +111,6 @@ struct rte_device {
 };
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Query status of a device.
  *
  * @param dev
@@ -121,7 +118,6 @@ struct rte_device {
  * @return
  *   (int)true if already probed successfully, 0 otherwise.
  */
-__rte_experimental
 int rte_dev_is_probed(const struct rte_device *dev);
 
 /**
diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h
index 833433229..f9288666e 100644
--- a/lib/librte_eal/common/include/rte_eal.h
+++ b/lib/librte_eal/common/include/rte_eal.h
@@ -174,9 +174,6 @@ int rte_eal_iopl_init(void);
 int rte_eal_init(int argc, char **argv);
 
 /**
- * @warning
- * @b EXPERIMENTAL: this API may change without prior notice
- *
  * Clean up the Environment Abstraction Layer (EAL)
  *
  * This function must be called to release any internal resources that EAL has
@@ -187,7 +184,7 @@ int rte_eal_init(int argc, char **argv);
  * @return 0 Successfully released all internal EAL resources
  * @return -EFAULT There was an error in releasing all resources.
  */
-int __rte_experimental rte_eal_cleanup(void);
+int rte_eal_cleanup(void);
 
 /**
  * Check if a primary process is currently alive
diff --git a/lib/librte_eal/common/include/rte_lcore.h b/lib/librte_eal/common/include/rte_lcore.h
index dea17f500..be757a32e 100644
--- a/lib/librte_eal/common/include/rte_lcore.h
+++ b/lib/librte_eal/common/include/rte_lcore.h
@@ -149,7 +149,7 @@ unsigned rte_socket_id(void);
  * @return
  *   the number of physical sockets as recognized by EAL
  */
-unsigned int __rte_experimental
+unsigned int
 rte_socket_count(void);
 
 /**
@@ -166,7 +166,7 @@ rte_socket_count(void);
  *   - physical socket id as recognized by EAL
  *   - -1 on error, with errno set to EINVAL
  */
-int __rte_experimental
+int
 rte_socket_id_by_idx(unsigned int idx);
 
 /**
@@ -306,7 +306,7 @@ int rte_thread_setname(pthread_t id, const char *name);
  *   On success, returns 0; on error, it returns a negative value
  *   corresponding to the error number.
  */
-__rte_experimental int
+int
 rte_ctrl_thread_create(pthread_t *thread, const char *name,
 		const pthread_attr_t *attr,
 		void *(*start_routine)(void *), void *arg);
diff --git a/lib/librte_eal/linux/eal/eal.c b/lib/librte_eal/linux/eal/eal.c
index f7ae62d7b..161399619 100644
--- a/lib/librte_eal/linux/eal/eal.c
+++ b/lib/librte_eal/linux/eal/eal.c
@@ -1253,7 +1253,7 @@ mark_freeable(const struct rte_memseg_list *msl, const struct rte_memseg *ms,
 	return 0;
 }
 
-int __rte_experimental
+int
 rte_eal_cleanup(void)
 {
 	/* if we're in a primary process, we need to mark hugepages as freeable
diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
index 18d02017c..245493461 100644
--- a/lib/librte_eal/rte_eal_version.map
+++ b/lib/librte_eal/rte_eal_version.map
@@ -271,6 +271,8 @@ DPDK_18.11 {
 DPDK_19.05 {
 	global:
 
+	rte_ctrl_thread_create;
+	rte_dev_is_probed;
 	rte_devargs_add;
 	rte_devargs_dump;
 	rte_devargs_insert;
@@ -279,6 +281,9 @@ DPDK_19.05 {
 	rte_devargs_parsef;
 	rte_devargs_remove;
 	rte_devargs_type_count;
+	rte_eal_cleanup;
+	rte_socket_count;
+	rte_socket_id_by_idx;
 
 } DPDK_18.11;
 
@@ -289,7 +294,6 @@ EXPERIMENTAL {
 	rte_class_find_by_name;
 	rte_class_register;
 	rte_class_unregister;
-	rte_ctrl_thread_create;
 	rte_delay_us_sleep;
 	rte_dev_dma_map;
 	rte_dev_dma_unmap;
@@ -300,10 +304,8 @@ EXPERIMENTAL {
 	rte_dev_event_monitor_stop;
 	rte_dev_hotplug_handle_disable;
 	rte_dev_hotplug_handle_enable;
-	rte_dev_is_probed;
 	rte_dev_iterator_init;
 	rte_dev_iterator_next;
-	rte_eal_cleanup;
 	rte_extmem_attach;
 	rte_extmem_detach;
 	rte_extmem_register;
@@ -376,6 +378,4 @@ EXPERIMENTAL {
 	rte_service_lcore_attr_get;
 	rte_service_lcore_attr_reset_all;
 	rte_service_may_be_active;
-	rte_socket_count;
-	rte_socket_id_by_idx;
 };
-- 
2.21.0