Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/include/trace/events/host1x.h
26298 views
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
/*
3
* include/trace/events/host1x.h
4
*
5
* host1x event logging to ftrace.
6
*
7
* Copyright (c) 2010-2013, NVIDIA Corporation.
8
*/
9
10
#undef TRACE_SYSTEM
11
#define TRACE_SYSTEM host1x
12
13
#if !defined(_TRACE_HOST1X_H) || defined(TRACE_HEADER_MULTI_READ)
14
#define _TRACE_HOST1X_H
15
16
#include <linux/ktime.h>
17
#include <linux/tracepoint.h>
18
19
struct host1x_bo;
20
21
DECLARE_EVENT_CLASS(host1x,
22
TP_PROTO(const char *name),
23
TP_ARGS(name),
24
TP_STRUCT__entry(__field(const char *, name)),
25
TP_fast_assign(__entry->name = name;),
26
TP_printk("name=%s", __entry->name)
27
);
28
29
DEFINE_EVENT(host1x, host1x_channel_open,
30
TP_PROTO(const char *name),
31
TP_ARGS(name)
32
);
33
34
DEFINE_EVENT(host1x, host1x_channel_release,
35
TP_PROTO(const char *name),
36
TP_ARGS(name)
37
);
38
39
DEFINE_EVENT(host1x, host1x_cdma_begin,
40
TP_PROTO(const char *name),
41
TP_ARGS(name)
42
);
43
44
DEFINE_EVENT(host1x, host1x_cdma_end,
45
TP_PROTO(const char *name),
46
TP_ARGS(name)
47
);
48
49
TRACE_EVENT(host1x_cdma_push,
50
TP_PROTO(const char *name, u32 op1, u32 op2),
51
52
TP_ARGS(name, op1, op2),
53
54
TP_STRUCT__entry(
55
__field(const char *, name)
56
__field(u32, op1)
57
__field(u32, op2)
58
),
59
60
TP_fast_assign(
61
__entry->name = name;
62
__entry->op1 = op1;
63
__entry->op2 = op2;
64
),
65
66
TP_printk("name=%s, op1=%08x, op2=%08x",
67
__entry->name, __entry->op1, __entry->op2)
68
);
69
70
TRACE_EVENT(host1x_cdma_push_wide,
71
TP_PROTO(const char *name, u32 op1, u32 op2, u32 op3, u32 op4),
72
73
TP_ARGS(name, op1, op2, op3, op4),
74
75
TP_STRUCT__entry(
76
__field(const char *, name)
77
__field(u32, op1)
78
__field(u32, op2)
79
__field(u32, op3)
80
__field(u32, op4)
81
),
82
83
TP_fast_assign(
84
__entry->name = name;
85
__entry->op1 = op1;
86
__entry->op2 = op2;
87
__entry->op3 = op3;
88
__entry->op4 = op4;
89
),
90
91
TP_printk("name=%s, op1=%08x, op2=%08x, op3=%08x op4=%08x",
92
__entry->name, __entry->op1, __entry->op2, __entry->op3,
93
__entry->op4)
94
);
95
96
TRACE_EVENT(host1x_cdma_push_gather,
97
TP_PROTO(const char *name, struct host1x_bo *bo,
98
u32 words, u32 offset, void *cmdbuf),
99
100
TP_ARGS(name, bo, words, offset, cmdbuf),
101
102
TP_STRUCT__entry(
103
__field(const char *, name)
104
__field(struct host1x_bo *, bo)
105
__field(u32, words)
106
__field(u32, offset)
107
__field(bool, cmdbuf)
108
__dynamic_array(u32, cmdbuf, words)
109
),
110
111
TP_fast_assign(
112
if (cmdbuf) {
113
memcpy(__get_dynamic_array(cmdbuf), cmdbuf+offset,
114
words * sizeof(u32));
115
}
116
__entry->cmdbuf = cmdbuf;
117
__entry->name = name;
118
__entry->bo = bo;
119
__entry->words = words;
120
__entry->offset = offset;
121
),
122
123
TP_printk("name=%s, bo=%p, words=%u, offset=%d, contents=[%s]",
124
__entry->name, __entry->bo,
125
__entry->words, __entry->offset,
126
__print_hex(__get_dynamic_array(cmdbuf),
127
__entry->cmdbuf ? __entry->words * 4 : 0))
128
);
129
130
TRACE_EVENT(host1x_channel_submit,
131
TP_PROTO(const char *name, u32 cmdbufs, u32 relocs, u32 syncpt_id,
132
u32 syncpt_incrs),
133
134
TP_ARGS(name, cmdbufs, relocs, syncpt_id, syncpt_incrs),
135
136
TP_STRUCT__entry(
137
__field(const char *, name)
138
__field(u32, cmdbufs)
139
__field(u32, relocs)
140
__field(u32, syncpt_id)
141
__field(u32, syncpt_incrs)
142
),
143
144
TP_fast_assign(
145
__entry->name = name;
146
__entry->cmdbufs = cmdbufs;
147
__entry->relocs = relocs;
148
__entry->syncpt_id = syncpt_id;
149
__entry->syncpt_incrs = syncpt_incrs;
150
),
151
152
TP_printk("name=%s, cmdbufs=%u, relocs=%u, syncpt_id=%u, "
153
"syncpt_incrs=%u",
154
__entry->name, __entry->cmdbufs, __entry->relocs,
155
__entry->syncpt_id, __entry->syncpt_incrs)
156
);
157
158
TRACE_EVENT(host1x_channel_submitted,
159
TP_PROTO(const char *name, u32 syncpt_base, u32 syncpt_max),
160
161
TP_ARGS(name, syncpt_base, syncpt_max),
162
163
TP_STRUCT__entry(
164
__field(const char *, name)
165
__field(u32, syncpt_base)
166
__field(u32, syncpt_max)
167
),
168
169
TP_fast_assign(
170
__entry->name = name;
171
__entry->syncpt_base = syncpt_base;
172
__entry->syncpt_max = syncpt_max;
173
),
174
175
TP_printk("name=%s, syncpt_base=%d, syncpt_max=%d",
176
__entry->name, __entry->syncpt_base, __entry->syncpt_max)
177
);
178
179
TRACE_EVENT(host1x_channel_submit_complete,
180
TP_PROTO(const char *name, int count, u32 thresh),
181
182
TP_ARGS(name, count, thresh),
183
184
TP_STRUCT__entry(
185
__field(const char *, name)
186
__field(int, count)
187
__field(u32, thresh)
188
),
189
190
TP_fast_assign(
191
__entry->name = name;
192
__entry->count = count;
193
__entry->thresh = thresh;
194
),
195
196
TP_printk("name=%s, count=%d, thresh=%d",
197
__entry->name, __entry->count, __entry->thresh)
198
);
199
200
TRACE_EVENT(host1x_wait_cdma,
201
TP_PROTO(const char *name, u32 eventid),
202
203
TP_ARGS(name, eventid),
204
205
TP_STRUCT__entry(
206
__field(const char *, name)
207
__field(u32, eventid)
208
),
209
210
TP_fast_assign(
211
__entry->name = name;
212
__entry->eventid = eventid;
213
),
214
215
TP_printk("name=%s, event=%d", __entry->name, __entry->eventid)
216
);
217
218
TRACE_EVENT(host1x_syncpt_load_min,
219
TP_PROTO(u32 id, u32 val),
220
221
TP_ARGS(id, val),
222
223
TP_STRUCT__entry(
224
__field(u32, id)
225
__field(u32, val)
226
),
227
228
TP_fast_assign(
229
__entry->id = id;
230
__entry->val = val;
231
),
232
233
TP_printk("id=%d, val=%d", __entry->id, __entry->val)
234
);
235
236
TRACE_EVENT(host1x_syncpt_wait_check,
237
TP_PROTO(struct host1x_bo *bo, u32 offset, u32 syncpt_id, u32 thresh,
238
u32 min),
239
240
TP_ARGS(bo, offset, syncpt_id, thresh, min),
241
242
TP_STRUCT__entry(
243
__field(struct host1x_bo *, bo)
244
__field(u32, offset)
245
__field(u32, syncpt_id)
246
__field(u32, thresh)
247
__field(u32, min)
248
),
249
250
TP_fast_assign(
251
__entry->bo = bo;
252
__entry->offset = offset;
253
__entry->syncpt_id = syncpt_id;
254
__entry->thresh = thresh;
255
__entry->min = min;
256
),
257
258
TP_printk("bo=%p, offset=%05x, id=%d, thresh=%d, current=%d",
259
__entry->bo, __entry->offset,
260
__entry->syncpt_id, __entry->thresh,
261
__entry->min)
262
);
263
264
#endif /* _TRACE_HOST1X_H */
265
266
/* This part must be outside protection */
267
#include <trace/define_trace.h>
268
269