xref: /dpdk/lib/dmadev/rte_dmadev_trace_fp.h (revision 112327c220befef14129e4852e8df46e60410128)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2024 HiSilicon Limited
3  */
4 
5 #ifndef RTE_DMADEV_TRACE_FP_H
6 #define RTE_DMADEV_TRACE_FP_H
7 
8 /**
9  * @file
10  *
11  * API for dmadev fastpath trace support
12  */
13 
14 #include <rte_trace_point.h>
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 RTE_TRACE_POINT_FP(
21 	rte_dma_trace_stats_get,
22 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan,
23 			     struct rte_dma_stats *stats, int ret),
24 	rte_trace_point_emit_i16(dev_id);
25 	rte_trace_point_emit_u16(vchan);
26 	rte_trace_point_emit_u64(stats->submitted);
27 	rte_trace_point_emit_u64(stats->completed);
28 	rte_trace_point_emit_u64(stats->errors);
29 	rte_trace_point_emit_int(ret);
30 )
31 
32 RTE_TRACE_POINT_FP(
33 	rte_dma_trace_vchan_status,
34 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan,
35 			     enum rte_dma_vchan_status *status, int ret),
36 #ifdef _RTE_TRACE_POINT_REGISTER_H_
37 	enum rte_dma_vchan_status __status = 0;
38 	status = &__status;
39 #endif /* _RTE_TRACE_POINT_REGISTER_H_ */
40 	int vchan_status = *status;
41 	rte_trace_point_emit_i16(dev_id);
42 	rte_trace_point_emit_u16(vchan);
43 	rte_trace_point_emit_int(vchan_status);
44 	rte_trace_point_emit_int(ret);
45 )
46 
47 RTE_TRACE_POINT_FP(
48 	rte_dma_trace_copy,
49 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan, rte_iova_t src,
50 			     rte_iova_t dst, uint32_t length, uint64_t flags,
51 			     int ret),
52 	rte_trace_point_emit_i16(dev_id);
53 	rte_trace_point_emit_u16(vchan);
54 	rte_trace_point_emit_u64(src);
55 	rte_trace_point_emit_u64(dst);
56 	rte_trace_point_emit_u32(length);
57 	rte_trace_point_emit_u64(flags);
58 	rte_trace_point_emit_int(ret);
59 )
60 
61 RTE_TRACE_POINT_FP(
62 	rte_dma_trace_copy_sg,
63 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan,
64 			     struct rte_dma_sge *src, struct rte_dma_sge *dst,
65 			     uint16_t nb_src, uint16_t nb_dst, uint64_t flags,
66 			     int ret),
67 	rte_trace_point_emit_i16(dev_id);
68 	rte_trace_point_emit_u16(vchan);
69 	rte_trace_point_emit_ptr(src);
70 	rte_trace_point_emit_ptr(dst);
71 	rte_trace_point_emit_u16(nb_src);
72 	rte_trace_point_emit_u16(nb_dst);
73 	rte_trace_point_emit_u64(flags);
74 	rte_trace_point_emit_int(ret);
75 )
76 
77 RTE_TRACE_POINT_FP(
78 	rte_dma_trace_fill,
79 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan, uint64_t pattern,
80 			     rte_iova_t dst, uint32_t length, uint64_t flags,
81 			     int ret),
82 	rte_trace_point_emit_i16(dev_id);
83 	rte_trace_point_emit_u16(vchan);
84 	rte_trace_point_emit_u64(pattern);
85 	rte_trace_point_emit_u64(dst);
86 	rte_trace_point_emit_u32(length);
87 	rte_trace_point_emit_u64(flags);
88 	rte_trace_point_emit_int(ret);
89 )
90 
91 RTE_TRACE_POINT_FP(
92 	rte_dma_trace_submit,
93 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan, int ret),
94 	rte_trace_point_emit_i16(dev_id);
95 	rte_trace_point_emit_u16(vchan);
96 	rte_trace_point_emit_int(ret);
97 )
98 
99 RTE_TRACE_POINT_FP(
100 	rte_dma_trace_completed,
101 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan,
102 			     const uint16_t nb_cpls, uint16_t *last_idx,
103 			     bool *has_error, uint16_t ret),
104 #ifdef _RTE_TRACE_POINT_REGISTER_H_
105 	uint16_t __last_idx = 0;
106 	bool __has_error = false;
107 	last_idx = &__last_idx;
108 	has_error = &__has_error;
109 #endif /* _RTE_TRACE_POINT_REGISTER_H_ */
110 	int has_error_val = *has_error;
111 	int last_idx_val = *last_idx;
112 	rte_trace_point_emit_i16(dev_id);
113 	rte_trace_point_emit_u16(vchan);
114 	rte_trace_point_emit_u16(nb_cpls);
115 	rte_trace_point_emit_int(last_idx_val);
116 	rte_trace_point_emit_int(has_error_val);
117 	rte_trace_point_emit_u16(ret);
118 )
119 
120 RTE_TRACE_POINT_FP(
121 	rte_dma_trace_completed_status,
122 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan,
123 			     const uint16_t nb_cpls, uint16_t *last_idx,
124 			     enum rte_dma_status_code *status, uint16_t ret),
125 #ifdef _RTE_TRACE_POINT_REGISTER_H_
126 	uint16_t __last_idx = 0;
127 	last_idx = &__last_idx;
128 #endif /* _RTE_TRACE_POINT_REGISTER_H_ */
129 	int last_idx_val = *last_idx;
130 	rte_trace_point_emit_i16(dev_id);
131 	rte_trace_point_emit_u16(vchan);
132 	rte_trace_point_emit_u16(nb_cpls);
133 	rte_trace_point_emit_int(last_idx_val);
134 	rte_trace_point_emit_ptr(status);
135 	rte_trace_point_emit_u16(ret);
136 )
137 
138 RTE_TRACE_POINT_FP(
139 	rte_dma_trace_burst_capacity,
140 	RTE_TRACE_POINT_ARGS(int16_t dev_id, uint16_t vchan, uint16_t ret),
141 	rte_trace_point_emit_i16(dev_id);
142 	rte_trace_point_emit_u16(vchan);
143 	rte_trace_point_emit_u16(ret);
144 )
145 
146 #ifdef __cplusplus
147 }
148 #endif
149 
150 #endif /* RTE_DMADEV_TRACE_FP_H */
151