[PATCH v2 00/20] Enable lock annotations on most libraries and drivers
David Marchand
david.marchand at redhat.com
Fri Feb 24 16:11:23 CET 2023
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.
We could simply disable the check on FreeBSD, but having this check,
a few issues got raised in drivers that are built with FreeBSD.
For now, I went with a simple #ifdef FreeBSD for pthread mutex related
annotations in our code.
Maintainers, please review.
--
David Marchand
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 (20):
malloc: rework heap lock handling
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: annotate lock for guest announce
raw/ifpga: inherit lock annotations
vdpa/sfc: inherit lock annotations
ipc: annotate pthread mutex
ethdev: annotate pthread mutex
net/failsafe: fix mutex locking
net/failsafe: annotate pthread mutex
net/hinic: annotate pthread mutex
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/failsafe_private.h | 6 +
drivers/net/fm10k/fm10k_ethdev.c | 2 +
drivers/net/hinic/base/hinic_compat.h | 6 +
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 | 8 +-
drivers/net/virtio/virtio_ethdev.h | 7 +-
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/eal_common_proc.c | 3 +
lib/eal/common/malloc_heap.c | 55 +++++--
lib/eal/common/malloc_heap.h | 3 +
lib/eal/common/rte_malloc.c | 10 --
lib/eal/freebsd/eal.c | 13 ++
lib/eal/include/rte_eal_memconfig.h | 63 ++++++--
lib/eal/linux/eal.c | 13 ++
lib/eal/version.map | 4 +
lib/eal/windows/eal.c | 13 ++
lib/eal/windows/eal_alarm.c | 2 +
lib/ethdev/rte_flow.c | 8 +
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, 461 insertions(+), 434 deletions(-)
--
2.39.2
More information about the dev
mailing list