1 // SPDX-License-Identifier: GPL-2.0-only
3 * trinity/trinity_trace.h: Trace header for trinity devices
5 * Copyright (C) 2021 Samsung Electronics
6 * Copyright (C) 2021 Dongju Chae <dongju.chae@samsung.com>
9 #if !defined(__TRINITY_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ)
10 #define __TRINITY_TRACE_H__
12 #include <linux/tracepoint.h>
15 #define TRACE_SYSTEM trinity
16 #define TRACE_INCLUDE_FILE trinity_trace
19 TRACE_EVENT(triv2_run_trigger,
20 TP_PROTO(u32 device_id, s32 slot),
21 TP_ARGS(device_id, slot),
23 __field(u32, device_id)
27 __entry->device_id = device_id;
30 TP_printk("device_id=%u slot=%d",
34 TRACE_EVENT(triv2_wakeup_cp,
35 TP_PROTO(u32 device_id),
38 __field(u32, device_id)
41 __entry->device_id = device_id;
43 TP_printk("device_id=%u",
46 TRACE_EVENT(triv2_handle_irq,
47 TP_PROTO(u32 device_id, s32 irq),
48 TP_ARGS(device_id, irq),
50 __field(u32, device_id)
54 __entry->device_id = device_id;
57 TP_printk("device_id=%u irq=%d",
61 TRACE_EVENT(triv2_handle_threaded_irq,
62 TP_PROTO(u32 device_id, s32 irq),
63 TP_ARGS(device_id, irq),
65 __field(u32, device_id)
69 __entry->device_id = device_id;
72 TP_printk("device_id=%u irq=%d",
76 TRACE_EVENT(triv2_handle_cmd_done,
77 TP_PROTO(u32 device_id, s32 slot, u32 cycles, u32 time),
78 TP_ARGS(device_id, slot, cycles, time),
80 __field(u32, device_id)
86 __entry->device_id = device_id;
88 __entry->cycles = cycles;
91 TP_printk("device_id=%u slot=%d cycles=%u time(us)=%u",
97 TRACE_EVENT(triv2_map_sched_data,
98 TP_PROTO(u32 device_id, s32 slot, u32 batch_size, u32 in_cnt, u32 out_cnt),
99 TP_ARGS(device_id, slot, batch_size, in_cnt, out_cnt),
101 __field(u32, device_id)
103 __field(u32, batch_size)
105 __field(u32, out_cnt)
108 __entry->device_id = device_id;
109 __entry->slot = slot;
110 __entry->batch_size = batch_size;
111 __entry->in_cnt = in_cnt;
112 __entry->out_cnt = out_cnt;
114 TP_printk("device_id=%u slot=%d batch_size=%u in_cnt=%u out_cnt=%u",
121 TRACE_EVENT(triv2_unmap_sched_data,
122 TP_PROTO(u32 device_id, s32 slot),
123 TP_ARGS(device_id, slot),
125 __field(u32, device_id)
129 __entry->device_id = device_id;
130 __entry->slot = slot;
132 TP_printk("device_id=%u slot=%d",
136 TRACE_EVENT(trinity_ioctl_msg,
137 TP_PROTO(u32 device_id, s32 app_id, char* msg),
138 TP_ARGS(device_id, app_id, msg),
140 __field(u32, device_id)
145 __entry->device_id = device_id;
146 __entry->app_id = app_id;
149 TP_printk("device_id=%u app_id=%d msg=%s",
154 TRACE_EVENT(trinity_ioctl_next_req,
155 TP_PROTO(u32 device_id, s32 app_id, s32 req_id),
156 TP_ARGS(device_id, app_id, req_id),
158 __field(u32, device_id)
163 __entry->device_id = device_id;
164 __entry->app_id = app_id;
165 __entry->req_id = req_id;
167 TP_printk("device_id=%u app_id=%d req_id=%d",
172 TRACE_EVENT(trinity_ioctl_stop_req,
173 TP_PROTO(u32 device_id, s32 app_id, s32 req_id),
174 TP_ARGS(device_id, app_id, req_id),
176 __field(u32, device_id)
181 __entry->device_id = device_id;
182 __entry->app_id = app_id;
183 __entry->req_id = req_id;
185 TP_printk("device_id=%u app_id=%d req_id=%d",
190 TRACE_EVENT(trinity_ioctl_hwmem_alloc,
191 TP_PROTO(u32 device_id, s32 app_id, s64 size, s32 dbuf_fd),
192 TP_ARGS(device_id, app_id, size, dbuf_fd),
194 __field(u32, device_id)
197 __field(s32, dbuf_fd)
200 __entry->device_id = device_id;
201 __entry->app_id = app_id;
202 __entry->size = size;
203 __entry->dbuf_fd = dbuf_fd;
205 TP_printk("device_id=%u app_id=%d size=%lld dbuf_fd=%d",
211 TRACE_EVENT(trinity_ioctl_hwmem_dealloc,
212 TP_PROTO(u32 device_id, s32 app_id, s32 dbuf_fd),
213 TP_ARGS(device_id, app_id, dbuf_fd),
215 __field(u32, device_id)
217 __field(s32, dbuf_fd)
220 __entry->device_id = device_id;
221 __entry->app_id = app_id;
222 __entry->dbuf_fd = dbuf_fd;
224 TP_printk("device_id=%u app_id=%d dbuf_fd=%d",
229 TRACE_EVENT(trinity_ioctl_get_profile_meta,
230 TP_PROTO(u32 device_id, s32 app_id, s32 req_id, u32 profile_size),
231 TP_ARGS(device_id, app_id, req_id, profile_size),
233 __field(u32, device_id)
236 __field(u32, profile_size)
239 __entry->device_id = device_id;
240 __entry->app_id = app_id;
241 __entry->req_id = req_id;
242 __entry->profile_size = profile_size;
244 TP_printk("device_id=%u app_id=%d req_id=%d profile_size=%u",
248 __entry->profile_size)
250 TRACE_EVENT(trinity_ioctl_get_profile_buff,
251 TP_PROTO(u32 device_id, s32 app_id, s32 req_id, u32 profile_pos, u32 profile_size),
252 TP_ARGS(device_id, app_id, req_id, profile_pos, profile_size),
254 __field(u32, device_id)
257 __field(u32, profile_pos)
258 __field(u32, profile_size)
261 __entry->device_id = device_id;
262 __entry->app_id = app_id;
263 __entry->req_id = req_id;
264 __entry->profile_pos = profile_pos;
265 __entry->profile_size = profile_size;
267 TP_printk("device_id=%u app_id=%d req_id=%d profile_pos=%u profile_size=%u",
271 __entry->profile_pos,
272 __entry->profile_size)
274 TRACE_EVENT(trinity_ioctl_register_model,
275 TP_PROTO(u32 device_id, s32 app_id, u64 config_id, s32 dbuf_fd, u64 program_offset_addr, u64 program_size),
276 TP_ARGS(device_id, app_id, config_id, dbuf_fd, program_offset_addr, program_size),
278 __field(u32, device_id)
280 __field(u64, config_id)
281 __field(s32, dbuf_fd)
282 __field(u64, program_offset_addr)
283 __field(u64, program_size)
286 __entry->device_id = device_id;
287 __entry->app_id = app_id;
288 __entry->config_id = config_id;
289 __entry->dbuf_fd = dbuf_fd;
290 __entry->program_offset_addr = program_offset_addr;
291 __entry->program_size = program_size;
293 TP_printk("device_id=%u app_id=%d config_id=0x%llx dbuf_fd=%d program_offset_addr=0x%llx program_size=0x%llx",
298 __entry->program_offset_addr,
299 __entry->program_size)
301 TRACE_EVENT(trinity_ioctl_register_model_drv_ver1,
302 TP_PROTO(u64 weight_offset_addr),
303 TP_ARGS(weight_offset_addr),
305 __field(u64, weight_offset_addr)
308 __entry->weight_offset_addr = weight_offset_addr;
310 TP_printk("weight_offset_addr=0x%llx",
311 __entry->weight_offset_addr)
313 TRACE_EVENT(trinity_ioctl_register_model_drv_ver2,
314 TP_PROTO(s32 metadata_dbuf_fd, s32 metadata_ext_dbuf_fd, u64 metadata_ext_size),
315 TP_ARGS(metadata_dbuf_fd, metadata_ext_dbuf_fd, metadata_ext_size),
317 __field(s32, metadata_dbuf_fd)
318 __field(s32, metadata_ext_dbuf_fd)
319 __field(u64, metadata_ext_size)
322 __entry->metadata_dbuf_fd = metadata_dbuf_fd;
323 __entry->metadata_ext_dbuf_fd = metadata_ext_dbuf_fd;
324 __entry->metadata_ext_size = metadata_ext_size;
326 TP_printk("metadata_dbuf_fd=%d metadata_ext_dbuf_fd=%d metadata_ext_size=0x%llx",
327 __entry->metadata_dbuf_fd,
328 __entry->metadata_ext_dbuf_fd,
329 __entry->metadata_ext_size)
331 TRACE_EVENT(trinity_ioctl_run_input,
332 TP_PROTO(u32 device_id, s32 app_id, s32 dbuf_fd, u64 model_id),
333 TP_ARGS(device_id, app_id, dbuf_fd, model_id),
335 __field(u32, device_id)
337 __field(s32, dbuf_fd)
338 __field(u64, model_id)
341 __entry->device_id = device_id;
342 __entry->app_id = app_id;
343 __entry->dbuf_fd = dbuf_fd;
344 __entry->model_id = model_id;
346 TP_printk("device_id=%u app_id=%d dbuf_fd=%d model_id=0x%llx",
352 TRACE_EVENT(trinity_ioctl_run_input_drv_ver1,
353 TP_PROTO(u64 activation_offset_addr0, u64 activation_offset_addr1),
354 TP_ARGS(activation_offset_addr0, activation_offset_addr1),
356 __field(u64, activation_offset_addr0)
357 __field(u64, activation_offset_addr1)
360 __entry->activation_offset_addr0 = activation_offset_addr0;
361 __entry->activation_offset_addr1 = activation_offset_addr1;
363 TP_printk("activation_offset_addr0=0x%llx activation_offset_addr1=0x%llx",
364 __entry->activation_offset_addr0,
365 __entry->activation_offset_addr1)
367 TRACE_EVENT(trinity_ioctl_run_input_drv_ver2,
368 TP_PROTO(s64 timeout_ms, u32 priority, u32 num_segments, s32 input_mode, s32 output_mode),
369 TP_ARGS(timeout_ms, priority, num_segments, input_mode, output_mode),
371 __field(s64, timeout_ms)
372 __field(u32, priority)
373 __field(u32, num_segments)
374 __field(s32, input_mode)
375 __field(s32, output_mode)
378 __entry->timeout_ms = timeout_ms;
379 __entry->priority = priority;
380 __entry->num_segments = num_segments;
381 __entry->input_mode = input_mode;
382 __entry->output_mode = output_mode;
384 TP_printk("timeout_ms=%lld priority=%u num_segments=%u input_mode=%d output_mode=%d",
387 __entry->num_segments,
389 __entry->output_mode)
394 #endif /* __TRINITY_TRACE_H__ */
396 /* This part must be outside protection */
397 #undef TRACE_INCLUDE_PATH
398 #define TRACE_INCLUDE_PATH .
399 #include <trace/define_trace.h>