From patchwork Thu Apr 18 00:30:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Monjalon X-Patchwork-Id: 52892 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org 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 ; 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: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrfeeggdefvdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkofgggfestdekredtredttdenucfhrhhomhepvfhhohhmrghsucfo ohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenucffohhmrg hinhepvhgrrhhsrdhmkhdpvgigthgrphhprdhmkhenucfkphepjeejrddufeegrddvtdef rddukeegnecurfgrrhgrmhepmhgrihhlfhhrohhmpehthhhomhgrshesmhhonhhjrghloh hnrdhnvghtnecuvehluhhsthgvrhfuihiivgeptd X-ME-Proxy: 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 To: Reshma Pattan , Maryam Tahhan , Ferruh Yigit , Anatoly Burakov , John McNamara , Pablo de Lara , Bruce Richardson , Harry van Haaren , Xiaoyun Li 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 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Acked-by: Hemant Agrawal Acked-by: Kevin Traynor --- 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; };