[00/83] move alignment attribute on types

Message ID 1710949096-5786-1-git-send-email-roretzla@linux.microsoft.com (mailing list archive)
Headers
Series move alignment attribute on types |

Message

Tyler Retzlaff March 20, 2024, 3:36 p.m. UTC
  The current location used for __rte_aligned(a) for alignment of types
and variables is not compatible with MSVC. There is only a single
location accepted by both toolchains.

After having established this as the conventional standard for lib/*
this series is intended to convert the remainder of the source tree to
use the same location for __rte_aligned(a) and alignas(a) for
consistency.

Tyler Retzlaff (83):
  examples: move alignment attribute on types
  net/ark: move alignment attribute on types
  net/avp: move alignment attribute on types
  net/axgbe: move alignment attribute on types
  net/bnxt: move alignment attribute on types
  net/bonding: move alignment attribute on types
  net/cxgbe: move alignment attribute on types
  net/e1000: move alignment attribute on types
  net/ena: move alignment attribute on types
  net/enic: move alignment attribute on types
  net/fm10k: move alignment attribute on types
  net/hinic: move alignment attribute on types
  net/hns3: move alignment attribute on types
  net/i40e: move alignment attribute on types
  net/iavf: move alignment attribute on types
  net/ice: move alignment attribute on types
  net/igc: move alignment attribute on types
  net/ionic: move alignment attribute on types
  net/ixgbe: move alignment attribute on types
  net/memif: move alignment attribute on types
  net/mlx5: move alignment attribute on types
  net/mlx4: move alignment attribute on types
  net/mvpp2: move alignment attribute on types
  net/netvsc: move alignment attribute on types
  net/nfp: move alignment attribute on types
  net/ngbe: move alignment attribute on types
  net/octeontx: move alignment attribute on types
  net/pfe: move alignment attribute on types
  net/qede: move alignment attribute on types
  net/softnic: move alignment attribute on types
  net/tap: move alignment attribute on types
  net/thunderx: move alignment attribute on types
  net/txgbe: move alignment attribute on types
  net/virtio: move alignment attribute on types
  vdpa/mlx5: move alignment attribute on types
  regex/cn9k: move alignment attribute on types
  raw/ntb: move alignment attribute on types
  ml/cnxk: move alignment attribute on types
  mempool/cnxk: move alignment attribute on types
  event/sw: move alignment attribute on types
  event/skeleton: move alignment attribute on types
  event/opdl: move alignment attribute on types
  event/octeontx: move alignment attribute on types
  event/dsw: move alignment attribute on types
  event/dlb2: move alignment attribute on types
  event/cnxk: move alignment attribute on types
  dma/skeleton: move alignment attribute on types
  dma/ioat: move alignment attribute on types
  dma/idxd: move alignment attribute on types
  crypto/uadk: move alignment attribute on types
  crypto/scheduler: move alignment attribute on types
  crypto/qat: move alignment attribute on types
  crypto/openssl: move alignment attribute on types
  crypto/octeontx: move alignment attribute on types
  crypto/null: move alignment attribute on types
  crypto/mvsam: move alignment attribute on types
  crypto/mlx5: move alignment attribute on types
  crypto/ipsec_mb: move alignment attribute on types
  crypto/cnxk: move alignment attribute on types
  crypto/ccp: move alignment attribute on types
  crypto/caam_jr: move alignment attribute on types
  crypto/bcmfs: move alignment attribute on types
  crypto/armv8: move alignment attribute on types
  compress/zlib: move alignment attribute on types
  compress/qat: move alignment attribute on types
  compress/octeontx: move alignment attribute on types
  compress/nitrox: move alignment attribute on types
  compress/isal: move alignment attribute on types
  common/qat: move alignment attribute on types
  common/mlx5: move alignment attribute on types
  common/idpf: move alignment attribute on types
  common/cpt: move alignment attribute on types
  bus/fslmc: move alignment attribute on types
  baseband/turbo_sw: move alignment attribute on types
  baseband/null: move alignment attribute on types
  app/test: move alignment attribute on types
  app/test-pipeline: move alignment attribute on types
  app/test-mldev: move alignment attribute on types
  app/test-flow-perf: move alignment attribute on types
  app/test-eventdev: move alignment attribute on types
  app/pdump: move alignment attribute on types
  app/graph: move alignment attribute on types
  bus/dpaa: move alignment attribute on types

 app/graph/ethdev_rx.h                              |  4 +-
 app/graph/ethdev_rx_priv.h                         |  4 +-
 app/pdump/main.c                                   |  4 +-
 app/test-eventdev/test_order_common.h              |  4 +-
 app/test-eventdev/test_perf_common.h               | 24 +++++-----
 app/test-eventdev/test_pipeline_common.h           | 18 ++++----
 app/test-flow-perf/actions_gen.c                   | 51 ++++++++++++----------
 app/test-flow-perf/items_gen.c                     | 22 +++++-----
 app/test-flow-perf/main.c                          |  8 ++--
 app/test-mldev/test_device_ops.h                   |  4 +-
 app/test-mldev/test_inference_common.h             |  4 +-
 app/test-mldev/test_model_ops.h                    |  4 +-
 app/test-pipeline/main.h                           |  4 +-
 app/test/test_cryptodev_aead_test_vectors.h        |  6 +--
 app/test/test_cryptodev_blockcipher.h              |  2 +-
 app/test/test_cryptodev_kasumi_test_vectors.h      |  2 +-
 app/test/test_cryptodev_mixed_test_vectors.h       |  2 +-
 .../test_cryptodev_security_docsis_test_vectors.h  |  2 +-
 app/test/test_cryptodev_snow3g_test_vectors.h      |  2 +-
 app/test/test_cryptodev_zuc_test_vectors.h         |  2 +-
 app/test/test_distributor.c                        | 12 ++---
 app/test/test_distributor_perf.c                   |  6 +--
 app/test/test_mempool_perf.c                       |  6 +--
 app/test/test_pmd_perf.c                           |  4 +-
 app/test/test_ring_stress_impl.h                   | 10 ++---
 app/test/test_rwlock.c                             |  8 ++--
 app/test/test_seqlock.c                            |  8 ++--
 app/test/test_ticketlock.c                         |  4 +-
 app/test/test_trace_perf.c                         |  8 ++--
 drivers/baseband/null/bbdev_null.c                 |  4 +-
 drivers/baseband/turbo_sw/bbdev_turbo_software.c   |  4 +-
 drivers/bus/dpaa/base/qbman/qman.c                 |  3 +-
 drivers/bus/dpaa/include/fsl_bman.h                |  4 +-
 drivers/bus/dpaa/include/fsl_qman.h                | 20 ++++-----
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h            |  4 +-
 drivers/common/cpt/cpt_common.h                    |  4 +-
 drivers/common/idpf/idpf_common_device.h           |  2 +-
 drivers/common/mlx5/linux/mlx5_glue.c              |  2 +-
 drivers/common/mlx5/linux/mlx5_nl.c                |  2 +-
 drivers/common/mlx5/mlx5_common_mr.h               |  4 +-
 drivers/common/mlx5/mlx5_common_utils.h            | 12 ++---
 drivers/common/mlx5/mlx5_prm.h                     |  4 +-
 drivers/common/qat/qat_adf/icp_qat_hw.h            |  8 ++--
 drivers/common/qat/qat_common.h                    |  4 +-
 drivers/common/qat/qat_qp.h                        |  6 +--
 drivers/compress/isal/isal_compress_pmd_private.h  |  8 ++--
 drivers/compress/nitrox/nitrox_comp_reqmgr.c       |  2 +-
 drivers/compress/octeontx/otx_zip.h                | 16 +++----
 drivers/compress/qat/qat_comp.h                    |  4 +-
 drivers/compress/zlib/zlib_pmd_private.h           | 12 ++---
 drivers/crypto/armv8/armv8_pmd_private.h           | 14 +++---
 drivers/crypto/bcmfs/bcmfs_qp.h                    |  4 +-
 drivers/crypto/bcmfs/bcmfs_sym_session.h           |  4 +-
 drivers/crypto/caam_jr/caam_jr_desc.h              |  8 ++--
 drivers/crypto/ccp/ccp_crypto.h                    |  4 +-
 drivers/crypto/ccp/ccp_dev.h                       |  8 ++--
 drivers/crypto/ccp/ccp_pmd_private.h               |  8 ++--
 drivers/crypto/cnxk/cn10k_cryptodev_sec.h          |  4 +-
 drivers/crypto/cnxk/cn10k_ipsec.h                  |  4 +-
 drivers/crypto/cnxk/cn10k_tls.h                    |  4 +-
 drivers/crypto/cnxk/cn9k_cryptodev_ops.c           |  2 +-
 drivers/crypto/cnxk/cn9k_ipsec.h                   |  8 ++--
 drivers/crypto/cnxk/cnxk_cryptodev_ops.h           |  4 +-
 drivers/crypto/cnxk/cnxk_se.h                      |  4 +-
 drivers/crypto/ipsec_mb/pmd_aesni_mb.c             |  4 +-
 drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h        | 24 +++++-----
 drivers/crypto/ipsec_mb/pmd_chacha_poly_priv.h     |  4 +-
 drivers/crypto/ipsec_mb/pmd_kasumi_priv.h          |  4 +-
 drivers/crypto/ipsec_mb/pmd_snow3g_priv.h          |  4 +-
 drivers/crypto/ipsec_mb/pmd_zuc_priv.h             |  4 +-
 drivers/crypto/mlx5/mlx5_crypto.h                  |  4 +-
 drivers/crypto/mvsam/mrvl_pmd_private.h            | 12 ++---
 drivers/crypto/mvsam/rte_mrvl_pmd.c                | 12 +++--
 drivers/crypto/null/null_crypto_pmd_private.h      |  8 ++--
 drivers/crypto/octeontx/otx_cryptodev_hw_access.h  |  4 +-
 drivers/crypto/openssl/openssl_pmd_private.h       | 12 ++---
 drivers/crypto/qat/qat_asym.h                      | 15 +++----
 drivers/crypto/qat/qat_sym.h                       |  8 ++--
 drivers/crypto/qat/qat_sym_session.h               | 10 ++---
 .../crypto/scheduler/scheduler_pkt_size_distr.c    |  4 +-
 drivers/crypto/scheduler/scheduler_pmd_private.h   |  8 ++--
 drivers/crypto/uadk/uadk_crypto_pmd_private.h      | 12 ++---
 drivers/dma/idxd/idxd_hw_defs.h                    | 38 ++++++++--------
 drivers/dma/ioat/ioat_internal.h                   |  4 +-
 drivers/dma/skeleton/skeleton_dmadev.h             |  4 +-
 drivers/event/cnxk/cn10k_eventdev.h                |  8 ++--
 drivers/event/cnxk/cnxk_eventdev.h                 | 24 +++++-----
 drivers/event/cnxk/cnxk_tim_evdev.h                |  4 +-
 drivers/event/cnxk/cnxk_tim_worker.c               |  2 +-
 drivers/event/dlb2/dlb2_priv.h                     | 16 +++----
 drivers/event/dsw/dsw_evdev.h                      | 20 ++++-----
 drivers/event/octeontx/ssovf_evdev.h               |  8 ++--
 drivers/event/octeontx/timvf_evdev.h               |  8 ++--
 drivers/event/octeontx/timvf_worker.c              |  2 +-
 drivers/event/opdl/opdl_evdev.h                    |  6 +--
 drivers/event/opdl/opdl_ring.c                     | 19 ++++----
 drivers/event/skeleton/skeleton_eventdev.h         |  8 ++--
 drivers/event/sw/event_ring.h                      |  2 +-
 drivers/event/sw/iq_chunk.h                        |  4 +-
 drivers/event/sw/sw_evdev.h                        | 18 ++++----
 drivers/mempool/cnxk/cn10k_mempool_ops.c           |  4 +-
 drivers/ml/cnxk/cnxk_ml_ops.h                      |  4 +-
 drivers/net/ark/ark_ethdev_rx.c                    |  6 +--
 drivers/net/ark/ark_ethdev_tx.c                    |  6 +--
 drivers/net/avp/avp_ethdev.c                       |  8 ++--
 drivers/net/avp/rte_avp_common.h                   |  4 +-
 drivers/net/axgbe/axgbe_rxtx.h                     |  8 ++--
 drivers/net/bnxt/bnxt_rxr.c                        |  2 +-
 drivers/net/bonding/rte_eth_bond_8023ad.h          | 28 ++++++------
 drivers/net/cxgbe/base/adapter.h                   | 14 +++---
 drivers/net/cxgbe/cxgbe_ofld.h                     |  2 +-
 drivers/net/e1000/igb_rxtx.c                       |  4 +-
 drivers/net/ena/ena_ethdev.h                       | 17 ++++----
 drivers/net/enic/enic_rxtx_common.h                |  2 +-
 drivers/net/fm10k/fm10k_rxtx.c                     |  5 +--
 drivers/net/hinic/hinic_pmd_rx.h                   |  8 ++--
 drivers/net/hns3/hns3_ethdev.h                     |  4 +-
 drivers/net/hns3/hns3_fdir.c                       |  4 +-
 drivers/net/hns3/hns3_rxtx.h                       |  4 +-
 drivers/net/i40e/i40e_ethdev.h                     |  4 +-
 drivers/net/i40e/i40e_rxtx.h                       |  2 +-
 drivers/net/iavf/iavf.h                            |  2 +-
 drivers/net/iavf/iavf_rxtx.c                       |  3 +-
 drivers/net/ice/ice_ethdev.h                       |  2 +-
 drivers/net/ice/ice_rxtx.c                         |  3 +-
 drivers/net/igc/igc_txrx.c                         |  4 +-
 drivers/net/ionic/ionic_lif.h                      |  2 +-
 drivers/net/ionic/ionic_rxtx.c                     |  6 +--
 drivers/net/ixgbe/ixgbe_ipsec.h                    |  4 +-
 drivers/net/ixgbe/ixgbe_rxtx.c                     | 10 ++---
 drivers/net/memif/memif.h                          |  2 +-
 drivers/net/mlx4/mlx4_rxtx.c                       |  2 +-
 drivers/net/mlx5/hws/mlx5dr_send.h                 |  4 +-
 drivers/net/mlx5/mlx5.h                            |  6 +--
 drivers/net/mlx5/mlx5_flow.h                       |  4 +-
 drivers/net/mlx5/mlx5_hws_cnt.h                    | 14 +++---
 drivers/net/mlx5/mlx5_rx.h                         |  4 +-
 drivers/net/mlx5/mlx5_rxtx.c                       |  6 +--
 drivers/net/mlx5/mlx5_tx.h                         | 10 ++---
 drivers/net/mlx5/mlx5_utils.h                      |  2 +-
 drivers/net/mvpp2/mrvl_ethdev.h                    |  4 +-
 drivers/net/netvsc/hn_var.h                        |  4 +-
 drivers/net/nfp/flower/nfp_flower_flow.c           |  4 +-
 drivers/net/nfp/nfp_ipsec.h                        |  4 +-
 drivers/net/nfp/nfp_rxtx.h                         |  8 ++--
 drivers/net/ngbe/ngbe_ptypes.c                     |  2 +-
 drivers/net/ngbe/ngbe_rxtx.c                       |  2 +-
 drivers/net/octeontx/octeontx_ethdev.c             |  4 +-
 drivers/net/octeontx/octeontx_ethdev.h             | 12 ++---
 drivers/net/octeontx/octeontx_rxtx.h               |  2 +-
 drivers/net/pfe/base/pfe.h                         |  4 +-
 drivers/net/qede/qede_rxtx.c                       | 14 +++---
 drivers/net/softnic/rte_eth_softnic_internals.h    |  4 +-
 drivers/net/tap/tap_bpf.h                          |  4 +-
 drivers/net/thunderx/nicvf_rxtx.c                  |  8 ++--
 drivers/net/thunderx/nicvf_struct.h                | 16 +++----
 drivers/net/txgbe/txgbe_ipsec.h                    |  4 +-
 drivers/net/txgbe/txgbe_ptypes.c                   | 10 ++---
 drivers/net/txgbe/txgbe_rxtx.c                     |  2 +-
 drivers/net/virtio/virtqueue.h                     |  4 +-
 drivers/raw/ntb/ntb.h                              |  6 +--
 drivers/regex/cn9k/cn9k_regexdev.h                 |  4 +-
 drivers/vdpa/mlx5/mlx5_vdpa.h                      |  4 +-
 examples/bbdev_app/main.c                          |  8 ++--
 examples/bond/main.c                               |  2 +-
 examples/distributor/main.c                        | 32 +++++++-------
 examples/eventdev_pipeline/pipeline_common.h       |  8 ++--
 examples/ip_fragmentation/main.c                   |  4 +-
 examples/ip_pipeline/thread.c                      |  4 +-
 examples/ip_reassembly/main.c                      |  4 +-
 examples/ipsec-secgw/ipsec-secgw.c                 |  4 +-
 examples/ipsec-secgw/ipsec-secgw.h                 |  8 ++--
 examples/ipsec-secgw/ipsec.h                       | 22 +++++-----
 examples/ipsec-secgw/ipsec_worker.h                |  4 +-
 examples/ipv4_multicast/main.c                     |  4 +-
 examples/l2fwd-crypto/main.c                       | 12 ++---
 examples/l2fwd-event/l2fwd_common.h                |  8 ++--
 examples/l2fwd-event/l2fwd_poll.h                  |  4 +-
 examples/l2fwd-jobstats/main.c                     |  8 ++--
 examples/l2fwd-keepalive/main.c                    |  8 ++--
 examples/l2fwd-macsec/main.c                       | 12 ++---
 examples/l2fwd/main.c                              | 12 ++---
 examples/l3fwd-graph/main.c                        |  8 ++--
 examples/l3fwd-power/main.c                        | 24 +++++-----
 examples/l3fwd-power/main.h                        |  4 +-
 examples/l3fwd-power/perf_core.c                   |  4 +-
 examples/l3fwd/l3fwd.h                             |  8 ++--
 examples/l3fwd/l3fwd_em.c                          |  4 +-
 examples/l3fwd/main.c                              |  4 +-
 examples/link_status_interrupt/main.c              |  8 ++--
 .../multi_process/client_server_mp/shared/common.h |  8 ++--
 examples/multi_process/symmetric_mp/main.c         |  4 +-
 examples/ntb/ntb_fwd.c                             |  4 +-
 examples/packet_ordering/main.c                    | 16 +++----
 examples/pipeline/thread.c                         |  4 +-
 examples/qos_sched/app_thread.c                    |  2 +-
 examples/qos_sched/main.h                          |  4 +-
 examples/server_node_efd/shared/common.h           | 12 ++---
 examples/vhost/main.h                              |  4 +-
 examples/vhost_blk/vhost_blk.h                     |  4 +-
 examples/vhost_crypto/main.c                       |  4 +-
 examples/vm_power_manager/power_manager.c          |  4 +-
 202 files changed, 726 insertions(+), 732 deletions(-)
  

Comments

Bruce Richardson March 20, 2024, 3:50 p.m. UTC | #1
On Wed, Mar 20, 2024 at 08:36:53AM -0700, Tyler Retzlaff wrote:
> The current location used for __rte_aligned(a) for alignment of types
> and variables is not compatible with MSVC. There is only a single
> location accepted by both toolchains.
> 
> After having established this as the conventional standard for lib/*
> this series is intended to convert the remainder of the source tree to
> use the same location for __rte_aligned(a) and alignas(a) for
> consistency.
> 
No objection to this change. Is there a checkpatch rule available to
enforce this going forward or how can we avoid future introduction of
macros in the wrong place?

Series-Acked-by: Bruce Richardson <bruce.richardson@intel.com>
  
David Marchand March 20, 2024, 4 p.m. UTC | #2
On Wed, Mar 20, 2024 at 4:56 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Wed, Mar 20, 2024 at 08:36:53AM -0700, Tyler Retzlaff wrote:
> > The current location used for __rte_aligned(a) for alignment of types
> > and variables is not compatible with MSVC. There is only a single
> > location accepted by both toolchains.
> >
> > After having established this as the conventional standard for lib/*
> > this series is intended to convert the remainder of the source tree to
> > use the same location for __rte_aligned(a) and alignas(a) for
> > consistency.
> >
> No objection to this change. Is there a checkpatch rule available to
> enforce this going forward or how can we avoid future introduction of
> macros in the wrong place?

We added one in v24.03, it is not perfect, but it should help catch most.
https://git.dpdk.org/dpdk/commit/devtools?id=c6552d9a8deffa448de2d5e2e726f50508c1efd2
  
Morten Brørup March 20, 2024, 5:40 p.m. UTC | #3
> From: Bruce Richardson [mailto:bruce.richardson@intel.com]
> Sent: Wednesday, 20 March 2024 16.51
> 
> On Wed, Mar 20, 2024 at 08:36:53AM -0700, Tyler Retzlaff wrote:
> > The current location used for __rte_aligned(a) for alignment of types
> > and variables is not compatible with MSVC. There is only a single
> > location accepted by both toolchains.
> >
> > After having established this as the conventional standard for lib/*
> > this series is intended to convert the remainder of the source tree to
> > use the same location for __rte_aligned(a) and alignas(a) for
> > consistency.
> >
> No objection to this change. Is there a checkpatch rule available to
> enforce this going forward or how can we avoid future introduction of
> macros in the wrong place?
> 
> Series-Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Series-Acked-by: Morten Brørup <mb@smartsharesystems.com>
  
David Marchand March 20, 2024, 5:41 p.m. UTC | #4
Hello Tyler,

On Wed, Mar 20, 2024 at 4:38 PM Tyler Retzlaff
<roretzla@linux.microsoft.com> wrote:
>
> The current location used for __rte_aligned(a) for alignment of types
> and variables is not compatible with MSVC. There is only a single
> location accepted by both toolchains.
>
> After having established this as the conventional standard for lib/*
> this series is intended to convert the remainder of the source tree to
> use the same location for __rte_aligned(a) and alignas(a) for
> consistency.

The series looks good to me.

We may have some misses because of drivers wrapping in their own
stuff, but I am not sure those are fixable (this touches some base
drivers..)
drivers/common/cnxk/roc_platform.h:#define __plt_aligned        __rte_aligned
drivers/common/dpaax/compat.h:#define ____cacheline_aligned
__rte_aligned(L1_CACHE_BYTES)
drivers/common/cnxk/roc_platform.h:#define __plt_cache_aligned
__rte_cache_aligned
drivers/net/ena/base/ena_plat_dpdk.h:#define ____cacheline_aligned
__rte_cache_aligned
drivers/net/gve/base/gve_osdep.h:#define ____cacheline_aligned
__rte_cache_aligned

I also noticed memif:
drivers/net/memif/memif.h:typedef struct __rte_packed __rte_aligned(128)
  
Tyler Retzlaff March 20, 2024, 7:12 p.m. UTC | #5
On Wed, Mar 20, 2024 at 06:41:30PM +0100, David Marchand wrote:
> Hello Tyler,
> 
> On Wed, Mar 20, 2024 at 4:38 PM Tyler Retzlaff
> <roretzla@linux.microsoft.com> wrote:
> >
> > The current location used for __rte_aligned(a) for alignment of types
> > and variables is not compatible with MSVC. There is only a single
> > location accepted by both toolchains.
> >
> > After having established this as the conventional standard for lib/*
> > this series is intended to convert the remainder of the source tree to
> > use the same location for __rte_aligned(a) and alignas(a) for
> > consistency.
> 
> The series looks good to me.
> 
> We may have some misses because of drivers wrapping in their own
> stuff, but I am not sure those are fixable (this touches some base
> drivers..)
> drivers/common/cnxk/roc_platform.h:#define __plt_aligned        __rte_aligned
> drivers/common/dpaax/compat.h:#define ____cacheline_aligned
> __rte_aligned(L1_CACHE_BYTES)
> drivers/common/cnxk/roc_platform.h:#define __plt_cache_aligned
> __rte_cache_aligned
> drivers/net/ena/base/ena_plat_dpdk.h:#define ____cacheline_aligned
> __rte_cache_aligned
> drivers/net/gve/base/gve_osdep.h:#define ____cacheline_aligned
> __rte_cache_aligned

Yes, I know about these and I made the call to leave them untouched for
now. The cnxk drivers aren't built on windows and i didn't want to
interfere with some out of tree abstraction they may be using for
testing.

> 
> I also noticed memif:
> drivers/net/memif/memif.h:typedef struct __rte_packed __rte_aligned(128)

This should be okay, I also have to address __rte_packed (series coming
soon).

So long as there are no objections I would propose this series merged as
soon as possible (after release) assuming CI doesn't identify anything
of concern. if there is follow up to do with cnxk/dpaax i'm happy to do
it as a separate series.

ty
  
Tyler Retzlaff April 2, 2024, 5:56 p.m. UTC | #6
ping, call for reviewers.

it's relatively straight forward since it follows the same series that
was applied in lib but still more eyes are appreciated.

thanks!

On Wed, Mar 20, 2024 at 08:36:53AM -0700, Tyler Retzlaff wrote:
> The current location used for __rte_aligned(a) for alignment of types
> and variables is not compatible with MSVC. There is only a single
> location accepted by both toolchains.
> 
> After having established this as the conventional standard for lib/*
> this series is intended to convert the remainder of the source tree to
> use the same location for __rte_aligned(a) and alignas(a) for
> consistency.
> 
> Tyler Retzlaff (83):
>   examples: move alignment attribute on types
>   net/ark: move alignment attribute on types
>   net/avp: move alignment attribute on types
>   net/axgbe: move alignment attribute on types
>   net/bnxt: move alignment attribute on types
>   net/bonding: move alignment attribute on types
>   net/cxgbe: move alignment attribute on types
>   net/e1000: move alignment attribute on types
>   net/ena: move alignment attribute on types
>   net/enic: move alignment attribute on types
>   net/fm10k: move alignment attribute on types
>   net/hinic: move alignment attribute on types
>   net/hns3: move alignment attribute on types
>   net/i40e: move alignment attribute on types
>   net/iavf: move alignment attribute on types
>   net/ice: move alignment attribute on types
>   net/igc: move alignment attribute on types
>   net/ionic: move alignment attribute on types
>   net/ixgbe: move alignment attribute on types
>   net/memif: move alignment attribute on types
>   net/mlx5: move alignment attribute on types
>   net/mlx4: move alignment attribute on types
>   net/mvpp2: move alignment attribute on types
>   net/netvsc: move alignment attribute on types
>   net/nfp: move alignment attribute on types
>   net/ngbe: move alignment attribute on types
>   net/octeontx: move alignment attribute on types
>   net/pfe: move alignment attribute on types
>   net/qede: move alignment attribute on types
>   net/softnic: move alignment attribute on types
>   net/tap: move alignment attribute on types
>   net/thunderx: move alignment attribute on types
>   net/txgbe: move alignment attribute on types
>   net/virtio: move alignment attribute on types
>   vdpa/mlx5: move alignment attribute on types
>   regex/cn9k: move alignment attribute on types
>   raw/ntb: move alignment attribute on types
>   ml/cnxk: move alignment attribute on types
>   mempool/cnxk: move alignment attribute on types
>   event/sw: move alignment attribute on types
>   event/skeleton: move alignment attribute on types
>   event/opdl: move alignment attribute on types
>   event/octeontx: move alignment attribute on types
>   event/dsw: move alignment attribute on types
>   event/dlb2: move alignment attribute on types
>   event/cnxk: move alignment attribute on types
>   dma/skeleton: move alignment attribute on types
>   dma/ioat: move alignment attribute on types
>   dma/idxd: move alignment attribute on types
>   crypto/uadk: move alignment attribute on types
>   crypto/scheduler: move alignment attribute on types
>   crypto/qat: move alignment attribute on types
>   crypto/openssl: move alignment attribute on types
>   crypto/octeontx: move alignment attribute on types
>   crypto/null: move alignment attribute on types
>   crypto/mvsam: move alignment attribute on types
>   crypto/mlx5: move alignment attribute on types
>   crypto/ipsec_mb: move alignment attribute on types
>   crypto/cnxk: move alignment attribute on types
>   crypto/ccp: move alignment attribute on types
>   crypto/caam_jr: move alignment attribute on types
>   crypto/bcmfs: move alignment attribute on types
>   crypto/armv8: move alignment attribute on types
>   compress/zlib: move alignment attribute on types
>   compress/qat: move alignment attribute on types
>   compress/octeontx: move alignment attribute on types
>   compress/nitrox: move alignment attribute on types
>   compress/isal: move alignment attribute on types
>   common/qat: move alignment attribute on types
>   common/mlx5: move alignment attribute on types
>   common/idpf: move alignment attribute on types
>   common/cpt: move alignment attribute on types
>   bus/fslmc: move alignment attribute on types
>   baseband/turbo_sw: move alignment attribute on types
>   baseband/null: move alignment attribute on types
>   app/test: move alignment attribute on types
>   app/test-pipeline: move alignment attribute on types
>   app/test-mldev: move alignment attribute on types
>   app/test-flow-perf: move alignment attribute on types
>   app/test-eventdev: move alignment attribute on types
>   app/pdump: move alignment attribute on types
>   app/graph: move alignment attribute on types
>   bus/dpaa: move alignment attribute on types
> 
>  app/graph/ethdev_rx.h                              |  4 +-
>  app/graph/ethdev_rx_priv.h                         |  4 +-
>  app/pdump/main.c                                   |  4 +-
>  app/test-eventdev/test_order_common.h              |  4 +-
>  app/test-eventdev/test_perf_common.h               | 24 +++++-----
>  app/test-eventdev/test_pipeline_common.h           | 18 ++++----
>  app/test-flow-perf/actions_gen.c                   | 51 ++++++++++++----------
>  app/test-flow-perf/items_gen.c                     | 22 +++++-----
>  app/test-flow-perf/main.c                          |  8 ++--
>  app/test-mldev/test_device_ops.h                   |  4 +-
>  app/test-mldev/test_inference_common.h             |  4 +-
>  app/test-mldev/test_model_ops.h                    |  4 +-
>  app/test-pipeline/main.h                           |  4 +-
>  app/test/test_cryptodev_aead_test_vectors.h        |  6 +--
>  app/test/test_cryptodev_blockcipher.h              |  2 +-
>  app/test/test_cryptodev_kasumi_test_vectors.h      |  2 +-
>  app/test/test_cryptodev_mixed_test_vectors.h       |  2 +-
>  .../test_cryptodev_security_docsis_test_vectors.h  |  2 +-
>  app/test/test_cryptodev_snow3g_test_vectors.h      |  2 +-
>  app/test/test_cryptodev_zuc_test_vectors.h         |  2 +-
>  app/test/test_distributor.c                        | 12 ++---
>  app/test/test_distributor_perf.c                   |  6 +--
>  app/test/test_mempool_perf.c                       |  6 +--
>  app/test/test_pmd_perf.c                           |  4 +-
>  app/test/test_ring_stress_impl.h                   | 10 ++---
>  app/test/test_rwlock.c                             |  8 ++--
>  app/test/test_seqlock.c                            |  8 ++--
>  app/test/test_ticketlock.c                         |  4 +-
>  app/test/test_trace_perf.c                         |  8 ++--
>  drivers/baseband/null/bbdev_null.c                 |  4 +-
>  drivers/baseband/turbo_sw/bbdev_turbo_software.c   |  4 +-
>  drivers/bus/dpaa/base/qbman/qman.c                 |  3 +-
>  drivers/bus/dpaa/include/fsl_bman.h                |  4 +-
>  drivers/bus/dpaa/include/fsl_qman.h                | 20 ++++-----
>  drivers/bus/fslmc/portal/dpaa2_hw_pvt.h            |  4 +-
>  drivers/common/cpt/cpt_common.h                    |  4 +-
>  drivers/common/idpf/idpf_common_device.h           |  2 +-
>  drivers/common/mlx5/linux/mlx5_glue.c              |  2 +-
>  drivers/common/mlx5/linux/mlx5_nl.c                |  2 +-
>  drivers/common/mlx5/mlx5_common_mr.h               |  4 +-
>  drivers/common/mlx5/mlx5_common_utils.h            | 12 ++---
>  drivers/common/mlx5/mlx5_prm.h                     |  4 +-
>  drivers/common/qat/qat_adf/icp_qat_hw.h            |  8 ++--
>  drivers/common/qat/qat_common.h                    |  4 +-
>  drivers/common/qat/qat_qp.h                        |  6 +--
>  drivers/compress/isal/isal_compress_pmd_private.h  |  8 ++--
>  drivers/compress/nitrox/nitrox_comp_reqmgr.c       |  2 +-
>  drivers/compress/octeontx/otx_zip.h                | 16 +++----
>  drivers/compress/qat/qat_comp.h                    |  4 +-
>  drivers/compress/zlib/zlib_pmd_private.h           | 12 ++---
>  drivers/crypto/armv8/armv8_pmd_private.h           | 14 +++---
>  drivers/crypto/bcmfs/bcmfs_qp.h                    |  4 +-
>  drivers/crypto/bcmfs/bcmfs_sym_session.h           |  4 +-
>  drivers/crypto/caam_jr/caam_jr_desc.h              |  8 ++--
>  drivers/crypto/ccp/ccp_crypto.h                    |  4 +-
>  drivers/crypto/ccp/ccp_dev.h                       |  8 ++--
>  drivers/crypto/ccp/ccp_pmd_private.h               |  8 ++--
>  drivers/crypto/cnxk/cn10k_cryptodev_sec.h          |  4 +-
>  drivers/crypto/cnxk/cn10k_ipsec.h                  |  4 +-
>  drivers/crypto/cnxk/cn10k_tls.h                    |  4 +-
>  drivers/crypto/cnxk/cn9k_cryptodev_ops.c           |  2 +-
>  drivers/crypto/cnxk/cn9k_ipsec.h                   |  8 ++--
>  drivers/crypto/cnxk/cnxk_cryptodev_ops.h           |  4 +-
>  drivers/crypto/cnxk/cnxk_se.h                      |  4 +-
>  drivers/crypto/ipsec_mb/pmd_aesni_mb.c             |  4 +-
>  drivers/crypto/ipsec_mb/pmd_aesni_mb_priv.h        | 24 +++++-----
>  drivers/crypto/ipsec_mb/pmd_chacha_poly_priv.h     |  4 +-
>  drivers/crypto/ipsec_mb/pmd_kasumi_priv.h          |  4 +-
>  drivers/crypto/ipsec_mb/pmd_snow3g_priv.h          |  4 +-
>  drivers/crypto/ipsec_mb/pmd_zuc_priv.h             |  4 +-
>  drivers/crypto/mlx5/mlx5_crypto.h                  |  4 +-
>  drivers/crypto/mvsam/mrvl_pmd_private.h            | 12 ++---
>  drivers/crypto/mvsam/rte_mrvl_pmd.c                | 12 +++--
>  drivers/crypto/null/null_crypto_pmd_private.h      |  8 ++--
>  drivers/crypto/octeontx/otx_cryptodev_hw_access.h  |  4 +-
>  drivers/crypto/openssl/openssl_pmd_private.h       | 12 ++---
>  drivers/crypto/qat/qat_asym.h                      | 15 +++----
>  drivers/crypto/qat/qat_sym.h                       |  8 ++--
>  drivers/crypto/qat/qat_sym_session.h               | 10 ++---
>  .../crypto/scheduler/scheduler_pkt_size_distr.c    |  4 +-
>  drivers/crypto/scheduler/scheduler_pmd_private.h   |  8 ++--
>  drivers/crypto/uadk/uadk_crypto_pmd_private.h      | 12 ++---
>  drivers/dma/idxd/idxd_hw_defs.h                    | 38 ++++++++--------
>  drivers/dma/ioat/ioat_internal.h                   |  4 +-
>  drivers/dma/skeleton/skeleton_dmadev.h             |  4 +-
>  drivers/event/cnxk/cn10k_eventdev.h                |  8 ++--
>  drivers/event/cnxk/cnxk_eventdev.h                 | 24 +++++-----
>  drivers/event/cnxk/cnxk_tim_evdev.h                |  4 +-
>  drivers/event/cnxk/cnxk_tim_worker.c               |  2 +-
>  drivers/event/dlb2/dlb2_priv.h                     | 16 +++----
>  drivers/event/dsw/dsw_evdev.h                      | 20 ++++-----
>  drivers/event/octeontx/ssovf_evdev.h               |  8 ++--
>  drivers/event/octeontx/timvf_evdev.h               |  8 ++--
>  drivers/event/octeontx/timvf_worker.c              |  2 +-
>  drivers/event/opdl/opdl_evdev.h                    |  6 +--
>  drivers/event/opdl/opdl_ring.c                     | 19 ++++----
>  drivers/event/skeleton/skeleton_eventdev.h         |  8 ++--
>  drivers/event/sw/event_ring.h                      |  2 +-
>  drivers/event/sw/iq_chunk.h                        |  4 +-
>  drivers/event/sw/sw_evdev.h                        | 18 ++++----
>  drivers/mempool/cnxk/cn10k_mempool_ops.c           |  4 +-
>  drivers/ml/cnxk/cnxk_ml_ops.h                      |  4 +-
>  drivers/net/ark/ark_ethdev_rx.c                    |  6 +--
>  drivers/net/ark/ark_ethdev_tx.c                    |  6 +--
>  drivers/net/avp/avp_ethdev.c                       |  8 ++--
>  drivers/net/avp/rte_avp_common.h                   |  4 +-
>  drivers/net/axgbe/axgbe_rxtx.h                     |  8 ++--
>  drivers/net/bnxt/bnxt_rxr.c                        |  2 +-
>  drivers/net/bonding/rte_eth_bond_8023ad.h          | 28 ++++++------
>  drivers/net/cxgbe/base/adapter.h                   | 14 +++---
>  drivers/net/cxgbe/cxgbe_ofld.h                     |  2 +-
>  drivers/net/e1000/igb_rxtx.c                       |  4 +-
>  drivers/net/ena/ena_ethdev.h                       | 17 ++++----
>  drivers/net/enic/enic_rxtx_common.h                |  2 +-
>  drivers/net/fm10k/fm10k_rxtx.c                     |  5 +--
>  drivers/net/hinic/hinic_pmd_rx.h                   |  8 ++--
>  drivers/net/hns3/hns3_ethdev.h                     |  4 +-
>  drivers/net/hns3/hns3_fdir.c                       |  4 +-
>  drivers/net/hns3/hns3_rxtx.h                       |  4 +-
>  drivers/net/i40e/i40e_ethdev.h                     |  4 +-
>  drivers/net/i40e/i40e_rxtx.h                       |  2 +-
>  drivers/net/iavf/iavf.h                            |  2 +-
>  drivers/net/iavf/iavf_rxtx.c                       |  3 +-
>  drivers/net/ice/ice_ethdev.h                       |  2 +-
>  drivers/net/ice/ice_rxtx.c                         |  3 +-
>  drivers/net/igc/igc_txrx.c                         |  4 +-
>  drivers/net/ionic/ionic_lif.h                      |  2 +-
>  drivers/net/ionic/ionic_rxtx.c                     |  6 +--
>  drivers/net/ixgbe/ixgbe_ipsec.h                    |  4 +-
>  drivers/net/ixgbe/ixgbe_rxtx.c                     | 10 ++---
>  drivers/net/memif/memif.h                          |  2 +-
>  drivers/net/mlx4/mlx4_rxtx.c                       |  2 +-
>  drivers/net/mlx5/hws/mlx5dr_send.h                 |  4 +-
>  drivers/net/mlx5/mlx5.h                            |  6 +--
>  drivers/net/mlx5/mlx5_flow.h                       |  4 +-
>  drivers/net/mlx5/mlx5_hws_cnt.h                    | 14 +++---
>  drivers/net/mlx5/mlx5_rx.h                         |  4 +-
>  drivers/net/mlx5/mlx5_rxtx.c                       |  6 +--
>  drivers/net/mlx5/mlx5_tx.h                         | 10 ++---
>  drivers/net/mlx5/mlx5_utils.h                      |  2 +-
>  drivers/net/mvpp2/mrvl_ethdev.h                    |  4 +-
>  drivers/net/netvsc/hn_var.h                        |  4 +-
>  drivers/net/nfp/flower/nfp_flower_flow.c           |  4 +-
>  drivers/net/nfp/nfp_ipsec.h                        |  4 +-
>  drivers/net/nfp/nfp_rxtx.h                         |  8 ++--
>  drivers/net/ngbe/ngbe_ptypes.c                     |  2 +-
>  drivers/net/ngbe/ngbe_rxtx.c                       |  2 +-
>  drivers/net/octeontx/octeontx_ethdev.c             |  4 +-
>  drivers/net/octeontx/octeontx_ethdev.h             | 12 ++---
>  drivers/net/octeontx/octeontx_rxtx.h               |  2 +-
>  drivers/net/pfe/base/pfe.h                         |  4 +-
>  drivers/net/qede/qede_rxtx.c                       | 14 +++---
>  drivers/net/softnic/rte_eth_softnic_internals.h    |  4 +-
>  drivers/net/tap/tap_bpf.h                          |  4 +-
>  drivers/net/thunderx/nicvf_rxtx.c                  |  8 ++--
>  drivers/net/thunderx/nicvf_struct.h                | 16 +++----
>  drivers/net/txgbe/txgbe_ipsec.h                    |  4 +-
>  drivers/net/txgbe/txgbe_ptypes.c                   | 10 ++---
>  drivers/net/txgbe/txgbe_rxtx.c                     |  2 +-
>  drivers/net/virtio/virtqueue.h                     |  4 +-
>  drivers/raw/ntb/ntb.h                              |  6 +--
>  drivers/regex/cn9k/cn9k_regexdev.h                 |  4 +-
>  drivers/vdpa/mlx5/mlx5_vdpa.h                      |  4 +-
>  examples/bbdev_app/main.c                          |  8 ++--
>  examples/bond/main.c                               |  2 +-
>  examples/distributor/main.c                        | 32 +++++++-------
>  examples/eventdev_pipeline/pipeline_common.h       |  8 ++--
>  examples/ip_fragmentation/main.c                   |  4 +-
>  examples/ip_pipeline/thread.c                      |  4 +-
>  examples/ip_reassembly/main.c                      |  4 +-
>  examples/ipsec-secgw/ipsec-secgw.c                 |  4 +-
>  examples/ipsec-secgw/ipsec-secgw.h                 |  8 ++--
>  examples/ipsec-secgw/ipsec.h                       | 22 +++++-----
>  examples/ipsec-secgw/ipsec_worker.h                |  4 +-
>  examples/ipv4_multicast/main.c                     |  4 +-
>  examples/l2fwd-crypto/main.c                       | 12 ++---
>  examples/l2fwd-event/l2fwd_common.h                |  8 ++--
>  examples/l2fwd-event/l2fwd_poll.h                  |  4 +-
>  examples/l2fwd-jobstats/main.c                     |  8 ++--
>  examples/l2fwd-keepalive/main.c                    |  8 ++--
>  examples/l2fwd-macsec/main.c                       | 12 ++---
>  examples/l2fwd/main.c                              | 12 ++---
>  examples/l3fwd-graph/main.c                        |  8 ++--
>  examples/l3fwd-power/main.c                        | 24 +++++-----
>  examples/l3fwd-power/main.h                        |  4 +-
>  examples/l3fwd-power/perf_core.c                   |  4 +-
>  examples/l3fwd/l3fwd.h                             |  8 ++--
>  examples/l3fwd/l3fwd_em.c                          |  4 +-
>  examples/l3fwd/main.c                              |  4 +-
>  examples/link_status_interrupt/main.c              |  8 ++--
>  .../multi_process/client_server_mp/shared/common.h |  8 ++--
>  examples/multi_process/symmetric_mp/main.c         |  4 +-
>  examples/ntb/ntb_fwd.c                             |  4 +-
>  examples/packet_ordering/main.c                    | 16 +++----
>  examples/pipeline/thread.c                         |  4 +-
>  examples/qos_sched/app_thread.c                    |  2 +-
>  examples/qos_sched/main.h                          |  4 +-
>  examples/server_node_efd/shared/common.h           | 12 ++---
>  examples/vhost/main.h                              |  4 +-
>  examples/vhost_blk/vhost_blk.h                     |  4 +-
>  examples/vhost_crypto/main.c                       |  4 +-
>  examples/vm_power_manager/power_manager.c          |  4 +-
>  202 files changed, 726 insertions(+), 732 deletions(-)
> 
> -- 
> 1.8.3.1