mbox

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

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

Message

Ankur Dwivedi Jan. 12, 2023, 11:21 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.

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
  ethdev: add trace points for remaining functions
  ethdev: add trace points for flow
  ethdev: add trace points for mtr
  ethdev: add trace points for tm

 app/test/test_trace.c                      |    5 +
 lib/eal/common/eal_common_trace_points.c   |    2 +
 lib/eal/include/rte_eal_trace.h            |    6 +
 lib/eal/include/rte_trace_point.h          |   17 +
 lib/eal/include/rte_trace_point_register.h |    7 +
 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 ++++
 19 files changed, 4719 insertions(+), 236 deletions(-)
 create mode 100644 lib/ethdev/rte_ethdev_trace_fp_burst.h