mbox series

[v3,0/9] Standardize telemetry int types

Message ID 20230112174116.2105237-1-bruce.richardson@intel.com (mailing list archive)
Headers
Series Standardize telemetry int types |

Message

Bruce Richardson Jan. 12, 2023, 5:41 p.m. UTC
  Rather than having 64-bit unsigned types and 32-bit signed types
supported by the telemetry lib, we should support 64-bit values
for both types. On the naming side, since both are 64-bit, we
should no longer call the unsigned value u64 - "uint" is better.

This patchset implements these changes as far as is possible while
still keeping API and ABI compatibility.

* Internal structures and functions are updated to use 64-bit ints
* Internal functions are renamed from u64 to uint
* Public enum values are renamed from u64 to uint, and a macro is
  added to ensure that older code still compiles
* The public add_*_int functions are changed to take a 64-bit value
  rather than a 32-bit one. Since this would be an ABI break, we
  use function versioning to ensure older code still calls into
  a wrapper function which takes a 32-bit value.

The patchset also contains a couple of other small cleanups to the
telemetry code that were seen in passing when making these changes -
removing RTE_ prefix on internal enums, and simplifying the init of the
the array of data types.

NOTE: the renaming of the u64 functions to uint is split across 3
patches in this set - patches 4,5 and 6. This is to make it easier to
review and to avoid warnings about new functions not being marked
initially as experimental. Some/all of these 3 can be combined on merge
if so desired.

V3:
- fix build issues due to missing a driver code change
- fix spelling issue flagged by checkpatch

V2:
- added additional patches to replace the old function calls within DPDK
  code, something missed in RFC version
- added new patch to make the renamed/new functions immediately public
  allowing us to mark the original named versions as deprecated
- re-ordered patches within the sit, so the extra cleanup changes come
  first

Bruce Richardson (9):
  telemetry: remove RTE prefix from internal enum values
  telemetry: make array initialization more robust
  telemetry: rename unsigned 64-bit enum value to uint
  telemetry: add uint type as alias for u64
  global: rename telemetry functions to newer versions
  telemetry: mark old names of renamed fns as deprecated
  telemetry: update json functions to use int/uint in names
  telemetry: make internal int representation 64-bits
  telemetry: change public API to use 64-bit signed values

 app/test/test_telemetry_data.c               | 22 ++---
 app/test/test_telemetry_json.c               |  9 +-
 doc/guides/rel_notes/deprecation.rst         |  5 ++
 drivers/common/cnxk/roc_platform.h           |  4 +-
 drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c | 24 ++---
 drivers/net/cnxk/cnxk_ethdev_telemetry.c     |  6 +-
 examples/ipsec-secgw/ipsec-secgw.c           | 72 +++++++--------
 examples/l3fwd-power/main.c                  |  4 +-
 lib/cryptodev/rte_cryptodev.c                |  6 +-
 lib/dmadev/rte_dmadev.c                      |  2 +-
 lib/eal/common/eal_common_memory.c           | 19 ++--
 lib/ethdev/rte_ethdev.c                      | 12 +--
 lib/ethdev/sff_telemetry.c                   |  2 +-
 lib/eventdev/rte_event_eth_rx_adapter.c      | 22 ++---
 lib/eventdev/rte_event_timer_adapter.c       | 38 ++++----
 lib/eventdev/rte_eventdev.c                  |  5 +-
 lib/ipsec/ipsec_telemetry.c                  | 33 +++----
 lib/rawdev/rte_rawdev.c                      |  4 +-
 lib/security/rte_security.c                  |  8 +-
 lib/telemetry/meson.build                    |  1 +
 lib/telemetry/rte_telemetry.h                | 51 +++++++++--
 lib/telemetry/telemetry.c                    | 56 ++++++------
 lib/telemetry/telemetry_data.c               | 95 ++++++++++++++------
 lib/telemetry/telemetry_data.h               | 24 +++--
 lib/telemetry/telemetry_json.h               | 16 ++--
 lib/telemetry/version.map                    |  9 ++
 26 files changed, 325 insertions(+), 224 deletions(-)

--
2.37.2
  

Comments

Power, Ciara Jan. 13, 2023, 4:39 p.m. UTC | #1
Hi Bruce,

