1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright (c) 2023 NVIDIA Corporation & Affiliates 3 */ 4 5 #ifndef RTE_PMD_MLX5_TRACE_H_ 6 #define RTE_PMD_MLX5_TRACE_H_ 7 8 /** 9 * @file 10 * 11 * API for mlx5 PMD trace support 12 */ 13 14 #include <mlx5_prm.h> 15 #include <rte_mbuf.h> 16 #include <rte_trace_point.h> 17 18 #ifdef __cplusplus 19 extern "C" { 20 #endif 21 22 /* TX burst subroutines trace points. */ 23 RTE_TRACE_POINT_FP( 24 rte_pmd_mlx5_trace_tx_entry, 25 RTE_TRACE_POINT_ARGS(uint64_t real_time, uint16_t port_id, uint16_t queue_id), 26 rte_trace_point_emit_u64(real_time); 27 rte_trace_point_emit_u16(port_id); 28 rte_trace_point_emit_u16(queue_id); 29 ) 30 31 RTE_TRACE_POINT_FP( 32 rte_pmd_mlx5_trace_tx_exit, 33 RTE_TRACE_POINT_ARGS(uint64_t real_time, uint16_t nb_sent, uint16_t nb_req), 34 rte_trace_point_emit_u64(real_time); 35 rte_trace_point_emit_u16(nb_sent); 36 rte_trace_point_emit_u16(nb_req); 37 ) 38 39 RTE_TRACE_POINT_FP( 40 rte_pmd_mlx5_trace_tx_wqe, 41 RTE_TRACE_POINT_ARGS(uint64_t real_time, uint32_t opcode), 42 rte_trace_point_emit_u64(real_time); 43 rte_trace_point_emit_u32(opcode); 44 ) 45 46 RTE_TRACE_POINT_FP( 47 rte_pmd_mlx5_trace_tx_wait, 48 RTE_TRACE_POINT_ARGS(uint64_t ts), 49 rte_trace_point_emit_u64(ts); 50 ) 51 52 53 RTE_TRACE_POINT_FP( 54 rte_pmd_mlx5_trace_tx_push, 55 RTE_TRACE_POINT_ARGS(const struct rte_mbuf *mbuf, uint16_t wqe_id), 56 rte_trace_point_emit_ptr(mbuf); 57 rte_trace_point_emit_u32(mbuf->pkt_len); 58 rte_trace_point_emit_u16(mbuf->nb_segs); 59 rte_trace_point_emit_u16(wqe_id); 60 ) 61 62 RTE_TRACE_POINT_FP( 63 rte_pmd_mlx5_trace_tx_complete, 64 RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t queue_id, 65 uint16_t wqe_id, uint64_t ts), 66 rte_trace_point_emit_u16(port_id); 67 rte_trace_point_emit_u16(queue_id); 68 rte_trace_point_emit_u64(ts); 69 rte_trace_point_emit_u16(wqe_id); 70 ) 71 72 #ifdef __cplusplus 73 } 74 #endif 75 76 #endif /* RTE_PMD_MLX5_TRACE_H_ */ 77