[v3,00/19] use rte optional stdatomic API

Message ID 1698280314-25861-1-git-send-email-roretzla@linux.microsoft.com (mailing list archive)
Headers
Series use rte optional stdatomic API |

Message

Tyler Retzlaff Oct. 26, 2023, 12:31 a.m. UTC
  Replace the use of gcc builtin __atomic_xxx intrinsics with
corresponding rte_atomic_xxx optional stdatomic API.

v3:
  * add missing atomic specification on head variable
    in struct rte_ring_headtail
  * adapt to use rte_atomic_xxx stdatomic API in rte_ring_c11_pvt.h
  * split comma operator statement into 2 statements

v2:
  * add #include <rte_stdatomic.h> to rte_mbuf_core.h
  * remove first two patches which were fixes that have
    been merged in another series

Tyler Retzlaff (19):
  power: use rte optional stdatomic API
  bbdev: use rte optional stdatomic API
  eal: use rte optional stdatomic API
  eventdev: use rte optional stdatomic API
  gpudev: use rte optional stdatomic API
  ipsec: use rte optional stdatomic API
  mbuf: use rte optional stdatomic API
  mempool: use rte optional stdatomic API
  rcu: use rte optional stdatomic API
  pdump: use rte optional stdatomic API
  stack: use rte optional stdatomic API
  telemetry: use rte optional stdatomic API
  vhost: use rte optional stdatomic API
  cryptodev: use rte optional stdatomic API
  distributor: use rte optional stdatomic API
  ethdev: use rte optional stdatomic API
  hash: use rte optional stdatomic API
  timer: use rte optional stdatomic API
  ring: use rte optional stdatomic API

 drivers/event/cnxk/cnxk_tim_worker.h   |   4 +-
 drivers/net/mlx5/mlx5_hws_cnt.h        |   4 +-
 lib/bbdev/rte_bbdev.c                  |   6 +-
 lib/bbdev/rte_bbdev.h                  |   2 +-
 lib/cryptodev/rte_cryptodev.c          |  22 +++---
 lib/cryptodev/rte_cryptodev.h          |  16 ++---
 lib/distributor/distributor_private.h  |   4 +-
 lib/distributor/rte_distributor.c      |  54 +++++++--------
 lib/eal/common/eal_common_launch.c     |  10 +--
 lib/eal/common/eal_common_mcfg.c       |   2 +-
 lib/eal/common/eal_common_proc.c       |  14 ++--
 lib/eal/common/eal_common_thread.c     |  26 +++----
 lib/eal/common/eal_common_trace.c      |   8 +--
 lib/eal/common/eal_common_trace_ctf.c  |   4 +-
 lib/eal/common/eal_memcfg.h            |   2 +-
 lib/eal/common/eal_private.h           |   4 +-
 lib/eal/common/eal_trace.h             |   4 +-
 lib/eal/common/rte_service.c           | 122 ++++++++++++++++-----------------
 lib/eal/freebsd/eal.c                  |  20 +++---
 lib/eal/include/rte_epoll.h            |   3 +-
 lib/eal/linux/eal.c                    |  26 +++----
 lib/eal/linux/eal_interrupts.c         |  42 ++++++------
 lib/eal/ppc/include/rte_atomic.h       |   6 +-
 lib/eal/windows/rte_thread.c           |   8 ++-
 lib/ethdev/ethdev_driver.h             |  16 ++---
 lib/ethdev/ethdev_private.c            |   6 +-
 lib/ethdev/rte_ethdev.c                |  24 +++----
 lib/ethdev/rte_ethdev.h                |  16 ++---
 lib/ethdev/rte_ethdev_core.h           |   2 +-
 lib/eventdev/rte_event_timer_adapter.c |  66 +++++++++---------
 lib/eventdev/rte_event_timer_adapter.h |   2 +-
 lib/gpudev/gpudev.c                    |   6 +-
 lib/gpudev/gpudev_driver.h             |   2 +-
 lib/hash/rte_cuckoo_hash.c             | 116 +++++++++++++++----------------
 lib/hash/rte_cuckoo_hash.h             |   6 +-
 lib/ipsec/ipsec_sqn.h                  |   2 +-
 lib/ipsec/sa.h                         |   2 +-
 lib/mbuf/rte_mbuf.h                    |  20 +++---
 lib/mbuf/rte_mbuf_core.h               |   5 +-
 lib/mempool/rte_mempool.h              |   4 +-
 lib/pdump/rte_pdump.c                  |  14 ++--
 lib/pdump/rte_pdump.h                  |   8 +--
 lib/power/power_acpi_cpufreq.c         |  33 ++++-----
 lib/power/power_cppc_cpufreq.c         |  25 +++----
 lib/power/power_pstate_cpufreq.c       |  31 +++++----
 lib/rcu/rte_rcu_qsbr.c                 |  48 ++++++-------
 lib/rcu/rte_rcu_qsbr.h                 |  68 +++++++++---------
 lib/ring/rte_ring_c11_pvt.h            |  47 +++++++------
 lib/ring/rte_ring_core.h               |  12 ++--
 lib/ring/rte_ring_generic_pvt.h        |  16 +++--
 lib/ring/rte_ring_hts_elem_pvt.h       |  22 +++---
 lib/ring/rte_ring_peek_elem_pvt.h      |   6 +-
 lib/ring/rte_ring_rts_elem_pvt.h       |  27 ++++----
 lib/stack/rte_stack.h                  |   2 +-
 lib/stack/rte_stack_lf_c11.h           |  24 +++----
 lib/stack/rte_stack_lf_generic.h       |  18 ++---
 lib/telemetry/telemetry.c              |  18 ++---
 lib/timer/rte_timer.c                  |  50 +++++++-------
 lib/timer/rte_timer.h                  |   6 +-
 lib/vhost/vdpa.c                       |   3 +-
 lib/vhost/vhost.c                      |  42 ++++++------
 lib/vhost/vhost.h                      |  39 ++++++-----
 lib/vhost/vhost_user.c                 |   6 +-
 lib/vhost/virtio_net.c                 |  58 +++++++++-------
 lib/vhost/virtio_net_ctrl.c            |   6 +-
 65 files changed, 684 insertions(+), 653 deletions(-)
  

