[PATCH v3 00/16] Enable lock annotations on most libraries and drivers
David Marchand
david.marchand at redhat.com
Tue Apr 4 14:48:24 CEST 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. 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
More information about the dev
mailing list