[v4,00/18] stop using zero sized marker fields

Message ID 1707978080-28859-1-git-send-email-roretzla@linux.microsoft.com (mailing list archive)
Headers
Series stop using zero sized marker fields |

Message

Tyler Retzlaff Feb. 15, 2024, 6:21 a.m. UTC
  The zero sized RTE_MARKER<n> typedefs are a GCC extension unsupported by
MSVC. This series adds new fields and allows deprecation of the old.

Introduce new anonymous union fields with mbuf_ prefix for cacheline0,
rearm_data, rx_descriptor_fields1, and cacheline1.

Remove in-tree use of the zero sized marker fields and adapt consuming
code to use the new anonymous union fields.

Question: what is the correct mechanism to allow uncommenting of
__rte_deprecated in __rte_marker when building DPDK itself but not
when building applications?

Tyler Retzlaff (18):
  mbuf: deprecate GCC marker in rte mbuf struct
  mbuf: stop using zero sized marker fields
  net/i40e: stop using zero sized marker fields
  net/iavf: stop using zero sized marker fields
  net/ice: stop using zero sized marker fields
  net/ixgbe: stop using zero sized marker fields
  net/mlx5: stop using zero sized marker fields
  net/sfc: stop using zero sized marker fields
  net/bnxt: stop using zero sized marker fields
  net/enic: stop using zero sized marker fields
  net/fm10k: stop using zero sized marker fields
  net/hns3: stop using zero sized marker fields
  net/ionic: stop using zero sized marker fields
  net/thunderx: stop using zero sized marker fields
  net/virtio: stop using zero sized marker fields
  net/cnxk: stop using zero sized marker fields
  common/idpf: stop using zero sized marker fields
  examples/dma: stop using zero sized marker fields

 doc/guides/rel_notes/deprecation.rst            |  20 ++
 drivers/common/idpf/idpf_common_rxtx.c          |   4 +-
 drivers/common/idpf/idpf_common_rxtx_avx512.c   |  60 ++--
 drivers/net/bnxt/bnxt_rxtx_vec_avx2.c           |  18 +-
 drivers/net/bnxt/bnxt_rxtx_vec_common.h         |   4 +-
 drivers/net/bnxt/bnxt_rxtx_vec_neon.c           |  20 +-
 drivers/net/bnxt/bnxt_rxtx_vec_sse.c            |  20 +-
 drivers/net/cnxk/cn10k_rx.h                     |  50 ++--
 drivers/net/cnxk/cn9k_rx.h                      |  34 +--
 drivers/net/cnxk/cnxk_ethdev.c                  |   4 +-
 drivers/net/enic/enic.h                         |   2 +-
 drivers/net/enic/enic_main.c                    |   4 +-
 drivers/net/enic/enic_rxtx_vec_avx2.c           |  22 +-
 drivers/net/fm10k/fm10k_rxtx_vec.c              |  24 +-
 drivers/net/hns3/hns3_rxtx_vec.c                |  22 +-
 drivers/net/hns3/hns3_rxtx_vec_neon.h           |  28 +-
 drivers/net/hns3/hns3_rxtx_vec_sve.c            |   6 +-
 drivers/net/i40e/i40e_rxtx_vec_altivec.c        |  14 +-
 drivers/net/i40e/i40e_rxtx_vec_avx2.c           |  30 +-
 drivers/net/i40e/i40e_rxtx_vec_avx512.c         |  32 +-
 drivers/net/i40e/i40e_rxtx_vec_common.h         |   4 +-
 drivers/net/i40e/i40e_rxtx_vec_neon.c           |  16 +-
 drivers/net/i40e/i40e_rxtx_vec_sse.c            |  34 +--
 drivers/net/iavf/iavf_rxtx_vec_avx2.c           |  60 ++--
 drivers/net/iavf/iavf_rxtx_vec_avx512.c         |  60 ++--
 drivers/net/iavf/iavf_rxtx_vec_common.h         |   4 +-
 drivers/net/iavf/iavf_rxtx_vec_neon.c           |  16 +-
 drivers/net/iavf/iavf_rxtx_vec_sse.c            |  68 ++---
 drivers/net/ice/ice_rxtx_vec_avx2.c             |  30 +-
 drivers/net/ice/ice_rxtx_vec_avx512.c           |  30 +-
 drivers/net/ice/ice_rxtx_vec_common.h           |   4 +-
 drivers/net/ice/ice_rxtx_vec_sse.c              |  34 +--
 drivers/net/ionic/ionic_lif.c                   |   8 +-
 drivers/net/ionic/ionic_rxtx_sg.c               |   4 +-
 drivers/net/ionic/ionic_rxtx_simple.c           |   2 +-
 drivers/net/ixgbe/ixgbe_rxtx_vec_common.h       |   4 +-
 drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c         |  12 +-
 drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c          |  42 +--
 drivers/net/mlx5/mlx5_rxq.c                     |   6 +-
 drivers/net/mlx5/mlx5_rxtx_vec.h                |  16 +-
 drivers/net/mlx5/mlx5_rxtx_vec_altivec.h        |  48 +--
 drivers/net/mlx5/mlx5_rxtx_vec_neon.h           |  42 +--
 drivers/net/mlx5/mlx5_rxtx_vec_sse.h            |  48 +--
 drivers/net/sfc/sfc_ef100_rx.c                  |  10 +-
 drivers/net/sfc/sfc_ef10_rx.c                   |  14 +-
 drivers/net/thunderx/nicvf_ethdev.c             |   4 +-
 drivers/net/thunderx/nicvf_rxtx.h               |   4 +-
 drivers/net/virtio/virtio_rxtx_packed.h         |   4 +-
 drivers/net/virtio/virtio_rxtx_packed_avx.h     |  14 +-
 drivers/net/virtio/virtio_rxtx_packed_neon.h    |  18 +-
 drivers/net/virtio/virtio_rxtx_simple.c         |   4 +-
 drivers/net/virtio/virtio_rxtx_simple.h         |   2 +-
 drivers/net/virtio/virtio_rxtx_simple_altivec.c |  16 +-
 drivers/net/virtio/virtio_rxtx_simple_neon.c    |  16 +-
 drivers/net/virtio/virtio_rxtx_simple_sse.c     |  16 +-
 examples/dma/dmafwd.c                           |   4 +-
 lib/eal/include/rte_common.h                    |   6 +
 lib/mbuf/rte_mbuf.h                             |   4 +-
 lib/mbuf/rte_mbuf_core.h                        | 375 +++++++++++++-----------
 59 files changed, 793 insertions(+), 728 deletions(-)
  

Comments

Morten Brørup Feb. 15, 2024, 9:37 a.m. UTC | #1
> From: Tyler Retzlaff [mailto:roretzla@linux.microsoft.com]
> Sent: Thursday, 15 February 2024 07.21
> 
> The zero sized RTE_MARKER<n> typedefs are a GCC extension unsupported
> by
> MSVC. This series adds new fields and allows deprecation of the old.
> 
> Introduce new anonymous union fields with mbuf_ prefix for cacheline0,
> rearm_data, rx_descriptor_fields1, and cacheline1.
> 
> Remove in-tree use of the zero sized marker fields and adapt consuming
> code to use the new anonymous union fields.

Series-acked-by: Morten Brørup <mb@smartsharesystems.com>