summaryrefslogtreecommitdiff
path: root/include/trace/events/gpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/trace/events/gpu.h')
-rw-r--r--include/trace/events/gpu.h143
1 files changed, 0 insertions, 143 deletions
diff --git a/include/trace/events/gpu.h b/include/trace/events/gpu.h
deleted file mode 100644
index 7e15cdfafe5a..000000000000
--- a/include/trace/events/gpu.h
+++ /dev/null
@@ -1,143 +0,0 @@
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM gpu
-
-#if !defined(_TRACE_GPU_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_GPU_H
-
-#include <linux/tracepoint.h>
-#include <linux/time.h>
-
-#define show_secs_from_ns(ns) \
- ({ \
- u64 t = ns + (NSEC_PER_USEC / 2); \
- do_div(t, NSEC_PER_SEC); \
- t; \
- })
-
-#define show_usecs_from_ns(ns) \
- ({ \
- u64 t = ns + (NSEC_PER_USEC / 2) ; \
- u32 rem; \
- do_div(t, NSEC_PER_USEC); \
- rem = do_div(t, USEC_PER_SEC); \
- })
-
-/*
- * The gpu_sched_switch event indicates that a switch from one GPU context to
- * another occurred on one of the GPU hardware blocks.
- *
- * The gpu_name argument identifies the GPU hardware block. Each independently
- * scheduled GPU hardware block should have a different name. This may be used
- * in different ways for different GPUs. For example, if a GPU includes
- * multiple processing cores it may use names "GPU 0", "GPU 1", etc. If a GPU
- * includes a separately scheduled 2D and 3D hardware block, it might use the
- * names "2D" and "3D".
- *
- * The timestamp argument is the timestamp at which the switch occurred on the
- * GPU. These timestamps are in units of nanoseconds and must use
- * approximately the same time as sched_clock, though they need not come from
- * any CPU clock. The timestamps for a single hardware block must be
- * monotonically nondecreasing. This means that if a variable compensation
- * offset is used to translate from some other clock to the sched_clock, then
- * care must be taken when increasing that offset, and doing so may result in
- * multiple events with the same timestamp.
- *
- * The next_ctx_id argument identifies the next context that was running on
- * the GPU hardware block. A value of 0 indicates that the hardware block
- * will be idle.
- *
- * The next_prio argument indicates the priority of the next context at the
- * time of the event. The exact numeric values may mean different things for
- * different GPUs, but they should follow the rule that lower values indicate a
- * higher priority.
- *
- * The next_job_id argument identifies the batch of work that the GPU will be
- * working on. This should correspond to a job_id that was previously traced
- * as a gpu_job_enqueue event when the batch of work was created.
- */
-TRACE_EVENT(gpu_sched_switch,
-
- TP_PROTO(const char *gpu_name, u64 timestamp,
- u32 next_ctx_id, s32 next_prio, u32 next_job_id),
-
- TP_ARGS(gpu_name, timestamp, next_ctx_id, next_prio, next_job_id),
-
- TP_STRUCT__entry(
- __string( gpu_name, gpu_name )
- __field( u64, timestamp )
- __field( u32, next_ctx_id )
- __field( s32, next_prio )
- __field( u32, next_job_id )
- ),
-
- TP_fast_assign(
- __assign_str(gpu_name, gpu_name);
- __entry->timestamp = timestamp;
- __entry->next_ctx_id = next_ctx_id;
- __entry->next_prio = next_prio;
- __entry->next_job_id = next_job_id;
- ),
-
- TP_printk("gpu_name=%s ts=%llu.%06lu next_ctx_id=%lu next_prio=%ld "
- "next_job_id=%lu",
- __get_str(gpu_name),
- (unsigned long long)show_secs_from_ns(__entry->timestamp),
- (unsigned long)show_usecs_from_ns(__entry->timestamp),
- (unsigned long)__entry->next_ctx_id,
- (long)__entry->next_prio,
- (unsigned long)__entry->next_job_id)
-);
-
-/*
- * The gpu_job_enqueue event indicates that a batch of work has been queued up
- * to be processed by the GPU. This event is not intended to indicate that
- * the batch of work has been submitted to the GPU hardware, but rather that
- * it has been submitted to the GPU kernel driver.
- *
- * This event should be traced on the thread that initiated the work being
- * queued. For example, if a batch of work is submitted to the kernel by a
- * userland thread, the event should be traced on that thread.
- *
- * The ctx_id field identifies the GPU context in which the batch of work
- * being queued is to be run.
- *
- * The job_id field identifies the batch of work being queued within the given
- * GPU context. The first batch of work submitted for a given GPU context
- * should have a job_id of 0, and each subsequent batch of work should
- * increment the job_id by 1.
- *
- * The type field identifies the type of the job being enqueued. The job
- * types may be different for different GPU hardware. For example, a GPU may
- * differentiate between "2D", "3D", and "compute" jobs.
- */
-TRACE_EVENT(gpu_job_enqueue,
-
- TP_PROTO(u32 ctx_id, u32 job_id, const char *type),
-
- TP_ARGS(ctx_id, job_id, type),
-
- TP_STRUCT__entry(
- __field( u32, ctx_id )
- __field( u32, job_id )
- __string( type, type )
- ),
-
- TP_fast_assign(
- __entry->ctx_id = ctx_id;
- __entry->job_id = job_id;
- __assign_str(type, type);
- ),
-
- TP_printk("ctx_id=%lu job_id=%lu type=%s",
- (unsigned long)__entry->ctx_id,
- (unsigned long)__entry->job_id,
- __get_str(type))
-);
-
-#undef show_secs_from_ns
-#undef show_usecs_from_ns
-
-#endif /* _TRACE_GPU_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>