Comments

David Marchand Oct. 26, 2023, 1:47 p.m. UTC | #1
On Thu, Oct 26, 2023 at 2:32 AM Tyler Retzlaff
<roretzla@linux.microsoft.com> wrote:
>
> Replace the use of gcc builtin __atomic_xxx intrinsics with
> corresponding rte_atomic_xxx optional stdatomic API.
>
> v3:
>   * add missing atomic specification on head variable
>     in struct rte_ring_headtail
>   * adapt to use rte_atomic_xxx stdatomic API in rte_ring_c11_pvt.h
>   * split comma operator statement into 2 statements
>
> v2:
>   * add #include <rte_stdatomic.h> to rte_mbuf_core.h
>   * remove first two patches which were fixes that have
>     been merged in another series
>
> Tyler Retzlaff (19):
>   power: use rte optional stdatomic API
>   bbdev: use rte optional stdatomic API
>   eal: use rte optional stdatomic API
>   eventdev: use rte optional stdatomic API
>   gpudev: use rte optional stdatomic API
>   ipsec: use rte optional stdatomic API
>   mbuf: use rte optional stdatomic API
>   mempool: use rte optional stdatomic API
>   rcu: use rte optional stdatomic API
>   pdump: use rte optional stdatomic API
>   stack: use rte optional stdatomic API
>   telemetry: use rte optional stdatomic API
>   vhost: use rte optional stdatomic API
>   cryptodev: use rte optional stdatomic API
>   distributor: use rte optional stdatomic API
>   ethdev: use rte optional stdatomic API
>   hash: use rte optional stdatomic API
>   timer: use rte optional stdatomic API
>   ring: use rte optional stdatomic API
>
>  drivers/event/cnxk/cnxk_tim_worker.h   |   4 +-
>  drivers/net/mlx5/mlx5_hws_cnt.h        |   4 +-
>  lib/bbdev/rte_bbdev.c                  |   6 +-
>  lib/bbdev/rte_bbdev.h                  |   2 +-
>  lib/cryptodev/rte_cryptodev.c          |  22 +++---
>  lib/cryptodev/rte_cryptodev.h          |  16 ++---
>  lib/distributor/distributor_private.h  |   4 +-
>  lib/distributor/rte_distributor.c      |  54 +++++++--------
>  lib/eal/common/eal_common_launch.c     |  10 +--
>  lib/eal/common/eal_common_mcfg.c       |   2 +-
>  lib/eal/common/eal_common_proc.c       |  14 ++--
>  lib/eal/common/eal_common_thread.c     |  26 +++----
>  lib/eal/common/eal_common_trace.c      |   8 +--
>  lib/eal/common/eal_common_trace_ctf.c  |   4 +-
>  lib/eal/common/eal_memcfg.h            |   2 +-
>  lib/eal/common/eal_private.h           |   4 +-
>  lib/eal/common/eal_trace.h             |   4 +-
>  lib/eal/common/rte_service.c           | 122 ++++++++++++++++-----------------
>  lib/eal/freebsd/eal.c                  |  20 +++---
>  lib/eal/include/rte_epoll.h            |   3 +-
>  lib/eal/linux/eal.c                    |  26 +++----
>  lib/eal/linux/eal_interrupts.c         |  42 ++++++------
>  lib/eal/ppc/include/rte_atomic.h       |   6 +-
>  lib/eal/windows/rte_thread.c           |   8 ++-
>  lib/ethdev/ethdev_driver.h             |  16 ++---
>  lib/ethdev/ethdev_private.c            |   6 +-
>  lib/ethdev/rte_ethdev.c                |  24 +++----
>  lib/ethdev/rte_ethdev.h                |  16 ++---
>  lib/ethdev/rte_ethdev_core.h           |   2 +-
>  lib/eventdev/rte_event_timer_adapter.c |  66 +++++++++---------
>  lib/eventdev/rte_event_timer_adapter.h |   2 +-
>  lib/gpudev/gpudev.c                    |   6 +-
>  lib/gpudev/gpudev_driver.h             |   2 +-
>  lib/hash/rte_cuckoo_hash.c             | 116 +++++++++++++++----------------
>  lib/hash/rte_cuckoo_hash.h             |   6 +-
>  lib/ipsec/ipsec_sqn.h                  |   2 +-
>  lib/ipsec/sa.h                         |   2 +-
>  lib/mbuf/rte_mbuf.h                    |  20 +++---
>  lib/mbuf/rte_mbuf_core.h               |   5 +-
>  lib/mempool/rte_mempool.h              |   4 +-
>  lib/pdump/rte_pdump.c                  |  14 ++--
>  lib/pdump/rte_pdump.h                  |   8 +--
>  lib/power/power_acpi_cpufreq.c         |  33 ++++-----
>  lib/power/power_cppc_cpufreq.c         |  25 +++----
>  lib/power/power_pstate_cpufreq.c       |  31 +++++----
>  lib/rcu/rte_rcu_qsbr.c                 |  48 ++++++-------
>  lib/rcu/rte_rcu_qsbr.h                 |  68 +++++++++---------
>  lib/ring/rte_ring_c11_pvt.h            |  47 +++++++------
>  lib/ring/rte_ring_core.h               |  12 ++--
>  lib/ring/rte_ring_generic_pvt.h        |  16 +++--
>  lib/ring/rte_ring_hts_elem_pvt.h       |  22 +++---
>  lib/ring/rte_ring_peek_elem_pvt.h      |   6 +-
>  lib/ring/rte_ring_rts_elem_pvt.h       |  27 ++++----
>  lib/stack/rte_stack.h                  |   2 +-
>  lib/stack/rte_stack_lf_c11.h           |  24 +++----
>  lib/stack/rte_stack_lf_generic.h       |  18 ++---
>  lib/telemetry/telemetry.c              |  18 ++---
>  lib/timer/rte_timer.c                  |  50 +++++++-------
>  lib/timer/rte_timer.h                  |   6 +-
>  lib/vhost/vdpa.c                       |   3 +-
>  lib/vhost/vhost.c                      |  42 ++++++------
>  lib/vhost/vhost.h                      |  39 ++++++-----
>  lib/vhost/vhost_user.c                 |   6 +-
>  lib/vhost/virtio_net.c                 |  58 +++++++++-------
>  lib/vhost/virtio_net_ctrl.c            |   6 +-
>  65 files changed, 684 insertions(+), 653 deletions(-)

