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