-
Improvement
-
Resolution: Unresolved
-
Medium
-
None
-
None
-
None
- Use __atomic builtins instead of __sync builtins. __sync builtins may have unecessarily strict memory ordering which is not ideal for weakly ordered memory model e.g. Arm architecture.
- Review use of atomics to ensure correct memory ordering on non-TSO machines.
Files using __sync builtins:
~/vpp (master)$ ag -l __sync
src/vpp/stats/stats.c
src/plugins/lb/lb.c
src/plugins/nat/nat_det.h
src/plugins/kubeproxy/kp.c
src/plugins/ioam/analyse/ioam_summary_export.c
src/plugins/ioam/analyse/ip6/node.c
src/plugins/ioam/analyse/ioam_analyse.h
src/plugins/ioam/export-common/ioam_export.h
src/plugins/dpdk/device/device.c
src/vpp-api/java/jvpp-common/jvpp_common.h
src/vlib/buffer_funcs.h
src/vlib/threads.h
src/vlib/threads.c
src/vlib/unix/cj.c
src/svm/svm_fifo.c
src/svm/memfd.h
src/svm/svm_fifo.h
src/svm/ssvm.h
src/vppinfra/bihash_template.h
src/vppinfra/smp.h
src/vppinfra/elog.c
src/vppinfra/bihash_template.c
src/vppinfra/mheap.c
src/vppinfra/maplog.h
src/vppinfra/lock.h
src/vppinfra/clib.h
src/vnet/map/map.h
src/vnet/tcp/builtin_client.c
src/vnet/util/refcount.h
src/vnet/flow/flow_report_classify.c
src/vnet/mfib/mfib_forward.c
src/vnet/mfib/mfib_signal.c
src/vnet/dns/dns.h
src/vnet/classify/vnet_classify.c
src/vnet/devices/ssvm/node.c
src/vnet/devices/ssvm/ssvm_eth.c
src/vnet/devices/virtio/vhost-user.c
src/vnet/pg/output.c
src/vnet/interface.h
src/vnet/ip/ip4_mtrie.c
extras/libmemif/src/main.c