> -----Original Message-----
> From: Bruce Richardson <bruce.richardson@intel.com>
> Sent: Thursday 12 January 2023 17:41
> To: dev@dpdk.org
> Cc: Richardson, Bruce <bruce.richardson@intel.com>
> Subject: [PATCH v3 0/9] Standardize telemetry int types
> 
> Rather than having 64-bit unsigned types and 32-bit signed types supported
> by the telemetry lib, we should support 64-bit values for both types. On the
> naming side, since both are 64-bit, we should no longer call the unsigned
> value u64 - "uint" is better.
> 
> This patchset implements these changes as far as is possible while still
> keeping API and ABI compatibility.
> 
> * Internal structures and functions are updated to use 64-bit ints
> * Internal functions are renamed from u64 to uint
> * Public enum values are renamed from u64 to uint, and a macro is
>   added to ensure that older code still compiles
> * The public add_*_int functions are changed to take a 64-bit value
>   rather than a 32-bit one. Since this would be an ABI break, we
>   use function versioning to ensure older code still calls into
>   a wrapper function which takes a 32-bit value.
> 
> The patchset also contains a couple of other small cleanups to the telemetry
> code that were seen in passing when making these changes - removing RTE_
> prefix on internal enums, and simplifying the init of the the array of data
> types.
> 
> NOTE: the renaming of the u64 functions to uint is split across 3 patches in
> this set - patches 4,5 and 6. This is to make it easier to review and to avoid
> warnings about new functions not being marked initially as experimental.
> Some/all of these 3 can be combined on merge if so desired.
> 
> V3:
> - fix build issues due to missing a driver code change
> - fix spelling issue flagged by checkpatch
> 
> V2:
> - added additional patches to replace the old function calls within DPDK
>   code, something missed in RFC version
> - added new patch to make the renamed/new functions immediately public
>   allowing us to mark the original named versions as deprecated
> - re-ordered patches within the sit, so the extra cleanup changes come
>   first
> 
> Bruce Richardson (9):
>   telemetry: remove RTE prefix from internal enum values
>   telemetry: make array initialization more robust
>   telemetry: rename unsigned 64-bit enum value to uint
>   telemetry: add uint type as alias for u64
>   global: rename telemetry functions to newer versions
>   telemetry: mark old names of renamed fns as deprecated
>   telemetry: update json functions to use int/uint in names
>   telemetry: make internal int representation 64-bits
>   telemetry: change public API to use 64-bit signed values
> 
>  app/test/test_telemetry_data.c               | 22 ++---
>  app/test/test_telemetry_json.c               |  9 +-
>  doc/guides/rel_notes/deprecation.rst         |  5 ++
>  drivers/common/cnxk/roc_platform.h           |  4 +-
>  drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c | 24 ++---
>  drivers/net/cnxk/cnxk_ethdev_telemetry.c     |  6 +-
>  examples/ipsec-secgw/ipsec-secgw.c           | 72 +++++++--------
>  examples/l3fwd-power/main.c                  |  4 +-
>  lib/cryptodev/rte_cryptodev.c                |  6 +-
>  lib/dmadev/rte_dmadev.c                      |  2 +-
>  lib/eal/common/eal_common_memory.c           | 19 ++--
>  lib/ethdev/rte_ethdev.c                      | 12 +--
>  lib/ethdev/sff_telemetry.c                   |  2 +-
>  lib/eventdev/rte_event_eth_rx_adapter.c      | 22 ++---
>  lib/eventdev/rte_event_timer_adapter.c       | 38 ++++----
>  lib/eventdev/rte_eventdev.c                  |  5 +-
>  lib/ipsec/ipsec_telemetry.c                  | 33 +++----
>  lib/rawdev/rte_rawdev.c                      |  4 +-
>  lib/security/rte_security.c                  |  8 +-
>  lib/telemetry/meson.build                    |  1 +
>  lib/telemetry/rte_telemetry.h                | 51 +++++++++--
>  lib/telemetry/telemetry.c                    | 56 ++++++------
>  lib/telemetry/telemetry_data.c               | 95 ++++++++++++++------
>  lib/telemetry/telemetry_data.h               | 24 +++--
>  lib/telemetry/telemetry_json.h               | 16 ++--
>  lib/telemetry/version.map                    |  9 ++
>  26 files changed, 325 insertions(+), 224 deletions(-)
> 
> --
> 2.37.2

Series-Acked-by: Ciara Power <ciara.power@intel.com>
  
Thomas Monjalon Feb. 5, 2023, 11:15 p.m. UTC | #2
13/01/2023 17:39, Power, Ciara:
> > Bruce Richardson (9):
> >   telemetry: remove RTE prefix from internal enum values
> >   telemetry: make array initialization more robust
> >   telemetry: rename unsigned 64-bit enum value to uint
> >   telemetry: add uint type as alias for u64
> >   global: rename telemetry functions to newer versions
> >   telemetry: mark old names of renamed fns as deprecated
> >   telemetry: update json functions to use int/uint in names
> >   telemetry: make internal int representation 64-bits
> >   telemetry: change public API to use 64-bit signed values
> 
> Series-Acked-by: Ciara Power <ciara.power@intel.com>

It required a bit of rebasing on top of Huisong's patches.

Applied, thanks.