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 483C9A046B for ; Sat, 29 Jun 2019 13:59:11 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 89B4437A8; Sat, 29 Jun 2019 13:59:09 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 8EFD5325F for ; Sat, 29 Jun 2019 13:59:07 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 92478308219E; Sat, 29 Jun 2019 11:59:06 +0000 (UTC) Received: from dmarchan.remote.csb (ovpn-204-190.brq.redhat.com [10.40.204.190]) by smtp.corp.redhat.com (Postfix) with ESMTP id C2D5B600C4; Sat, 29 Jun 2019 11:59:03 +0000 (UTC) From: David Marchand To: dev@dpdk.org, thomas@monjalon.net Cc: nhorman@tuxdriver.com, adrien.mazarguil@6wind.com, stephen@networkplumber.org Date: Sat, 29 Jun 2019 13:58:43 +0200 Message-Id: <1561809533-6545-1-git-send-email-david.marchand@redhat.com> In-Reply-To: <1561635235-22238-1-git-send-email-david.marchand@redhat.com> References: <1561635235-22238-1-git-send-email-david.marchand@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.47]); Sat, 29 Jun 2019 11:59:06 +0000 (UTC) Subject: [dpdk-dev] [PATCH v2 00/10] experimental tags fixes 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" Here is a new series on __rte_experimental tags. Following the build error reported by Aaron [1], I noticed that some experimental functions could go unnoticed because of a gcc peculiarity. To catch those, I went and added a new check on the object files to ensure that any experimental api flagged in the map files is really exported as such. Then went with my previous idea of only adding the tags on the functions prototypes and enforcing it (a new check in checkpatches.sh). And finally enforcing that the __rte_experimental tag is always the first part of a function prototype which seems to work with both gcc and clang. Comments and reviews highly welcome :-). Changelog since v1: - rebased on master, caught newly introduced issues in eal - added acks - fixed telemetry issue - squashed Adrien proposition in the last patch [1]: http://mails.dpdk.org/archives/dev/2019-June/135365.html -- David Marchand David Marchand (10): eal: hide internal hotplug symbol devargs: remove incorrect experimental tags vfio: remove incorrect experimental tag raw/dpaa2_qdma: remove incorrect experimental tag buildtools: detect discrepancies for experimental symbols net/atlantic: add missing experimental api tags mem: remove incorrect experimental tag on static symbol telemetry: add missing header include remove experimental tags from all symbol definitions enforce __rte_experimental at the start of symbol declarations buildtools/check-experimental-syms.sh | 29 ++++++-- buildtools/map-list-symbol.sh | 70 +++++++++++++++++++ devtools/checkpatches.sh | 38 +++++++++++ doc/guides/contributing/versioning.rst | 6 +- drivers/net/atlantic/rte_pmd_atlantic.c | 12 ++-- drivers/net/atlantic/rte_pmd_atlantic.h | 24 +++++++ drivers/net/dpaa2/dpaa2_ethdev.c | 2 +- drivers/net/ixgbe/rte_pmd_ixgbe.c | 10 +-- drivers/net/ixgbe/rte_pmd_ixgbe.h | 15 +++-- drivers/net/softnic/rte_eth_softnic.h | 3 +- drivers/raw/dpaa2_qdma/rte_pmd_dpaa2_qdma.h | 2 +- lib/librte_bbdev/rte_bbdev.c | 52 +++++++-------- lib/librte_bbdev/rte_bbdev.h | 72 +++++++++++++------- lib/librte_bbdev/rte_bbdev_op.h | 18 +++-- lib/librte_bbdev/rte_bbdev_pmd.h | 12 ++-- lib/librte_bpf/bpf.c | 4 +- lib/librte_bpf/bpf_exec.c | 4 +- lib/librte_bpf/bpf_load.c | 4 +- lib/librte_bpf/bpf_load_elf.c | 2 +- lib/librte_bpf/bpf_pkt.c | 8 +-- lib/librte_bpf/rte_bpf.h | 18 +++-- lib/librte_bpf/rte_bpf_ethdev.h | 12 ++-- lib/librte_compressdev/rte_comp.c | 12 ++-- lib/librte_compressdev/rte_comp.h | 18 +++-- lib/librte_compressdev/rte_compressdev.c | 50 +++++++------- lib/librte_compressdev/rte_compressdev.h | 66 ++++++++++++------ lib/librte_compressdev/rte_compressdev_pmd.c | 6 +- lib/librte_compressdev/rte_compressdev_pmd.h | 18 +++-- lib/librte_cryptodev/rte_cryptodev.c | 28 ++++---- lib/librte_cryptodev/rte_cryptodev.h | 42 ++++++++---- lib/librte_eal/common/eal_common_class.c | 6 +- lib/librte_eal/common/eal_common_dev.c | 8 +-- lib/librte_eal/common/eal_common_fbarray.c | 52 +++++++-------- lib/librte_eal/common/eal_common_log.c | 2 +- lib/librte_eal/common/eal_common_memory.c | 50 +++++++------- lib/librte_eal/common/eal_common_proc.c | 12 ++-- lib/librte_eal/common/eal_common_timer.c | 2 +- lib/librte_eal/common/hotplug_mp.c | 2 +- lib/librte_eal/common/hotplug_mp.h | 9 +++ .../common/include/arch/x86/rte_atomic_64.h | 3 +- lib/librte_eal/common/include/generic/rte_atomic.h | 3 +- lib/librte_eal/common/include/generic/rte_cycles.h | 3 +- lib/librte_eal/common/include/generic/rte_rwlock.h | 6 +- .../common/include/generic/rte_ticketlock.h | 27 +++++--- lib/librte_eal/common/include/rte_dev.h | 27 +++++--- lib/librte_eal/common/include/rte_devargs.h | 2 - lib/librte_eal/common/include/rte_eal.h | 27 ++++---- lib/librte_eal/common/include/rte_fbarray.h | 78 ++++++++++++++-------- lib/librte_eal/common/include/rte_interrupts.h | 3 +- lib/librte_eal/common/include/rte_lcore.h | 6 +- lib/librte_eal/common/include/rte_malloc.h | 30 ++++++--- lib/librte_eal/common/include/rte_memory.h | 72 +++++++++++++------- lib/librte_eal/common/include/rte_random.h | 3 +- lib/librte_eal/common/include/rte_service.h | 9 ++- lib/librte_eal/common/rte_malloc.c | 2 +- lib/librte_eal/common/rte_option.c | 1 - lib/librte_eal/common/rte_random.c | 2 +- lib/librte_eal/common/rte_service.c | 6 +- lib/librte_eal/freebsd/eal/eal.c | 2 +- lib/librte_eal/freebsd/eal/eal_dev.c | 8 +-- lib/librte_eal/freebsd/eal/eal_interrupts.c | 2 +- lib/librte_eal/linux/eal/eal.c | 3 +- lib/librte_eal/linux/eal/eal_dev.c | 8 +-- lib/librte_eal/linux/eal/eal_interrupts.c | 2 +- lib/librte_eal/linux/eal/eal_vfio.c | 2 +- lib/librte_ethdev/rte_ethdev.c | 28 ++++---- lib/librte_ethdev/rte_ethdev.h | 36 ++++++---- lib/librte_ethdev/rte_ethdev_driver.h | 15 +++-- lib/librte_ethdev/rte_flow.c | 2 +- lib/librte_ethdev/rte_flow_driver.h | 3 +- lib/librte_ethdev/rte_mtr.c | 24 +++---- lib/librte_ethdev/rte_mtr.h | 36 ++++++---- lib/librte_eventdev/rte_event_eth_rx_adapter.c | 4 +- lib/librte_eventdev/rte_event_eth_rx_adapter.h | 6 +- lib/librte_flow_classify/rte_flow_classify.c | 14 ++-- lib/librte_flow_classify/rte_flow_classify.h | 21 ++++-- lib/librte_hash/rte_cuckoo_hash.c | 2 +- lib/librte_hash/rte_hash.h | 3 +- lib/librte_ip_frag/rte_ip_frag.h | 3 +- lib/librte_ip_frag/rte_ip_frag_common.c | 2 +- lib/librte_ipsec/rte_ipsec.h | 9 ++- lib/librte_ipsec/rte_ipsec_group.h | 6 +- lib/librte_ipsec/rte_ipsec_sa.h | 12 ++-- lib/librte_ipsec/sa.c | 8 +-- lib/librte_ipsec/ses.c | 2 +- lib/librte_kni/rte_kni.c | 2 +- lib/librte_kni/rte_kni.h | 3 +- lib/librte_kvargs/rte_kvargs.c | 2 - lib/librte_mbuf/rte_mbuf.c | 1 - lib/librte_mbuf/rte_mbuf.h | 18 +++-- lib/librte_meter/rte_meter.c | 4 +- lib/librte_meter/rte_meter.h | 18 +++-- lib/librte_net/rte_arp.c | 2 +- lib/librte_net/rte_arp.h | 3 +- lib/librte_net/rte_net.c | 2 +- lib/librte_net/rte_net.h | 3 +- lib/librte_pipeline/rte_port_in_action.h | 24 ++++--- lib/librte_pipeline/rte_table_action.h | 48 ++++++++----- lib/librte_power/rte_power_empty_poll.c | 14 ++-- lib/librte_power/rte_power_empty_poll.h | 21 ++++-- lib/librte_rcu/rte_rcu_qsbr.c | 12 ++-- lib/librte_rcu/rte_rcu_qsbr.h | 39 +++++++---- lib/librte_sched/rte_sched.c | 2 +- lib/librte_sched/rte_sched.h | 3 +- lib/librte_security/rte_security.c | 6 +- lib/librte_security/rte_security.h | 9 ++- lib/librte_stack/rte_stack.h | 21 ++++-- lib/librte_stack/rte_stack_lf.h | 6 +- lib/librte_stack/rte_stack_std.h | 9 ++- lib/librte_table/rte_table_hash_func.h | 27 +++++--- lib/librte_telemetry/rte_telemetry.c | 6 +- lib/librte_telemetry/rte_telemetry.h | 9 ++- lib/librte_telemetry/rte_telemetry_parser.c | 3 +- lib/librte_telemetry/rte_telemetry_parser.h | 3 +- lib/librte_timer/rte_timer.c | 16 ++--- lib/librte_timer/rte_timer.h | 24 ++++--- lib/librte_vhost/rte_vdpa.h | 21 ++++-- lib/librte_vhost/rte_vhost.h | 33 ++++++--- lib/librte_vhost/rte_vhost_crypto.h | 15 +++-- lib/librte_vhost/vdpa.c | 2 +- lib/librte_vhost/vhost_crypto.c | 10 +-- 121 files changed, 1160 insertions(+), 654 deletions(-) create mode 100755 buildtools/map-list-symbol.sh -- 1.8.3.1