mbox

[v12,00/22] Covert static log types in libraries to dynamic

Message ID 20230329234049.11071-1-stephen@networkplumber.org (mailing list archive)
Headers

Message

Stephen Hemminger March 29, 2023, 11:40 p.m. UTC
  This patchset removes the main uses of static LOGTYPE's in DPDK
libraries. It starts with the easy one and goes on to the more complex ones.

There are several options on how to treat the old static types:
leave them there, mark as deprecated, or remove them.
This version removes them since there is no guarantee in current
DPDK policies that says they can't be removed.

Note: there is one patch in this series that will get
flagged incorrectly as an ABI change.

v12 - rebase and add table and pipeline libraries

v11 - fix include check on arm cross build

v10 - add necessary rte_compat.h in thash_gfni stub for arm

v9 - fix handling of crc32 alg in lib/hash.
     make it an internal global variable.
     fix gfni stubs for case where they are not used.

Stephen Hemminger (22):
  gso: don't log message on non TCP/UDP
  eal: drop no longer used GSO logtype
  log: drop unused RTE_LOGTYPE_TIMER
  efd: convert RTE_LOGTYPE_EFD to dynamic type
  mbuf: convert RTE_LOGTYPE_MBUF to dynamic type
  acl: convert RTE_LOGTYPE_ACL to dynamic type
  examples/power: replace use of RTE_LOGTYPE_POWER
  examples/l3fwd-power: replace use of RTE_LOGTYPE_POWER
  power: convert RTE_LOGTYPE_POWER to dynamic type
  ring: convert RTE_LOGTYPE_RING to dynamic type
  mempool: convert RTE_LOGTYPE_MEMPOOL to dynamic type
  lpm: convert RTE_LOGTYPE_LPM to dynamic types
  kni: convert RTE_LOGTYPE_KNI to dynamic type
  sched: convert RTE_LOGTYPE_SCHED to dynamic type
  examples/ipsec-secgw: replace RTE_LOGTYPE_PORT
  port: convert RTE_LOGTYPE_PORT to dynamic type
  hash: move rte_thash_gfni stubs out of header file
  hash: move rte_hash_set_alg out header
  hash: convert RTE_LOGTYPE_HASH to dynamic type
  table: convert RTE_LOGTYPE_TABLE to dynamic type
  app/test: remove use of RTE_LOGTYPE_PIPELINE
  pipeline: convert RTE_LOGTYPE_PIPELINE to dynamic type

 app/test/test_acl.c             |  3 +-
 app/test/test_table_acl.c       | 50 +++++++++++-------------
 app/test/test_table_pipeline.c  | 40 +++++++++----------
 examples/distributor/main.c     |  2 +-
 examples/ipsec-secgw/sa.c       |  6 +--
 examples/l3fwd-power/main.c     | 17 +++++----
 lib/acl/acl_bld.c               |  1 +
 lib/acl/acl_gen.c               |  1 +
 lib/acl/acl_log.h               |  4 ++
 lib/acl/rte_acl.c               |  4 ++
 lib/acl/tb_mem.c                |  3 +-
 lib/eal/common/eal_common_log.c | 17 ---------
 lib/eal/include/rte_log.h       | 34 ++++++++---------
 lib/efd/rte_efd.c               |  4 ++
 lib/fib/fib_log.h               |  4 ++
 lib/fib/rte_fib.c               |  3 ++
 lib/fib/rte_fib6.c              |  2 +
 lib/gso/rte_gso.c               |  4 +-
 lib/gso/rte_gso.h               |  1 +
 lib/hash/meson.build            |  9 ++++-
 lib/hash/rte_crc_arm64.h        |  8 ++--
 lib/hash/rte_crc_x86.h          | 10 ++---
 lib/hash/rte_cuckoo_hash.c      |  5 +++
 lib/hash/rte_fbk_hash.c         |  5 +++
 lib/hash/rte_hash_crc.c         | 68 +++++++++++++++++++++++++++++++++
 lib/hash/rte_hash_crc.h         | 48 ++---------------------
 lib/hash/rte_thash.c            |  3 ++
 lib/hash/rte_thash_gfni.c       | 50 ++++++++++++++++++++++++
 lib/hash/rte_thash_gfni.h       | 30 +++++----------
 lib/hash/version.map            | 11 ++++++
 lib/kni/rte_kni.c               |  3 ++
 lib/lpm/lpm_log.h               |  4 ++
 lib/lpm/rte_lpm.c               |  3 ++
 lib/lpm/rte_lpm6.c              |  1 +
 lib/mbuf/mbuf_log.h             |  4 ++
 lib/mbuf/rte_mbuf.c             |  4 ++
 lib/mbuf/rte_mbuf_dyn.c         |  2 +
 lib/mbuf/rte_mbuf_pool_ops.c    |  2 +
 lib/mempool/rte_mempool.c       |  2 +
 lib/mempool/rte_mempool.h       |  8 ++++
 lib/mempool/version.map         |  3 ++
 lib/pipeline/rte_pipeline.c     |  2 +
 lib/pipeline/rte_pipeline.h     |  5 +++
 lib/port/rte_port_ethdev.c      |  3 ++
 lib/port/rte_port_eventdev.c    |  4 ++
 lib/port/rte_port_fd.c          |  3 ++
 lib/port/rte_port_frag.c        |  3 ++
 lib/port/rte_port_kni.c         |  3 ++
 lib/port/rte_port_ras.c         |  3 ++
 lib/port/rte_port_ring.c        |  3 ++
 lib/port/rte_port_sched.c       |  3 ++
 lib/port/rte_port_source_sink.c |  3 ++
 lib/port/rte_port_sym_crypto.c  |  3 ++
 lib/power/guest_channel.c       |  3 +-
 lib/power/power_common.c        |  2 +
 lib/power/power_common.h        |  3 +-
 lib/power/power_kvm_vm.c        |  1 +
 lib/power/rte_power.c           |  1 +
 lib/rib/rib_log.h               |  4 ++
 lib/rib/rte_rib.c               |  3 ++
 lib/rib/rte_rib6.c              |  3 ++
 lib/ring/rte_ring.c             |  3 ++
 lib/sched/rte_pie.c             |  1 +
 lib/sched/rte_sched.c           |  5 +++
 lib/sched/rte_sched_log.h       |  4 ++
 lib/table/meson.build           |  1 +
 lib/table/rte_table.c           |  8 ++++
 lib/table/rte_table.h           |  4 ++
 68 files changed, 391 insertions(+), 176 deletions(-)
 create mode 100644 lib/acl/acl_log.h
 create mode 100644 lib/fib/fib_log.h
 create mode 100644 lib/hash/rte_hash_crc.c
 create mode 100644 lib/hash/rte_thash_gfni.c
 create mode 100644 lib/lpm/lpm_log.h
 create mode 100644 lib/mbuf/mbuf_log.h
 create mode 100644 lib/rib/rib_log.h
 create mode 100644 lib/sched/rte_sched_log.h
 create mode 100644 lib/table/rte_table.c
  