The conversion looks correct to me and the CI looks happy.

There are a few acks (from Konstantin) that are missing in the v3 (but
I can fix this myself, no need for a new revision just for this).
For the series,
Acked-by: David Marchand <david.marchand@redhat.com>
  
David Marchand Oct. 30, 2023, 3:34 p.m. UTC | #2
On Thu, Oct 26, 2023 at 2:32 AM Tyler Retzlaff
<roretzla@linux.microsoft.com> wrote:
>
> Replace the use of gcc builtin __atomic_xxx intrinsics with
> corresponding rte_atomic_xxx optional stdatomic API.
>
> v3:
>   * add missing atomic specification on head variable
>     in struct rte_ring_headtail
>   * adapt to use rte_atomic_xxx stdatomic API in rte_ring_c11_pvt.h
>   * split comma operator statement into 2 statements
>
> v2:
>   * add #include <rte_stdatomic.h> to rte_mbuf_core.h
>   * remove first two patches which were fixes that have
>     been merged in another series
>
> Tyler Retzlaff (19):
>   power: use rte optional stdatomic API
>   bbdev: use rte optional stdatomic API
>   eal: use rte optional stdatomic API
>   eventdev: use rte optional stdatomic API
>   gpudev: use rte optional stdatomic API
>   ipsec: use rte optional stdatomic API
>   mbuf: use rte optional stdatomic API
>   mempool: use rte optional stdatomic API
>   rcu: use rte optional stdatomic API
>   pdump: use rte optional stdatomic API
>   stack: use rte optional stdatomic API
>   telemetry: use rte optional stdatomic API
>   vhost: use rte optional stdatomic API
>   cryptodev: use rte optional stdatomic API
>   distributor: use rte optional stdatomic API
>   ethdev: use rte optional stdatomic API
>   hash: use rte optional stdatomic API
>   timer: use rte optional stdatomic API
>   ring: use rte optional stdatomic API
>
>  drivers/event/cnxk/cnxk_tim_worker.h   |   4 +-
>  drivers/net/mlx5/mlx5_hws_cnt.h        |   4 +-
>  lib/bbdev/rte_bbdev.c                  |   6 +-
>  lib/bbdev/rte_bbdev.h                  |   2 +-
>  lib/cryptodev/rte_cryptodev.c          |  22 +++---
>  lib/cryptodev/rte_cryptodev.h          |  16 ++---
>  lib/distributor/distributor_private.h  |   4 +-
>  lib/distributor/rte_distributor.c      |  54 +++++++--------
>  lib/eal/common/eal_common_launch.c     |  10 +--
>  lib/eal/common/eal_common_mcfg.c       |   2 +-
>  lib/eal/common/eal_common_proc.c       |  14 ++--
>  lib/eal/common/eal_common_thread.c     |  26 +++----
>  lib/eal/common/eal_common_trace.c      |   8 +--
>  lib/eal/common/eal_common_trace_ctf.c  |   4 +-
>  lib/eal/common/eal_memcfg.h            |   2 +-
>  lib/eal/common/eal_private.h           |   4 +-
>  lib/eal/common/eal_trace.h             |   4 +-
>  lib/eal/common/rte_service.c           | 122 ++++++++++++++++-----------------
>  lib/eal/freebsd/eal.c                  |  20 +++---
>  lib/eal/include/rte_epoll.h            |   3 +-
>  lib/eal/linux/eal.c                    |  26 +++----
>  lib/eal/linux/eal_interrupts.c         |  42 ++++++------
>  lib/eal/ppc/include/rte_atomic.h       |   6 +-
>  lib/eal/windows/rte_thread.c           |   8 ++-
>  lib/ethdev/ethdev_driver.h             |  16 ++---
>  lib/ethdev/ethdev_private.c            |   6 +-
>  lib/ethdev/rte_ethdev.c                |  24 +++----
>  lib/ethdev/rte_ethdev.h                |  16 ++---
>  lib/ethdev/rte_ethdev_core.h           |   2 +-
>  lib/eventdev/rte_event_timer_adapter.c |  66 +++++++++---------
>  lib/eventdev/rte_event_timer_adapter.h |   2 +-
>  lib/gpudev/gpudev.c                    |   6 +-
>  lib/gpudev/gpudev_driver.h             |   2 +-
>  lib/hash/rte_cuckoo_hash.c             | 116 +++++++++++++++----------------
>  lib/hash/rte_cuckoo_hash.h             |   6 +-
>  lib/ipsec/ipsec_sqn.h                  |   2 +-
>  lib/ipsec/sa.h                         |   2 +-
>  lib/mbuf/rte_mbuf.h                    |  20 +++---
>  lib/mbuf/rte_mbuf_core.h               |   5 +-
>  lib/mempool/rte_mempool.h              |   4 +-
>  lib/pdump/rte_pdump.c                  |  14 ++--
>  lib/pdump/rte_pdump.h                  |   8 +--
>  lib/power/power_acpi_cpufreq.c         |  33 ++++-----
>  lib/power/power_cppc_cpufreq.c         |  25 +++----
>  lib/power/power_pstate_cpufreq.c       |  31 +++++----
>  lib/rcu/rte_rcu_qsbr.c                 |  48 ++++++-------
>  lib/rcu/rte_rcu_qsbr.h                 |  68 +++++++++---------
>  lib/ring/rte_ring_c11_pvt.h            |  47 +++++++------
>  lib/ring/rte_ring_core.h               |  12 ++--
>  lib/ring/rte_ring_generic_pvt.h        |  16 +++--
>  lib/ring/rte_ring_hts_elem_pvt.h       |  22 +++---
>  lib/ring/rte_ring_peek_elem_pvt.h      |   6 +-
>  lib/ring/rte_ring_rts_elem_pvt.h       |  27 ++++----
>  lib/stack/rte_stack.h                  |   2 +-
>  lib/stack/rte_stack_lf_c11.h           |  24 +++----
>  lib/stack/rte_stack_lf_generic.h       |  18 ++---
>  lib/telemetry/telemetry.c              |  18 ++---
>  lib/timer/rte_timer.c                  |  50 +++++++-------
>  lib/timer/rte_timer.h                  |   6 +-
>  lib/vhost/vdpa.c                       |   3 +-
>  lib/vhost/vhost.c                      |  42 ++++++------
>  lib/vhost/vhost.h                      |  39 ++++++-----
>  lib/vhost/vhost_user.c                 |   6 +-
>  lib/vhost/virtio_net.c                 |  58 +++++++++-------
>  lib/vhost/virtio_net_ctrl.c            |   6 +-
>  65 files changed, 684 insertions(+), 653 deletions(-)
>

Series applied, thanks.