mbox series

[v3,00/12] use compiler atomic builtins for app modules

Message ID 20211117082200.1029621-1-joyce.kong@arm.com (mailing list archive)
Headers
Series use compiler atomic builtins for app modules |

Message

Joyce Kong Nov. 17, 2021, 8:21 a.m. UTC
  Since atomic operations have been adopted in DPDK now[1],
change rte_atomicNN_xxx APIs to compiler atomic built-ins
in app modules[2].

[1] https://www.dpdk.org/blog/2021/03/26/dpdk-adopts-the-c11-memory-model/
[2] https://doc.dpdk.org/guides/rel_notes/deprecation.html

v3:
  1. In pmd_perf test case, move the initialization of polling
     start before calling rte_eal_remote_launch, so the update
     is visible to the worker threads.(Honnappa Nagarahalli)
  2. Remove the rest rte_atomic.h which miss in v2.(David Marchand)

v2:
  By Honnappa Nagarahalli:
  1. Replace the RELAXED barriers with suitable ones for shared
     data sync in pmd_perf and timer test cases.
  2. Avoid unnecessary atomic operations in compress and testpmd
     modules.
  3. Fix some typo.

Joyce Kong (12):
  test/pmd_perf: use compiler atomic builtins for polling sync
  test/ring_perf: use compiler atomic builtins for lcores sync
  test/timer: use compiler atomic builtins for sync
  test/stack_perf: use compiler atomics for lcore sync
  test/bpf: use compiler atomics for calculation
  test/func_reentrancy: use compiler atomics for data sync
  app/eventdev: use compiler atomics for shared data sync
  app/crypto: use compiler atomic builtins for display sync
  app/compress: use compiler atomic builtins for display sync
  app/testpmd: remove atomic operations for port status
  app/bbdev: use compiler atomics for shared data sync
  app: remove unnecessary include of atomic header file

 app/proc-info/main.c                          |   1 -
 app/test-bbdev/test_bbdev_perf.c              | 135 ++++++++----------
 .../comp_perf_test_common.h                   |   2 +-
 .../comp_perf_test_cyclecount.c               |  15 +-
 .../comp_perf_test_throughput.c               |  10 +-
 .../comp_perf_test_verify.c                   |   6 +-
 app/test-crypto-perf/cperf_test_latency.c     |   6 +-
 .../cperf_test_pmd_cyclecount.c               |   9 +-
 app/test-crypto-perf/cperf_test_throughput.c  |   9 +-
 app/test-crypto-perf/cperf_test_verify.c      |   9 +-
 app/test-eventdev/evt_main.c                  |   1 -
 app/test-eventdev/test_order_atq.c            |   4 +-
 app/test-eventdev/test_order_common.c         |   4 +-
 app/test-eventdev/test_order_common.h         |   8 +-
 app/test-eventdev/test_order_queue.c          |   4 +-
 app/test-pipeline/config.c                    |   1 -
 app/test-pipeline/init.c                      |   1 -
 app/test-pipeline/main.c                      |   1 -
 app/test-pipeline/runtime.c                   |   1 -
 app/test-pmd/cmdline.c                        |   1 -
 app/test-pmd/config.c                         |   1 -
 app/test-pmd/csumonly.c                       |   1 -
 app/test-pmd/flowgen.c                        |   1 -
 app/test-pmd/icmpecho.c                       |   1 -
 app/test-pmd/iofwd.c                          |   1 -
 app/test-pmd/macfwd.c                         |   1 -
 app/test-pmd/macswap.c                        |   1 -
 app/test-pmd/parameters.c                     |   1 -
 app/test-pmd/rxonly.c                         |   1 -
 app/test-pmd/testpmd.c                        |  58 ++++----
 app/test-pmd/txonly.c                         |   1 -
 app/test/commands.c                           |   1 -
 app/test/test_barrier.c                       |   1 -
 app/test/test_bpf.c                           |  28 ++--
 app/test/test_event_timer_adapter.c           |   1 -
 app/test/test_func_reentrancy.c               |  27 ++--
 app/test/test_mbuf.c                          |   1 -
 app/test/test_mp_secondary.c                  |   1 -
 app/test/test_pmd_perf.c                      |  23 +--
 app/test/test_ring.c                          |   1 -
 app/test/test_ring_perf.c                     |   9 +-
 app/test/test_stack_perf.c                    |  14 +-
 app/test/test_timer.c                         |  30 ++--
 app/test/test_timer_secondary.c               |   1 -
 44 files changed, 203 insertions(+), 231 deletions(-)
  

Comments

David Marchand Nov. 17, 2021, 10:02 a.m. UTC | #1
On Wed, Nov 17, 2021 at 9:22 AM Joyce Kong <joyce.kong@arm.com> wrote:
>
> Since atomic operations have been adopted in DPDK now[1],
> change rte_atomicNN_xxx APIs to compiler atomic built-ins
> in app modules[2].
>
> [1] https://www.dpdk.org/blog/2021/03/26/dpdk-adopts-the-c11-memory-model/
> [2] https://doc.dpdk.org/guides/rel_notes/deprecation.html
>
> v3:
>   1. In pmd_perf test case, move the initialization of polling
>      start before calling rte_eal_remote_launch, so the update
>      is visible to the worker threads.(Honnappa Nagarahalli)
>   2. Remove the rest rte_atomic.h which miss in v2.(David Marchand)
>
> v2:
>   By Honnappa Nagarahalli:
>   1. Replace the RELAXED barriers with suitable ones for shared
>      data sync in pmd_perf and timer test cases.
>   2. Avoid unnecessary atomic operations in compress and testpmd
>      modules.
>   3. Fix some typo.
>
> Joyce Kong (12):
>   test/pmd_perf: use compiler atomic builtins for polling sync
>   test/ring_perf: use compiler atomic builtins for lcores sync
>   test/timer: use compiler atomic builtins for sync
>   test/stack_perf: use compiler atomics for lcore sync
>   test/bpf: use compiler atomics for calculation
>   test/func_reentrancy: use compiler atomics for data sync
>   app/eventdev: use compiler atomics for shared data sync
>   app/crypto: use compiler atomic builtins for display sync
>   app/compress: use compiler atomic builtins for display sync
>   app/testpmd: remove atomic operations for port status
>   app/bbdev: use compiler atomics for shared data sync
>   app: remove unnecessary include of atomic header file

There were cleanups of unneeded rte_atomic.h inclusion along the series:
I moved all of them to the last patch so that patches focus on what
their commitlog describes.

Series applied, thanks.