Comments

David Marchand Dec. 4, 2023, 12:32 p.m. UTC | #1
On Mon, Aug 21, 2023 at 6:09 PM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> This patchset removes most of the uses of static LOGTYPE's in DPDK
> libraries. It starts with the easy one and goes on to the more complex ones.
>
> There are several options on how to treat the old static types:
> leave them there, mark as deprecated, or remove them.
> This version removes them since there is no guarantee in current
> DPDK policies that says they can't be removed.
>
> Note: there is one patch in this series that will get
> flagged incorrectly as an ABI change.
>
> v13 - rebase because log now moved.
>
> v12 - rebase and add table and pipeline libraries
>
> v11 - fix include check on arm cross build
>
> v10 - add necessary rte_compat.h in thash_gfni stub for arm
>
> v9 - fix handling of crc32 alg in lib/hash.
>      make it an internal global variable.
>      fix gfni stubs for case where they are not used.
>
> Stephen Hemminger (21):
>   gso: don't log message on non TCP/UDP
>   eal: drop no longer used GSO logtype
>   log: drop unused RTE_LOGTYPE_TIMER
>   efd: convert RTE_LOGTYPE_EFD to dynamic type
>   mbuf: convert RTE_LOGTYPE_MBUF to dynamic type
>   acl: convert RTE_LOGTYPE_ACL to dynamic type
>   examples/power: replace use of RTE_LOGTYPE_POWER
>   examples/l3fwd-power: replace use of RTE_LOGTYPE_POWER
>   power: convert RTE_LOGTYPE_POWER to dynamic type
>   ring: convert RTE_LOGTYPE_RING to dynamic type
>   mempool: convert RTE_LOGTYPE_MEMPOOL to dynamic type
>   lpm: convert RTE_LOGTYPE_LPM to dynamic types
>   sched: convert RTE_LOGTYPE_SCHED to dynamic type
>   examples/ipsec-secgw: replace RTE_LOGTYPE_PORT
>   port: convert RTE_LOGTYPE_PORT to dynamic type
>   hash: move rte_thash_gfni stubs out of header file
>   hash: move rte_hash_set_alg out header
>   hash: convert RTE_LOGTYPE_HASH to dynamic type
>   table: convert RTE_LOGTYPE_TABLE to dynamic type
>   app/test: remove use of RTE_LOGTYPE_PIPELINE
>   pipeline: convert RTE_LOGTYPE_PIPELINE to dynamic type
>

