Uploaded image for project: 'vpp'
  1. vpp
  2. VPP-1114

Ensure correctness of atomics and memory ordering

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • None
    • None

      1. 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.
      2. 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

       

            Lijian-Zhang Lijian Zhang
            bpb Brian Brooks
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: