linux/drivers/gpu/drm/msm/msm_gpu_trace.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#if !defined(_MSM_GPU_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
   3#define _MSM_GPU_TRACE_H_
   4
   5#include <linux/tracepoint.h>
   6
   7#undef TRACE_SYSTEM
   8#define TRACE_SYSTEM drm_msm_gpu
   9#define TRACE_INCLUDE_FILE msm_gpu_trace
  10
  11TRACE_EVENT(msm_gpu_submit,
  12            TP_PROTO(pid_t pid, u32 ringid, u32 id, u32 nr_bos, u32 nr_cmds),
  13            TP_ARGS(pid, ringid, id, nr_bos, nr_cmds),
  14            TP_STRUCT__entry(
  15                    __field(pid_t, pid)
  16                    __field(u32, id)
  17                    __field(u32, ringid)
  18                    __field(u32, nr_cmds)
  19                    __field(u32, nr_bos)
  20                    ),
  21            TP_fast_assign(
  22                    __entry->pid = pid;
  23                    __entry->id = id;
  24                    __entry->ringid = ringid;
  25                    __entry->nr_bos = nr_bos;
  26                    __entry->nr_cmds = nr_cmds
  27                    ),
  28            TP_printk("id=%d pid=%d ring=%d bos=%d cmds=%d",
  29                    __entry->id, __entry->pid, __entry->ringid,
  30                    __entry->nr_bos, __entry->nr_cmds)
  31);
  32
  33TRACE_EVENT(msm_gpu_submit_flush,
  34            TP_PROTO(struct msm_gem_submit *submit, u64 ticks),
  35            TP_ARGS(submit, ticks),
  36            TP_STRUCT__entry(
  37                    __field(pid_t, pid)
  38                    __field(u32, id)
  39                    __field(u32, ringid)
  40                    __field(u32, seqno)
  41                    __field(u64, ticks)
  42                    ),
  43            TP_fast_assign(
  44                    __entry->pid = pid_nr(submit->pid);
  45                    __entry->id = submit->ident;
  46                    __entry->ringid = submit->ring->id;
  47                    __entry->seqno = submit->seqno;
  48                    __entry->ticks = ticks;
  49                    ),
  50            TP_printk("id=%d pid=%d ring=%d:%d ticks=%lld",
  51                    __entry->id, __entry->pid, __entry->ringid, __entry->seqno,
  52                    __entry->ticks)
  53);
  54
  55
  56TRACE_EVENT(msm_gpu_submit_retired,
  57            TP_PROTO(struct msm_gem_submit *submit, u64 elapsed, u64 clock,
  58                    u64 start, u64 end),
  59            TP_ARGS(submit, elapsed, clock, start, end),
  60            TP_STRUCT__entry(
  61                    __field(pid_t, pid)
  62                    __field(u32, id)
  63                    __field(u32, ringid)
  64                    __field(u32, seqno)
  65                    __field(u64, elapsed)
  66                    __field(u64, clock)
  67                    __field(u64, start_ticks)
  68                    __field(u64, end_ticks)
  69                    ),
  70            TP_fast_assign(
  71                    __entry->pid = pid_nr(submit->pid);
  72                    __entry->id = submit->ident;
  73                    __entry->ringid = submit->ring->id;
  74                    __entry->seqno = submit->seqno;
  75                    __entry->elapsed = elapsed;
  76                    __entry->clock = clock;
  77                    __entry->start_ticks = start;
  78                    __entry->end_ticks = end;
  79                    ),
  80            TP_printk("id=%d pid=%d ring=%d:%d elapsed=%lld ns mhz=%lld start=%lld end=%lld",
  81                    __entry->id, __entry->pid, __entry->ringid, __entry->seqno,
  82                    __entry->elapsed, __entry->clock,
  83                    __entry->start_ticks, __entry->end_ticks)
  84);
  85
  86
  87TRACE_EVENT(msm_gpu_freq_change,
  88                TP_PROTO(u32 freq),
  89                TP_ARGS(freq),
  90                TP_STRUCT__entry(
  91                        __field(u32, freq)
  92                        ),
  93                TP_fast_assign(
  94                        /* trace freq in MHz to match intel_gpu_freq_change, to make life easier
  95                         * for userspace
  96                         */
  97                        __entry->freq = DIV_ROUND_UP(freq, 1000000);
  98                        ),
  99                TP_printk("new_freq=%u", __entry->freq)
 100);
 101
 102
 103TRACE_EVENT(msm_gmu_freq_change,
 104                TP_PROTO(u32 freq, u32 perf_index),
 105                TP_ARGS(freq, perf_index),
 106                TP_STRUCT__entry(
 107                        __field(u32, freq)
 108                        __field(u32, perf_index)
 109                        ),
 110                TP_fast_assign(
 111                        __entry->freq = freq;
 112                        __entry->perf_index = perf_index;
 113                        ),
 114                TP_printk("freq=%u, perf_index=%u", __entry->freq, __entry->perf_index)
 115);
 116
 117
 118TRACE_EVENT(msm_gem_purge,
 119                TP_PROTO(u32 bytes),
 120                TP_ARGS(bytes),
 121                TP_STRUCT__entry(
 122                        __field(u32, bytes)
 123                        ),
 124                TP_fast_assign(
 125                        __entry->bytes = bytes;
 126                        ),
 127                TP_printk("Purging %u bytes", __entry->bytes)
 128);
 129
 130
 131TRACE_EVENT(msm_gem_evict,
 132                TP_PROTO(u32 bytes),
 133                TP_ARGS(bytes),
 134                TP_STRUCT__entry(
 135                        __field(u32, bytes)
 136                        ),
 137                TP_fast_assign(
 138                        __entry->bytes = bytes;
 139                        ),
 140                TP_printk("Evicting %u bytes", __entry->bytes)
 141);
 142
 143
 144TRACE_EVENT(msm_gem_purge_vmaps,
 145                TP_PROTO(u32 unmapped),
 146                TP_ARGS(unmapped),
 147                TP_STRUCT__entry(
 148                        __field(u32, unmapped)
 149                        ),
 150                TP_fast_assign(
 151                        __entry->unmapped = unmapped;
 152                        ),
 153                TP_printk("Purging %u vmaps", __entry->unmapped)
 154);
 155
 156
 157TRACE_EVENT(msm_gpu_suspend,
 158                TP_PROTO(int dummy),
 159                TP_ARGS(dummy),
 160                TP_STRUCT__entry(
 161                        __field(u32, dummy)
 162                        ),
 163                TP_fast_assign(
 164                        __entry->dummy = dummy;
 165                        ),
 166                TP_printk("%u", __entry->dummy)
 167);
 168
 169
 170TRACE_EVENT(msm_gpu_resume,
 171                TP_PROTO(int dummy),
 172                TP_ARGS(dummy),
 173                TP_STRUCT__entry(
 174                        __field(u32, dummy)
 175                        ),
 176                TP_fast_assign(
 177                        __entry->dummy = dummy;
 178                        ),
 179                TP_printk("%u", __entry->dummy)
 180);
 181
 182#endif
 183
 184#undef TRACE_INCLUDE_PATH
 185#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/msm
 186#include <trace/define_trace.h>
 187