This series needs some rebase.
Thanks.
  
David Marchand Dec. 6, 2023, 10:08 a.m. UTC | #2
On Tue, Dec 5, 2023 at 3:13 AM Stephen Hemminger
<stephen@networkplumber.org> wrote:
>
> This patchset removes most of the uses of static LOGTYPE's in DPDK
> libraries. It starts with the easy one and goes on to the more complex ones.
>
> There are several options on how to treat the old static types:
> leave them there, mark as deprecated, or remove them.
> This version removes them since there is no guarantee in current
> DPDK policies that says they can't be removed.

Those logtypes were internal things that should not have been public
in the first place.

And switching to a dynamic logtype for external users (if any) is trivial.

>
> Note: there is one patch in this series that will get
> flagged incorrectly as an ABI change.

Adding such stable symbols is not a problem.
We can ignore this warning (which is there to force maintainers to
inspect such additions).

>
> v14 - rebase on 24.03-rc0
>       skip port, table and pipeline libraries since lots of
>       to be deprecated code.
>
> v13 - rebase because log now moved.
>
> v12 - rebase and add table and pipeline libraries
>
> v11 - fix include check on arm cross build
>
> v10 - add necessary rte_compat.h in thash_gfni stub for arm
>
> v9 - fix handling of crc32 alg in lib/hash.
>      make it an internal global variable.
>      fix gfni stubs for case where they are not used.
>
> Stephen Hemminger (18):
>   gso: don't log message on non TCP/UDP
>   eal: drop no longer used GSO logtype
>   log: drop unused RTE_LOGTYPE_TIMER
>   efd: convert RTE_LOGTYPE_EFD to dynamic type
>   mbuf: convert RTE_LOGTYPE_MBUF to dynamic type
>   acl: convert RTE_LOGTYPE_ACL to dynamic type
>   examples/power: replace use of RTE_LOGTYPE_POWER
>   examples/l3fwd-power: replace use of RTE_LOGTYPE_POWER
>   power: convert RTE_LOGTYPE_POWER to dynamic type
>   ring: convert RTE_LOGTYPE_RING to dynamic type
>   mempool: convert RTE_LOGTYPE_MEMPOOL to dynamic type
>   lpm: convert RTE_LOGTYPE_LPM to dynamic types
>   sched: convert RTE_LOGTYPE_SCHED to dynamic type
>   examples/ipsec-secgw: replace RTE_LOGTYPE_PORT
>   app/test: remove use of RTE_LOGTYPE_PIPELINE
>   hash: mover rte_thash_gfni stubs out of header file
>   hash: move rte_hash_set_alg out of header file
>   hash: convert RTE_LOGTYPE_HASH to dynamic type
>
>  app/test/test_acl.c            |  2 +-
>  app/test/test_table_acl.c      | 50 ++++++++++++-------------
>  app/test/test_table_pipeline.c | 40 ++++++++++----------
>  examples/distributor/main.c    |  2 +-
>  examples/ipsec-secgw/sa.c      |  6 +--
>  examples/l3fwd-power/main.c    | 17 +++++----
>  lib/acl/acl.h                  |  1 +
>  lib/acl/acl_bld.c              |  3 ++
>  lib/acl/acl_gen.c              |  1 +
>  lib/acl/acl_log.h              |  6 +++
>  lib/acl/rte_acl.c              |  3 ++
>  lib/acl/tb_mem.c               |  3 +-
>  lib/efd/rte_efd.c              |  4 ++
>  lib/fib/fib_log.h              |  4 ++
>  lib/fib/rte_fib.c              |  3 ++
>  lib/fib/rte_fib6.c             |  2 +
>  lib/gso/rte_gso.c              |  4 +-
>  lib/gso/rte_gso.h              |  1 +
>  lib/hash/meson.build           |  9 ++++-
>  lib/hash/rte_crc_arm64.h       |  8 ++--
>  lib/hash/rte_crc_x86.h         | 10 ++---
>  lib/hash/rte_cuckoo_hash.c     |  5 +++
>  lib/hash/rte_fbk_hash.c        |  5 +++
>  lib/hash/rte_hash_crc.c        | 68 ++++++++++++++++++++++++++++++++++
>  lib/hash/rte_hash_crc.h        | 48 ++----------------------
>  lib/hash/rte_thash.c           |  3 ++
>  lib/hash/rte_thash_gfni.c      | 50 +++++++++++++++++++++++++
>  lib/hash/rte_thash_gfni.h      | 23 +++---------
>  lib/hash/version.map           |  9 +++++
>  lib/log/log.c                  | 13 -------
>  lib/log/rte_log.h              | 26 ++++++-------
>  lib/lpm/lpm_log.h              |  4 ++
>  lib/lpm/rte_lpm.c              |  3 ++
>  lib/lpm/rte_lpm6.c             |  1 +
>  lib/mbuf/mbuf_log.h            |  4 ++
>  lib/mbuf/rte_mbuf.c            |  4 ++
>  lib/mbuf/rte_mbuf_dyn.c        |  2 +
>  lib/mbuf/rte_mbuf_pool_ops.c   |  2 +
>  lib/mempool/rte_mempool.c      |  2 +
>  lib/mempool/rte_mempool.h      |  8 ++++
>  lib/mempool/version.map        |  3 ++
>  lib/power/power_common.c       |  2 +
>  lib/power/power_common.h       |  2 +
>  lib/power/power_kvm_vm.c       |  1 +
>  lib/power/rte_power.c          |  1 +
>  lib/power/rte_power_uncore.c   |  1 +
>  lib/rib/rib_log.h              |  4 ++
>  lib/rib/rte_rib.c              |  3 ++
>  lib/rib/rte_rib6.c             |  3 ++
>  lib/ring/rte_ring.c            |  3 ++
>  lib/sched/rte_pie.c            |  1 +
>  lib/sched/rte_sched.c          |  5 +++
>  lib/sched/rte_sched_log.h      |  4 ++
>  53 files changed, 329 insertions(+), 163 deletions(-)
>  create mode 100644 lib/acl/acl_log.h
>  create mode 100644 lib/fib/fib_log.h
>  create mode 100644 lib/hash/rte_hash_crc.c
>  create mode 100644 lib/hash/rte_thash_gfni.c
>  create mode 100644 lib/lpm/lpm_log.h
>  create mode 100644 lib/mbuf/mbuf_log.h
>  create mode 100644 lib/rib/rib_log.h
>  create mode 100644 lib/sched/rte_sched_log.h

I fixed a few issues:
- added a release note update for the gso patch,
- fixed some styling issues in meson updates,
- reordered some hunks and patches,
- dropped some whitespace damage and typos,
- dropped unneeded include of rte_compat.h,
- fixed indent,
- marked exported variables as stable (such variable is part of the
application ABI),

Series applied.