This is a followup of the series that introduced lock annotations. I reworked and made annotations work in what seemed the easier cases. In most cases, I chose to convert inline wrappers around the EAL lock API to simple macro: I did not see much value in those wrappers and this is way simpler than adding __rte_*lock_function tags everywhere.
A list of libraries and drivers still need more work as their code have non obvious locks handling. For those components, the check is opted out. I leave it to their respective maintainers to enable the checks later. FreeBSD libc pthread API has lock annotations while Linux glibc has none. Until we get a proper abstraction for mutexes, the simpler is to disable the check on FreeBSD. Maintainers, please review. -- David Marchand Changes since v2: - simplify malloc heap change, - rework virtio code, - disable check on FreeBSD when using pthread mutexes, Changes since v1: - annotate code relying on pthread mutexes for FreeBSD libc that put annotations on its pthread API, - annotate Windows alarm code, David Marchand (16): malloc: rework heap destroy mem: rework malloc heap init mem: annotate shared memory config locks hash: annotate cuckoo hash lock graph: annotate graph lock drivers: inherit lock annotations for Intel drivers net/cxgbe: inherit lock annotations net/fm10k: annotate mailbox lock net/sfc: rework locking in proxy code net/sfc: inherit lock annotations net/virtio: rework guest announce notify helper raw/ifpga: inherit lock annotations vdpa/sfc: inherit lock annotations net/failsafe: fix mutex locking eal/windows: disable lock check on alarm code enable lock check .../prog_guide/env_abstraction_layer.rst | 5 +- drivers/bus/dpaa/meson.build | 1 + drivers/common/cnxk/meson.build | 1 + drivers/common/iavf/iavf_osdep.h | 39 +---- drivers/common/iavf/iavf_prototype.h | 6 - drivers/common/idpf/base/idpf_osdep.h | 26 +--- drivers/common/mlx5/meson.build | 1 + drivers/event/cnxk/meson.build | 1 + drivers/meson.build | 2 +- drivers/net/bnx2x/meson.build | 1 + drivers/net/bnxt/meson.build | 1 + drivers/net/cnxk/meson.build | 1 + drivers/net/cxgbe/base/adapter.h | 35 +---- drivers/net/enic/meson.build | 1 + drivers/net/failsafe/failsafe_ether.c | 3 +- drivers/net/failsafe/failsafe_flow.c | 23 ++- drivers/net/failsafe/failsafe_ops.c | 142 +++++++++++++----- drivers/net/failsafe/meson.build | 4 + drivers/net/fm10k/fm10k_ethdev.c | 2 + drivers/net/hinic/meson.build | 4 + drivers/net/hns3/meson.build | 1 + drivers/net/i40e/base/i40e_osdep.h | 8 +- drivers/net/i40e/base/i40e_prototype.h | 5 - drivers/net/i40e/i40e_ethdev.c | 24 --- drivers/net/ice/base/ice_osdep.h | 26 +--- drivers/net/mlx5/meson.build | 1 + drivers/net/sfc/sfc.h | 41 +---- drivers/net/sfc/sfc_ev.c | 6 +- drivers/net/sfc/sfc_repr.c | 38 +---- drivers/net/sfc/sfc_repr_proxy.c | 59 ++++---- drivers/net/virtio/virtio_ethdev.c | 75 +++------ drivers/net/virtio/virtio_ethdev.h | 4 - drivers/raw/ifpga/afu_pmd_core.c | 17 +-- drivers/vdpa/sfc/sfc_vdpa.h | 41 +---- drivers/vdpa/sfc/sfc_vdpa_ops.c | 14 +- lib/eal/common/eal_common_mcfg.c | 66 ++++---- lib/eal/common/eal_common_memory.c | 10 +- lib/eal/common/malloc_heap.c | 16 +- lib/eal/common/malloc_heap.h | 3 + lib/eal/common/rte_malloc.c | 5 +- lib/eal/freebsd/eal.c | 13 ++ lib/eal/include/rte_eal_memconfig.h | 63 ++++++-- lib/eal/linux/eal.c | 13 ++ lib/eal/meson.build | 4 + lib/eal/version.map | 4 + lib/eal/windows/eal.c | 13 ++ lib/eal/windows/eal_alarm.c | 2 + lib/ethdev/meson.build | 4 + lib/graph/graph.c | 10 +- lib/graph/graph_private.h | 10 +- lib/hash/rte_cuckoo_hash.c | 8 + lib/ipsec/meson.build | 1 + lib/meson.build | 2 +- lib/timer/meson.build | 1 + lib/vhost/meson.build | 1 - 55 files changed, 435 insertions(+), 473 deletions(-) -- 2.39.2