xref: /openbmc/linux/include/trace/events/gpu_mem.h (revision ead5d1f4d877e92c051e1a1ade623d0d30e71619)
1bbd9d056SYiwei Zhang /* SPDX-License-Identifier: GPL-2.0 */
2bbd9d056SYiwei Zhang /*
3bbd9d056SYiwei Zhang  * GPU memory trace points
4bbd9d056SYiwei Zhang  *
5bbd9d056SYiwei Zhang  * Copyright (C) 2020 Google, Inc.
6bbd9d056SYiwei Zhang  */
7bbd9d056SYiwei Zhang 
8bbd9d056SYiwei Zhang #undef TRACE_SYSTEM
9bbd9d056SYiwei Zhang #define TRACE_SYSTEM gpu_mem
10bbd9d056SYiwei Zhang 
11bbd9d056SYiwei Zhang #if !defined(_TRACE_GPU_MEM_H) || defined(TRACE_HEADER_MULTI_READ)
12bbd9d056SYiwei Zhang #define _TRACE_GPU_MEM_H
13bbd9d056SYiwei Zhang 
14bbd9d056SYiwei Zhang #include <linux/tracepoint.h>
15bbd9d056SYiwei Zhang 
16bbd9d056SYiwei Zhang /*
17bbd9d056SYiwei Zhang  * The gpu_memory_total event indicates that there's an update to either the
18bbd9d056SYiwei Zhang  * global or process total gpu memory counters.
19bbd9d056SYiwei Zhang  *
20bbd9d056SYiwei Zhang  * This event should be emitted whenever the kernel device driver allocates,
21bbd9d056SYiwei Zhang  * frees, imports, unimports memory in the GPU addressable space.
22bbd9d056SYiwei Zhang  *
23bbd9d056SYiwei Zhang  * @gpu_id: This is the gpu id.
24bbd9d056SYiwei Zhang  *
25bbd9d056SYiwei Zhang  * @pid: Put 0 for global total, while positive pid for process total.
26bbd9d056SYiwei Zhang  *
27*386c82a7SYiwei Zhang  * @size: Size of the allocation in bytes.
28bbd9d056SYiwei Zhang  *
29bbd9d056SYiwei Zhang  */
30bbd9d056SYiwei Zhang TRACE_EVENT(gpu_mem_total,
31bbd9d056SYiwei Zhang 
32bbd9d056SYiwei Zhang 	TP_PROTO(uint32_t gpu_id, uint32_t pid, uint64_t size),
33bbd9d056SYiwei Zhang 
34bbd9d056SYiwei Zhang 	TP_ARGS(gpu_id, pid, size),
35bbd9d056SYiwei Zhang 
36bbd9d056SYiwei Zhang 	TP_STRUCT__entry(
37bbd9d056SYiwei Zhang 		__field(uint32_t, gpu_id)
38bbd9d056SYiwei Zhang 		__field(uint32_t, pid)
39bbd9d056SYiwei Zhang 		__field(uint64_t, size)
40bbd9d056SYiwei Zhang 	),
41bbd9d056SYiwei Zhang 
42bbd9d056SYiwei Zhang 	TP_fast_assign(
43bbd9d056SYiwei Zhang 		__entry->gpu_id = gpu_id;
44bbd9d056SYiwei Zhang 		__entry->pid = pid;
45bbd9d056SYiwei Zhang 		__entry->size = size;
46bbd9d056SYiwei Zhang 	),
47bbd9d056SYiwei Zhang 
48bbd9d056SYiwei Zhang 	TP_printk("gpu_id=%u pid=%u size=%llu",
49bbd9d056SYiwei Zhang 		__entry->gpu_id,
50bbd9d056SYiwei Zhang 		__entry->pid,
51bbd9d056SYiwei Zhang 		__entry->size)
52bbd9d056SYiwei Zhang );
53bbd9d056SYiwei Zhang 
54bbd9d056SYiwei Zhang #endif /* _TRACE_GPU_MEM_H */
55bbd9d056SYiwei Zhang 
56bbd9d056SYiwei Zhang /* This part must be outside protection */
57bbd9d056SYiwei Zhang #include <trace/define_trace.h>
58