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