Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.18 263 lines 6.3 kB view raw
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright © 2024 Intel Corporation 4 */ 5 6#undef TRACE_SYSTEM 7#define TRACE_SYSTEM xe 8 9#if !defined(_XE_TRACE_BO_H_) || defined(TRACE_HEADER_MULTI_READ) 10#define _XE_TRACE_BO_H_ 11 12#include <linux/tracepoint.h> 13#include <linux/types.h> 14 15#include "xe_bo.h" 16#include "xe_bo_types.h" 17#include "xe_vm.h" 18 19#define __dev_name_bo(bo) dev_name(xe_bo_device(bo)->drm.dev) 20#define __dev_name_vm(vm) dev_name((vm)->xe->drm.dev) 21#define __dev_name_vma(vma) __dev_name_vm(xe_vma_vm(vma)) 22 23DECLARE_EVENT_CLASS(xe_bo, 24 TP_PROTO(struct xe_bo *bo), 25 TP_ARGS(bo), 26 27 TP_STRUCT__entry( 28 __string(dev, __dev_name_bo(bo)) 29 __field(size_t, size) 30 __field(u32, flags) 31 __field(struct xe_vm *, vm) 32 ), 33 34 TP_fast_assign( 35 __assign_str(dev); 36 __entry->size = xe_bo_size(bo); 37 __entry->flags = bo->flags; 38 __entry->vm = bo->vm; 39 ), 40 41 TP_printk("dev=%s, size=%zu, flags=0x%02x, vm=%p", 42 __get_str(dev), __entry->size, 43 __entry->flags, __entry->vm) 44); 45 46DEFINE_EVENT(xe_bo, xe_bo_cpu_fault, 47 TP_PROTO(struct xe_bo *bo), 48 TP_ARGS(bo) 49); 50 51DEFINE_EVENT(xe_bo, xe_bo_validate, 52 TP_PROTO(struct xe_bo *bo), 53 TP_ARGS(bo) 54); 55 56DEFINE_EVENT(xe_bo, xe_bo_create, 57 TP_PROTO(struct xe_bo *bo), 58 TP_ARGS(bo) 59); 60 61TRACE_EVENT(xe_bo_move, 62 TP_PROTO(struct xe_bo *bo, uint32_t new_placement, uint32_t old_placement, 63 bool move_lacks_source), 64 TP_ARGS(bo, new_placement, old_placement, move_lacks_source), 65 TP_STRUCT__entry( 66 __field(struct xe_bo *, bo) 67 __field(size_t, size) 68 __string(new_placement_name, xe_mem_type_to_name[new_placement]) 69 __string(old_placement_name, xe_mem_type_to_name[old_placement]) 70 __string(device_id, __dev_name_bo(bo)) 71 __field(bool, move_lacks_source) 72 ), 73 74 TP_fast_assign( 75 __entry->bo = bo; 76 __entry->size = xe_bo_size(bo); 77 __assign_str(new_placement_name); 78 __assign_str(old_placement_name); 79 __assign_str(device_id); 80 __entry->move_lacks_source = move_lacks_source; 81 ), 82 TP_printk("move_lacks_source:%s, migrate object %p [size %zu] from %s to %s device_id:%s", 83 __entry->move_lacks_source ? "yes" : "no", __entry->bo, __entry->size, 84 __get_str(old_placement_name), 85 __get_str(new_placement_name), __get_str(device_id)) 86); 87 88DECLARE_EVENT_CLASS(xe_vma, 89 TP_PROTO(struct xe_vma *vma), 90 TP_ARGS(vma), 91 92 TP_STRUCT__entry( 93 __string(dev, __dev_name_vma(vma)) 94 __field(struct xe_vma *, vma) 95 __field(struct xe_vm *, vm) 96 __field(u32, asid) 97 __field(u64, start) 98 __field(u64, end) 99 __field(u64, ptr) 100 ), 101 102 TP_fast_assign( 103 __assign_str(dev); 104 __entry->vma = vma; 105 __entry->vm = xe_vma_vm(vma); 106 __entry->asid = xe_vma_vm(vma)->usm.asid; 107 __entry->start = xe_vma_start(vma); 108 __entry->end = xe_vma_end(vma) - 1; 109 __entry->ptr = xe_vma_userptr(vma); 110 ), 111 112 TP_printk("dev=%s, vma=%p, vm=%p, asid=0x%05x, start=0x%012llx, end=0x%012llx, userptr=0x%012llx", 113 __get_str(dev), __entry->vma, __entry->vm, 114 __entry->asid, __entry->start, 115 __entry->end, __entry->ptr) 116) 117 118DEFINE_EVENT(xe_vma, xe_vma_flush, 119 TP_PROTO(struct xe_vma *vma), 120 TP_ARGS(vma) 121); 122 123DEFINE_EVENT(xe_vma, xe_vma_pagefault, 124 TP_PROTO(struct xe_vma *vma), 125 TP_ARGS(vma) 126); 127 128DEFINE_EVENT(xe_vma, xe_vma_acc, 129 TP_PROTO(struct xe_vma *vma), 130 TP_ARGS(vma) 131); 132 133DEFINE_EVENT(xe_vma, xe_vma_bind, 134 TP_PROTO(struct xe_vma *vma), 135 TP_ARGS(vma) 136); 137 138DEFINE_EVENT(xe_vma, xe_vma_pf_bind, 139 TP_PROTO(struct xe_vma *vma), 140 TP_ARGS(vma) 141); 142 143DEFINE_EVENT(xe_vma, xe_vma_unbind, 144 TP_PROTO(struct xe_vma *vma), 145 TP_ARGS(vma) 146); 147 148DEFINE_EVENT(xe_vma, xe_vma_userptr_rebind_worker, 149 TP_PROTO(struct xe_vma *vma), 150 TP_ARGS(vma) 151); 152 153DEFINE_EVENT(xe_vma, xe_vma_userptr_rebind_exec, 154 TP_PROTO(struct xe_vma *vma), 155 TP_ARGS(vma) 156); 157 158DEFINE_EVENT(xe_vma, xe_vma_rebind_worker, 159 TP_PROTO(struct xe_vma *vma), 160 TP_ARGS(vma) 161); 162 163DEFINE_EVENT(xe_vma, xe_vma_rebind_exec, 164 TP_PROTO(struct xe_vma *vma), 165 TP_ARGS(vma) 166); 167 168DEFINE_EVENT(xe_vma, xe_vma_userptr_invalidate, 169 TP_PROTO(struct xe_vma *vma), 170 TP_ARGS(vma) 171); 172 173DEFINE_EVENT(xe_vma, xe_vma_invalidate, 174 TP_PROTO(struct xe_vma *vma), 175 TP_ARGS(vma) 176); 177 178DEFINE_EVENT(xe_vma, xe_vma_evict, 179 TP_PROTO(struct xe_vma *vma), 180 TP_ARGS(vma) 181); 182 183DEFINE_EVENT(xe_vma, xe_vma_userptr_invalidate_complete, 184 TP_PROTO(struct xe_vma *vma), 185 TP_ARGS(vma) 186); 187 188DECLARE_EVENT_CLASS(xe_vm, 189 TP_PROTO(struct xe_vm *vm), 190 TP_ARGS(vm), 191 192 TP_STRUCT__entry( 193 __string(dev, __dev_name_vm(vm)) 194 __field(struct xe_vm *, vm) 195 __field(u32, asid) 196 __field(u32, flags) 197 ), 198 199 TP_fast_assign( 200 __assign_str(dev); 201 __entry->vm = vm; 202 __entry->asid = vm->usm.asid; 203 __entry->flags = vm->flags; 204 ), 205 206 TP_printk("dev=%s, vm=%p, asid=0x%05x, vm flags=0x%05x", 207 __get_str(dev), __entry->vm, __entry->asid, 208 __entry->flags) 209); 210 211DEFINE_EVENT(xe_vm, xe_vm_kill, 212 TP_PROTO(struct xe_vm *vm), 213 TP_ARGS(vm) 214); 215 216DEFINE_EVENT(xe_vm, xe_vm_create, 217 TP_PROTO(struct xe_vm *vm), 218 TP_ARGS(vm) 219); 220 221DEFINE_EVENT(xe_vm, xe_vm_free, 222 TP_PROTO(struct xe_vm *vm), 223 TP_ARGS(vm) 224); 225 226DEFINE_EVENT(xe_vm, xe_vm_cpu_bind, 227 TP_PROTO(struct xe_vm *vm), 228 TP_ARGS(vm) 229); 230 231DEFINE_EVENT(xe_vm, xe_vm_restart, 232 TP_PROTO(struct xe_vm *vm), 233 TP_ARGS(vm) 234); 235 236DEFINE_EVENT(xe_vm, xe_vm_rebind_worker_enter, 237 TP_PROTO(struct xe_vm *vm), 238 TP_ARGS(vm) 239); 240 241DEFINE_EVENT(xe_vm, xe_vm_rebind_worker_retry, 242 TP_PROTO(struct xe_vm *vm), 243 TP_ARGS(vm) 244); 245 246DEFINE_EVENT(xe_vm, xe_vm_rebind_worker_exit, 247 TP_PROTO(struct xe_vm *vm), 248 TP_ARGS(vm) 249); 250 251DEFINE_EVENT(xe_vm, xe_vm_ops_fail, 252 TP_PROTO(struct xe_vm *vm), 253 TP_ARGS(vm) 254); 255 256#endif 257 258/* This part must be outside protection */ 259#undef TRACE_INCLUDE_PATH 260#undef TRACE_INCLUDE_FILE 261#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/xe 262#define TRACE_INCLUDE_FILE xe_trace_bo 263#include <trace/define_trace.h>