[dpdk-dev] [PATCH 0/9] experimental tags fixes

Neil Horman nhorman at tuxdriver.com
Fri Jun 28 21:58:30 CEST 2019


On Thu, Jun 27, 2019 at 01:33:46PM +0200, David Marchand wrote:
> 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 :-).
> 
> [1]: http://mails.dpdk.org/archives/dev/2019-June/135365.html
> 
> -- 
> David Marchand
> 
> David Marchand (9):
>   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
>   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                           | 37 ++++++++++++
>  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                  | 10 ++--
>  drivers/net/softnic/rte_eth_softnic.h              |  2 +-
>  drivers/raw/dpaa2_qdma/rte_pmd_dpaa2_qdma.h        |  2 +-
>  lib/librte_bbdev/rte_bbdev.c                       | 52 ++++++++--------
>  lib/librte_bbdev/rte_bbdev.h                       | 48 +++++++--------
>  lib/librte_bbdev/rte_bbdev_op.h                    | 12 ++--
>  lib/librte_bbdev/rte_bbdev_pmd.h                   |  8 +--
>  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                           | 12 ++--
>  lib/librte_bpf/rte_bpf_ethdev.h                    |  8 +--
>  lib/librte_compressdev/rte_comp.c                  | 12 ++--
>  lib/librte_compressdev/rte_comp.h                  | 12 ++--
>  lib/librte_compressdev/rte_compressdev.c           | 50 ++++++++--------
>  lib/librte_compressdev/rte_compressdev.h           | 44 +++++++-------
>  lib/librte_compressdev/rte_compressdev_pmd.c       |  6 +-
>  lib/librte_compressdev/rte_compressdev_pmd.h       | 12 ++--
>  lib/librte_cryptodev/rte_cryptodev.c               | 28 ++++-----
>  lib/librte_cryptodev/rte_cryptodev.h               | 28 ++++-----
>  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        |  2 +-
>  lib/librte_eal/common/include/generic/rte_atomic.h |  2 +-
>  lib/librte_eal/common/include/generic/rte_cycles.h |  2 +-
>  lib/librte_eal/common/include/generic/rte_rwlock.h |  4 +-
>  .../common/include/generic/rte_ticketlock.h        | 18 +++---
>  lib/librte_eal/common/include/rte_dev.h            | 18 +++---
>  lib/librte_eal/common/include/rte_devargs.h        |  2 -
>  lib/librte_eal/common/include/rte_eal.h            | 21 ++-----
>  lib/librte_eal/common/include/rte_fbarray.h        | 52 ++++++++--------
>  lib/librte_eal/common/include/rte_interrupts.h     |  2 +-
>  lib/librte_eal/common/include/rte_malloc.h         | 20 +++----
>  lib/librte_eal/common/include/rte_memory.h         | 42 ++++++-------
>  lib/librte_eal/common/include/rte_service.h        |  6 +-
>  lib/librte_eal/common/rte_malloc.c                 |  2 +-
>  lib/librte_eal/common/rte_option.c                 |  1 -
>  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                     | 24 ++++----
>  lib/librte_ethdev/rte_ethdev_driver.h              | 10 ++--
>  lib/librte_ethdev/rte_flow.c                       |  2 +-
>  lib/librte_ethdev/rte_flow_driver.h                |  2 +-
>  lib/librte_ethdev/rte_mtr.c                        | 24 ++++----
>  lib/librte_ethdev/rte_mtr.h                        | 24 ++++----
>  lib/librte_eventdev/rte_event_eth_rx_adapter.c     |  4 +-
>  lib/librte_eventdev/rte_event_eth_rx_adapter.h     |  4 +-
>  lib/librte_flow_classify/rte_flow_classify.c       | 14 ++---
>  lib/librte_flow_classify/rte_flow_classify.h       | 14 ++---
>  lib/librte_hash/rte_cuckoo_hash.c                  |  2 +-
>  lib/librte_hash/rte_hash.h                         |  2 +-
>  lib/librte_ip_frag/rte_ip_frag.h                   |  2 +-
>  lib/librte_ip_frag/rte_ip_frag_common.c            |  2 +-
>  lib/librte_ipsec/rte_ipsec.h                       |  6 +-
>  lib/librte_ipsec/rte_ipsec_group.h                 |  4 +-
>  lib/librte_ipsec/rte_ipsec_sa.h                    |  8 +--
>  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                           |  2 +-
>  lib/librte_kvargs/rte_kvargs.c                     |  2 -
>  lib/librte_mbuf/rte_mbuf.c                         |  1 -
>  lib/librte_mbuf/rte_mbuf.h                         | 15 +++--
>  lib/librte_meter/rte_meter.c                       |  4 +-
>  lib/librte_meter/rte_meter.h                       | 12 ++--
>  lib/librte_net/rte_arp.c                           |  2 +-
>  lib/librte_net/rte_arp.h                           |  2 +-
>  lib/librte_net/rte_net.c                           |  2 +-
>  lib/librte_net/rte_net.h                           |  2 +-
>  lib/librte_pipeline/rte_port_in_action.h           | 16 ++---
>  lib/librte_pipeline/rte_table_action.h             | 32 +++++-----
>  lib/librte_power/rte_power_empty_poll.c            | 14 ++---
>  lib/librte_power/rte_power_empty_poll.h            | 14 ++---
>  lib/librte_rcu/rte_rcu_qsbr.c                      | 12 ++--
>  lib/librte_rcu/rte_rcu_qsbr.h                      | 26 ++++----
>  lib/librte_sched/rte_sched.c                       |  2 +-
>  lib/librte_sched/rte_sched.h                       |  2 +-
>  lib/librte_security/rte_security.c                 |  6 +-
>  lib/librte_security/rte_security.h                 |  6 +-
>  lib/librte_stack/rte_stack.h                       | 14 ++---
>  lib/librte_stack/rte_stack_lf.h                    |  4 +-
>  lib/librte_stack/rte_stack_std.h                   |  6 +-
>  lib/librte_table/rte_table_hash_func.h             | 18 +++---
>  lib/librte_telemetry/rte_telemetry.c               |  6 +-
>  lib/librte_telemetry/rte_telemetry.h               |  6 +-
>  lib/librte_telemetry/rte_telemetry_parser.c        |  2 +-
>  lib/librte_telemetry/rte_telemetry_parser.h        |  2 +-
>  lib/librte_timer/rte_timer.c                       | 16 ++---
>  lib/librte_timer/rte_timer.h                       | 16 ++---
>  lib/librte_vhost/rte_vdpa.h                        | 14 ++---
>  lib/librte_vhost/rte_vhost.h                       | 22 +++----
>  lib/librte_vhost/rte_vhost_crypto.h                | 10 ++--
>  lib/librte_vhost/vdpa.c                            |  2 +-
>  lib/librte_vhost/vhost_crypto.c                    | 10 ++--
>  118 files changed, 791 insertions(+), 647 deletions(-)
>  create mode 100755 buildtools/map-list-symbol.sh
> 
> -- 
> 1.8.3.1
> 
> 
With the fix for rte_telemetry_parse

Series
Acked-by: Neil Horman <nhorman at tuxdriver.com>


More information about the dev mailing list