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