Commit | Line | Data |
---|---|---|
b3ccada6 PP |
1 | /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ |
2 | /* Copyright (c) 2021, NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ | |
3 | ||
4 | #undef TRACE_SYSTEM | |
5 | #define TRACE_SYSTEM mlx5 | |
6 | ||
7 | #if !defined(_MLX5_SF_TP_) || defined(TRACE_HEADER_MULTI_READ) | |
8 | #define _MLX5_SF_TP_ | |
9 | ||
10 | #include <linux/tracepoint.h> | |
11 | #include <linux/mlx5/driver.h> | |
12 | #include "sf/vhca_event.h" | |
13 | ||
14 | TRACE_EVENT(mlx5_sf_add, | |
15 | TP_PROTO(const struct mlx5_core_dev *dev, | |
16 | unsigned int port_index, | |
17 | u32 controller, | |
18 | u16 hw_fn_id, | |
19 | u32 sfnum), | |
20 | TP_ARGS(dev, port_index, controller, hw_fn_id, sfnum), | |
21 | TP_STRUCT__entry(__string(devname, dev_name(dev->device)) | |
22 | __field(unsigned int, port_index) | |
23 | __field(u32, controller) | |
24 | __field(u16, hw_fn_id) | |
25 | __field(u32, sfnum) | |
26 | ), | |
2c92ca84 | 27 | TP_fast_assign(__assign_str(devname); |
b3ccada6 PP |
28 | __entry->port_index = port_index; |
29 | __entry->controller = controller; | |
30 | __entry->hw_fn_id = hw_fn_id; | |
31 | __entry->sfnum = sfnum; | |
32 | ), | |
33 | TP_printk("(%s) port_index=%u controller=%u hw_id=0x%x sfnum=%u\n", | |
34 | __get_str(devname), __entry->port_index, __entry->controller, | |
35 | __entry->hw_fn_id, __entry->sfnum) | |
36 | ); | |
37 | ||
38 | TRACE_EVENT(mlx5_sf_free, | |
39 | TP_PROTO(const struct mlx5_core_dev *dev, | |
40 | unsigned int port_index, | |
41 | u32 controller, | |
42 | u16 hw_fn_id), | |
43 | TP_ARGS(dev, port_index, controller, hw_fn_id), | |
44 | TP_STRUCT__entry(__string(devname, dev_name(dev->device)) | |
45 | __field(unsigned int, port_index) | |
46 | __field(u32, controller) | |
47 | __field(u16, hw_fn_id) | |
48 | ), | |
2c92ca84 | 49 | TP_fast_assign(__assign_str(devname); |
b3ccada6 PP |
50 | __entry->port_index = port_index; |
51 | __entry->controller = controller; | |
52 | __entry->hw_fn_id = hw_fn_id; | |
53 | ), | |
54 | TP_printk("(%s) port_index=%u controller=%u hw_id=0x%x\n", | |
55 | __get_str(devname), __entry->port_index, __entry->controller, | |
56 | __entry->hw_fn_id) | |
57 | ); | |
58 | ||
59 | TRACE_EVENT(mlx5_sf_hwc_alloc, | |
60 | TP_PROTO(const struct mlx5_core_dev *dev, | |
61 | u32 controller, | |
62 | u16 hw_fn_id, | |
63 | u32 sfnum), | |
64 | TP_ARGS(dev, controller, hw_fn_id, sfnum), | |
65 | TP_STRUCT__entry(__string(devname, dev_name(dev->device)) | |
66 | __field(u32, controller) | |
67 | __field(u16, hw_fn_id) | |
68 | __field(u32, sfnum) | |
69 | ), | |
2c92ca84 | 70 | TP_fast_assign(__assign_str(devname); |
b3ccada6 PP |
71 | __entry->controller = controller; |
72 | __entry->hw_fn_id = hw_fn_id; | |
73 | __entry->sfnum = sfnum; | |
74 | ), | |
75 | TP_printk("(%s) controller=%u hw_id=0x%x sfnum=%u\n", | |
76 | __get_str(devname), __entry->controller, __entry->hw_fn_id, | |
77 | __entry->sfnum) | |
78 | ); | |
79 | ||
80 | TRACE_EVENT(mlx5_sf_hwc_free, | |
81 | TP_PROTO(const struct mlx5_core_dev *dev, | |
82 | u16 hw_fn_id), | |
83 | TP_ARGS(dev, hw_fn_id), | |
84 | TP_STRUCT__entry(__string(devname, dev_name(dev->device)) | |
85 | __field(u16, hw_fn_id) | |
86 | ), | |
2c92ca84 | 87 | TP_fast_assign(__assign_str(devname); |
b3ccada6 PP |
88 | __entry->hw_fn_id = hw_fn_id; |
89 | ), | |
90 | TP_printk("(%s) hw_id=0x%x\n", __get_str(devname), __entry->hw_fn_id) | |
91 | ); | |
92 | ||
93 | TRACE_EVENT(mlx5_sf_hwc_deferred_free, | |
94 | TP_PROTO(const struct mlx5_core_dev *dev, | |
95 | u16 hw_fn_id), | |
96 | TP_ARGS(dev, hw_fn_id), | |
97 | TP_STRUCT__entry(__string(devname, dev_name(dev->device)) | |
98 | __field(u16, hw_fn_id) | |
99 | ), | |
2c92ca84 | 100 | TP_fast_assign(__assign_str(devname); |
b3ccada6 PP |
101 | __entry->hw_fn_id = hw_fn_id; |
102 | ), | |
103 | TP_printk("(%s) hw_id=0x%x\n", __get_str(devname), __entry->hw_fn_id) | |
104 | ); | |
105 | ||
106 | DECLARE_EVENT_CLASS(mlx5_sf_state_template, | |
107 | TP_PROTO(const struct mlx5_core_dev *dev, | |
108 | u32 port_index, | |
109 | u32 controller, | |
110 | u16 hw_fn_id), | |
111 | TP_ARGS(dev, port_index, controller, hw_fn_id), | |
112 | TP_STRUCT__entry(__string(devname, dev_name(dev->device)) | |
113 | __field(unsigned int, port_index) | |
114 | __field(u32, controller) | |
115 | __field(u16, hw_fn_id)), | |
2c92ca84 | 116 | TP_fast_assign(__assign_str(devname); |
b3ccada6 PP |
117 | __entry->port_index = port_index; |
118 | __entry->controller = controller; | |
119 | __entry->hw_fn_id = hw_fn_id; | |
120 | ), | |
121 | TP_printk("(%s) port_index=%u controller=%u hw_id=0x%x\n", | |
122 | __get_str(devname), __entry->port_index, __entry->controller, | |
123 | __entry->hw_fn_id) | |
124 | ); | |
125 | ||
126 | DEFINE_EVENT(mlx5_sf_state_template, mlx5_sf_activate, | |
127 | TP_PROTO(const struct mlx5_core_dev *dev, | |
128 | u32 port_index, | |
129 | u32 controller, | |
130 | u16 hw_fn_id), | |
131 | TP_ARGS(dev, port_index, controller, hw_fn_id) | |
132 | ); | |
133 | ||
134 | DEFINE_EVENT(mlx5_sf_state_template, mlx5_sf_deactivate, | |
135 | TP_PROTO(const struct mlx5_core_dev *dev, | |
136 | u32 port_index, | |
137 | u32 controller, | |
138 | u16 hw_fn_id), | |
139 | TP_ARGS(dev, port_index, controller, hw_fn_id) | |
140 | ); | |
141 | ||
142 | TRACE_EVENT(mlx5_sf_update_state, | |
143 | TP_PROTO(const struct mlx5_core_dev *dev, | |
144 | unsigned int port_index, | |
145 | u32 controller, | |
146 | u16 hw_fn_id, | |
147 | u8 state), | |
148 | TP_ARGS(dev, port_index, controller, hw_fn_id, state), | |
149 | TP_STRUCT__entry(__string(devname, dev_name(dev->device)) | |
150 | __field(unsigned int, port_index) | |
151 | __field(u32, controller) | |
152 | __field(u16, hw_fn_id) | |
153 | __field(u8, state) | |
154 | ), | |
2c92ca84 | 155 | TP_fast_assign(__assign_str(devname); |
b3ccada6 PP |
156 | __entry->port_index = port_index; |
157 | __entry->controller = controller; | |
158 | __entry->hw_fn_id = hw_fn_id; | |
159 | __entry->state = state; | |
160 | ), | |
161 | TP_printk("(%s) port_index=%u controller=%u hw_id=0x%x state=%u\n", | |
162 | __get_str(devname), __entry->port_index, __entry->controller, | |
163 | __entry->hw_fn_id, __entry->state) | |
164 | ); | |
165 | ||
166 | #endif /* _MLX5_SF_TP_ */ | |
167 | ||
168 | /* This part must be outside protection */ | |
169 | #undef TRACE_INCLUDE_PATH | |
170 | #define TRACE_INCLUDE_PATH sf/diag | |
171 | #undef TRACE_INCLUDE_FILE | |
172 | #define TRACE_INCLUDE_FILE sf_tracepoint | |
173 | #include <trace/define_trace.h> |