[PATCH v11 0/6] add trace points in ethdev library
Ferruh Yigit
ferruh.yigit at amd.com
Wed Feb 8 21:09:48 CET 2023
On 2/8/2023 5:12 PM, Ankur Dwivedi wrote:
> This series adds trace points for functions in the ethdev library.
> The trace points are added in ethdev, flow, mtr and tm files.
>
> v11:
> - Added rte_trace_point_emit_blob to capture mac address list in
> rte_ethdev_trace_set_mc_addr_list tracepoint.
> - Added ack by Ori in patch (4/6) ethdev: add trace points for flow.
>
> v10:
> - Removed const in basic types in tracepoint.
> - Removed capture of pointer value where some fields in structure are
> captured.
> - Resolved RHEL 7 failure:
> ../lib/ethdev/rte_ethdev.c:3260:2: error: 'for' loop initial declarations
> are only allowed in C99 mode
> - In patch (3/6) removed next_port and last_port in
> rte_ethdev_trace_callback_register.
> - In patch (3/6) simplified the return logic in
> rte_eth_dev_priority_flow_ctrl_set,
> rte_eth_dev_priority_flow_ctrl_queue_info_get and
> rte_eth_dev_priority_flow_ctrl_queue_configure.
> - In patch (4/6, 5/6 and 6/6), removed capture of structure fields in
> tracepoint where the structure pointer can be null.
>
> v9:
> - Added __rte_eal_trace_generic_blob in lib/eal/version.map
> file.
>
> v8:
> - Resolved review comments on ethdev patch.
> - The file rte_ethdev_trace.h and rte_ethdev_trace_fp_burst.h(added in
> this patch series) is removed. The file ethdev_trace.h is added as an
> internal header. It contains internal slow path and fastpath
> tracepoints. The rte_ethdev_trace_fp.h contains public fastpath
> tracepoints.
> - In patch (2/6) removed extra call to rte_eth_trace_find_next with
> RTE_MAX_ETHPORTS.
> - In patch (2/6), added parent argument in rte_eth_trace_find_next_of().
> - In patches (2/6 and 4/6), provided appropriate data type to bit fields
> in following tracepoints:
> rte_eth_trace_rx_hairpin_queue_setup,
> rte_eth_trace_tx_hairpin_queue_setup, rte_eth_trace_link_get_nowait,
> rte_eth_trace_link_to_str, rte_eth_trace_link_get,
> rte_flow_trace_pattern_template_create,
> rte_flow_trace_actions_template_create and
> rte_flow_trace_action_handle_create.
> - Tracepoints moved from fastpath to slowpath in ethdev, mtr and tm.
> - Moved few flow related tracepoints to fastpath as suggested in review
> comments.
> - Added const to the pointer parameters in tracepoints.
> - The following tracepoints are moved to the end of the function to
> capture return values:
> rte_eth_trace_link_speed_to_str, rte_flow_trace_conv,
> rte_mtr_trace_meter_policy_validate, rte_mtr_trace_meter_policy_add,
> rte_mtr_trace_meter_policy_delete, rte_eth_find_next_sibling and
> rte_eth_trace_speed_bitflag.
> - Removed tracepoints from version.map file.
> - Formatting changes.
>
> 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
For series,
Acked-by: Ferruh Yigit <ferruh.yigit at amd.com>
Series applied to dpdk-next-net/main, thanks.
More information about the dev
mailing list