[0/9] experimental tags fixes
mbox series

Message ID 1561635235-22238-1-git-send-email-david.marchand@redhat.com
Headers show
Series
  • experimental tags fixes
Related show

Message

David Marchand June 27, 2019, 11:33 a.m. UTC
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

Comments

Neil Horman June 28, 2019, 7:58 p.m. UTC | #1
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@tuxdriver.com>