cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

msm_gpu_trace.h (4442B)


      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>