Branch data Line data Source code
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 : 251 : 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 : 251 : 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 : 251 : 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 : 251 : 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 : 251 : 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 : 251 : 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 : 251 : 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 : 251 : 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 : 251 : 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 */
|