The goal is to land every deprecation currently listed in the release
notes by the 26.11 ABI bump. Working back from there: any function to
be removed in 26.11 needs to be marked __rte_deprecated by 26.07, and
all in-tree users converted off it before the marker patch goes in so
CI stays clean.

This series is the preparatory work for the rte_atomicNN_*() family
under that plan. It does not yet add the __rte_deprecated marker;
that's a separate follow-up once the remaining in-tree users are
converted. Other items on the deprecation list (VXLAN_GPE,
pipeline/table/port legacy API, the MAX enum fix, regexdev, pdump,
TM locks) will follow as their own series on the same timeline.

Patch 3 is the load-bearing change: the last lib/ caller of
rte_atomic32_cmpset() is converted, clearing the way.

Patch 7 drops RTE_FORCE_INTRINSICS entirely. With the option always on,
the asm implementations of atomics, spinlock and byteorder become dead
code. ~900 lines deleted; the patch most worth review attention.
This makes it easier to flag the rte_atomicNN as deprecated
since they are all in one place.

Patch 2 retires the rte_smp_*mb deprecation notice (open since 2021)
by reimplementing those APIs as wrappers over rte_atomic_thread_fence,
preserving the API for readability. Patches 5 and 6 convert and clean
up two driver users (bonding, nbl).

Patch 4 is a preparatory workaround for a pre-existing GCC bitfield
-Wmaybe-uninitialized false positive in net/zxdh, surfaced by the
improved compiler visibility after patch 7. Placed ahead of patch 7
to keep every commit bisectable.

Follow on patches will mechanically convert drivers.
If driver writer fixes it themselves; all the beter.

Stephen Hemminger (7):
  doc: update versions in deprecation file
  eal: reimplement rte_smp_*mb with rte_atomic_thread_fence
  ring: use C11 atomic operations for MP/SP head/tail
  net/zxdh: work around GCC bitfield uninit false positive
  net/bonding: use stdatomic
  net/nbl: remove unused rte_atomic16 field
  config: use RTE_FORCE_INTRINSICS on all platforms

 config/arm/meson.build                        |   1 -
 config/loongarch/meson.build                  |   1 -
 config/meson.build                            |   3 -
 config/riscv/meson.build                      |   1 -
 doc/guides/rel_notes/deprecation.rst          |  12 +-
 doc/guides/rel_notes/release_26_07.rst        |   5 +
 drivers/net/bonding/eth_bond_8023ad_private.h |   4 +-
 drivers/net/bonding/rte_eth_bond_8023ad.c     |  18 +-
 drivers/net/nbl/nbl_hw/nbl_resource.h         |   1 -
 drivers/net/zxdh/zxdh_msg.c                   |   4 +-
 lib/eal/arm/include/rte_atomic_32.h           |   9 -
 lib/eal/arm/include/rte_atomic_64.h           |   9 -
 lib/eal/arm/include/rte_byteorder.h           |   3 -
 lib/eal/arm/include/rte_spinlock.h            |   3 -
 lib/eal/include/generic/rte_atomic.h          | 164 ++++----------
 lib/eal/include/generic/rte_byteorder.h       |   2 -
 lib/eal/include/generic/rte_spinlock.h        |  10 -
 lib/eal/loongarch/include/rte_atomic.h        |   9 -
 lib/eal/loongarch/include/rte_spinlock.h      |   3 -
 lib/eal/ppc/include/rte_atomic.h              | 179 ---------------
 lib/eal/ppc/include/rte_byteorder.h           |  13 --
 lib/eal/ppc/include/rte_spinlock.h            |  26 ---
 lib/eal/riscv/include/rte_atomic.h            |   9 -
 lib/eal/riscv/include/rte_spinlock.h          |   3 -
 lib/eal/x86/include/rte_atomic.h              | 205 +-----------------
 lib/eal/x86/include/rte_atomic_32.h           | 188 ----------------
 lib/eal/x86/include/rte_atomic_64.h           | 157 --------------
 lib/eal/x86/include/rte_byteorder.h           |  49 -----
 lib/eal/x86/include/rte_spinlock.h            |  49 -----
 lib/ring/rte_ring_generic_pvt.h               |  64 ++++--
 30 files changed, 118 insertions(+), 1086 deletions(-)

-- 
2.53.0

Reply via email to