mbox

[v7,0/6] add trace points in ethdev library

Message ID 20230123090229.3392071-1-adwivedi@marvell.com (mailing list archive)
Headers

Message

Ankur Dwivedi Jan. 23, 2023, 9:02 a.m. UTC
  This series adds trace points for functions in the ethdev library.
The trace points are added in ethdev, flow, mtr and tm files.

v7:
 - Resolves build failure.
 - Changes in rte_trace_point_emit_blob() function in rte_trace_point.h
   and rte_trace_point_register.h.

v6:
 - Resolves compilation error with 32 bit build.
 - Resolves a bug found in v5 in the trace autotest application where
   the traces where not getting generated after the first blob test case.
   The trace size needs to be known at trace point register, so a dynamic
   length array cannot be implemented with current implementation.
   So changing the metadata of blob to make the array as 64 bytes. The
   length will denote the blob length(passed by the application). The
   trailing unused fields will be set to zero if length is less than 64.

   For example, the following is the ctf metadata created to display
   a mac addr array in rte_eth_trace_macaddr_get():
   struct {
      ...
      uint8_t len;
      uint8_t mac_addr_addr_bytes[64];
   };
 - Minor changes in the subject of patches (2/6) and (3/6).

v5:
 - The rte_trace_point_emit_char_array function is renamed to 
   rte_trace_point_emit_blob. With this function an array of
   any length upto 65535 bytes can be captured.
   For example, the following is the ctf metadata created to display
   a mac addr array in rte_eth_trace_macaddr_get():
   struct {
      ...
      uint16_t len;
      uint8_t mac_addr_addr_bytes[len];
   };
 - Added additional test cases for rte_eal_trace_generic_blob
   test case.
 - Capturing of return value of a function is added to tracepoint 
   for flow, mtr and tm patches.
 - In ehdev patch (1/6), removed extra line. Also added rx_pkts and
   tx_pkts pointer in trace point.

v4:
 - Adds tracepoint function to emit char array. Also adds the
   test case.
 - Resolved review comments on "ethdev: add trace point" patch.
   This patch is divided into 2 patches to minimize per patch
   size.
 - From the earlier version (v3), few tracepoints in ethdev,
   flow, mtr, tm are made as fast path tracepoints. For the 
   tracepoint which i was unsure, i have made it as fastpath.
   All the fast path tracepoints can be found in 
   rte_ethdev_trace_fp.h and rte_ethdev_trace_fp_burst.h.
   All the slow path tracepoints can be found in rte_ethdev_trace.h.
 - Capturing of return value is added to tracepoint in ethdev.
   For flow, mtr and tm these changes are still yet to bde done.
   Will do it in the next versions.
 - Moved the trace functions from INTERNAL to EXPERIMENTAL in
   version.map.

v3:
 - Moved the trace functions from EXPERIMENTAL to INTERNAL in
   version.map.
 - Moved trace functions call to the end, in ethdev and flow trace.
 - Added code to print the input value of features in
   rte_eth_trace_rx_metadata_negotiate().
 - Added code to capture return value in flow trace.

Ankur Dwivedi (6):
  eal: trace: add trace point emit for blob
  ethdev: add trace points for ethdev (part one)
  ethdev: add trace points for ethdev (part two)
  ethdev: add trace points for flow
  ethdev: add trace points for mtr
  ethdev: add trace points for tm

 app/test/test_trace.c                      |   11 +
 doc/guides/prog_guide/trace_lib.rst        |   12 +
 lib/eal/common/eal_common_trace_points.c   |    2 +
 lib/eal/include/rte_eal_trace.h            |    6 +
 lib/eal/include/rte_trace_point.h          |   31 +
 lib/eal/include/rte_trace_point_register.h |    9 +
 lib/eal/version.map                        |    3 +
 lib/ethdev/ethdev_private.c                |    5 +
 lib/ethdev/ethdev_trace_points.c           |  715 ++++++++++
 lib/ethdev/meson.build                     |    1 +
 lib/ethdev/rte_ethdev.c                    |  711 ++++++++--
 lib/ethdev/rte_ethdev.h                    |    2 +-
 lib/ethdev/rte_ethdev_cman.c               |   30 +-
 lib/ethdev/rte_ethdev_trace.h              | 1450 ++++++++++++++++++++
 lib/ethdev/rte_ethdev_trace_fp.h           | 1005 +++++++++++++-
 lib/ethdev/rte_ethdev_trace_fp_burst.h     |   44 +
 lib/ethdev/rte_flow.c                      |  314 ++++-
 lib/ethdev/rte_mtr.c                       |  156 ++-
 lib/ethdev/rte_tm.c                        |  247 +++-
 lib/ethdev/version.map                     |  235 ++++
 20 files changed, 4753 insertions(+), 236 deletions(-)
 create mode 100644 lib/ethdev/rte_ethdev_trace_fp_burst.h