Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #if !defined(_MSM_GPU_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
0003 #define _MSM_GPU_TRACE_H_
0004 
0005 #include <linux/tracepoint.h>
0006 
0007 #undef TRACE_SYSTEM
0008 #define TRACE_SYSTEM drm_msm_gpu
0009 #define TRACE_INCLUDE_FILE msm_gpu_trace
0010 
0011 TRACE_EVENT(msm_gpu_submit,
0012         TP_PROTO(pid_t pid, u32 ringid, u32 id, u32 nr_bos, u32 nr_cmds),
0013         TP_ARGS(pid, ringid, id, nr_bos, nr_cmds),
0014         TP_STRUCT__entry(
0015             __field(pid_t, pid)
0016             __field(u32, id)
0017             __field(u32, ringid)
0018             __field(u32, nr_cmds)
0019             __field(u32, nr_bos)
0020             ),
0021         TP_fast_assign(
0022             __entry->pid = pid;
0023             __entry->id = id;
0024             __entry->ringid = ringid;
0025             __entry->nr_bos = nr_bos;
0026             __entry->nr_cmds = nr_cmds
0027             ),
0028         TP_printk("id=%d pid=%d ring=%d bos=%d cmds=%d",
0029             __entry->id, __entry->pid, __entry->ringid,
0030             __entry->nr_bos, __entry->nr_cmds)
0031 );
0032 
0033 TRACE_EVENT(msm_gpu_submit_flush,
0034         TP_PROTO(struct msm_gem_submit *submit, u64 ticks),
0035         TP_ARGS(submit, ticks),
0036         TP_STRUCT__entry(
0037             __field(pid_t, pid)
0038             __field(u32, id)
0039             __field(u32, ringid)
0040             __field(u32, seqno)
0041             __field(u64, ticks)
0042             ),
0043         TP_fast_assign(
0044             __entry->pid = pid_nr(submit->pid);
0045             __entry->id = submit->ident;
0046             __entry->ringid = submit->ring->id;
0047             __entry->seqno = submit->seqno;
0048             __entry->ticks = ticks;
0049             ),
0050         TP_printk("id=%d pid=%d ring=%d:%d ticks=%lld",
0051             __entry->id, __entry->pid, __entry->ringid, __entry->seqno,
0052             __entry->ticks)
0053 );
0054 
0055 
0056 TRACE_EVENT(msm_gpu_submit_retired,
0057         TP_PROTO(struct msm_gem_submit *submit, u64 elapsed, u64 clock,
0058             u64 start, u64 end),
0059         TP_ARGS(submit, elapsed, clock, start, end),
0060         TP_STRUCT__entry(
0061             __field(pid_t, pid)
0062             __field(u32, id)
0063             __field(u32, ringid)
0064             __field(u32, seqno)
0065             __field(u64, elapsed)
0066             __field(u64, clock)
0067             __field(u64, start_ticks)
0068             __field(u64, end_ticks)
0069             ),
0070         TP_fast_assign(
0071             __entry->pid = pid_nr(submit->pid);
0072             __entry->id = submit->ident;
0073             __entry->ringid = submit->ring->id;
0074             __entry->seqno = submit->seqno;
0075             __entry->elapsed = elapsed;
0076             __entry->clock = clock;
0077             __entry->start_ticks = start;
0078             __entry->end_ticks = end;
0079             ),
0080         TP_printk("id=%d pid=%d ring=%d:%d elapsed=%lld ns mhz=%lld start=%lld end=%lld",
0081             __entry->id, __entry->pid, __entry->ringid, __entry->seqno,
0082             __entry->elapsed, __entry->clock,
0083             __entry->start_ticks, __entry->end_ticks)
0084 );
0085 
0086 
0087 TRACE_EVENT(msm_gpu_freq_change,
0088         TP_PROTO(u32 freq),
0089         TP_ARGS(freq),
0090         TP_STRUCT__entry(
0091             __field(u32, freq)
0092             ),
0093         TP_fast_assign(
0094             /* trace freq in MHz to match intel_gpu_freq_change, to make life easier
0095              * for userspace
0096              */
0097             __entry->freq = DIV_ROUND_UP(freq, 1000000);
0098             ),
0099         TP_printk("new_freq=%u", __entry->freq)
0100 );
0101 
0102 
0103 TRACE_EVENT(msm_gmu_freq_change,
0104         TP_PROTO(u32 freq, u32 perf_index),
0105         TP_ARGS(freq, perf_index),
0106         TP_STRUCT__entry(
0107             __field(u32, freq)
0108             __field(u32, perf_index)
0109             ),
0110         TP_fast_assign(
0111             __entry->freq = freq;
0112             __entry->perf_index = perf_index;
0113             ),
0114         TP_printk("freq=%u, perf_index=%u", __entry->freq, __entry->perf_index)
0115 );
0116 
0117 
0118 TRACE_EVENT(msm_gem_purge,
0119         TP_PROTO(u32 bytes),
0120         TP_ARGS(bytes),
0121         TP_STRUCT__entry(
0122             __field(u32, bytes)
0123             ),
0124         TP_fast_assign(
0125             __entry->bytes = bytes;
0126             ),
0127         TP_printk("Purging %u bytes", __entry->bytes)
0128 );
0129 
0130 
0131 TRACE_EVENT(msm_gem_evict,
0132         TP_PROTO(u32 bytes),
0133         TP_ARGS(bytes),
0134         TP_STRUCT__entry(
0135             __field(u32, bytes)
0136             ),
0137         TP_fast_assign(
0138             __entry->bytes = bytes;
0139             ),
0140         TP_printk("Evicting %u bytes", __entry->bytes)
0141 );
0142 
0143 
0144 TRACE_EVENT(msm_gem_purge_vmaps,
0145         TP_PROTO(u32 unmapped),
0146         TP_ARGS(unmapped),
0147         TP_STRUCT__entry(
0148             __field(u32, unmapped)
0149             ),
0150         TP_fast_assign(
0151             __entry->unmapped = unmapped;
0152             ),
0153         TP_printk("Purging %u vmaps", __entry->unmapped)
0154 );
0155 
0156 
0157 TRACE_EVENT(msm_gpu_suspend,
0158         TP_PROTO(int dummy),
0159         TP_ARGS(dummy),
0160         TP_STRUCT__entry(
0161             __field(u32, dummy)
0162             ),
0163         TP_fast_assign(
0164             __entry->dummy = dummy;
0165             ),
0166         TP_printk("%u", __entry->dummy)
0167 );
0168 
0169 
0170 TRACE_EVENT(msm_gpu_resume,
0171         TP_PROTO(int dummy),
0172         TP_ARGS(dummy),
0173         TP_STRUCT__entry(
0174             __field(u32, dummy)
0175             ),
0176         TP_fast_assign(
0177             __entry->dummy = dummy;
0178             ),
0179         TP_printk("%u", __entry->dummy)
0180 );
0181 
0182 #endif
0183 
0184 #undef TRACE_INCLUDE_PATH
0185 #define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/msm
0186 #include <trace/define_trace.h>