drm/v3d: Create tracepoints to track the CPU job
Create tracepoints to track the three major events of a CPU job lifetime: 1. Submission of a `v3d_submit_cpu` IOCTL 2. Beginning of the execution of a CPU job 3. Ending of the execution of a CPU job Signed-off-by: Maíra Canal <mcanal@igalia.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Link: https://patchwork.freedesktop.org/patch/msgid/20231130164420.932823-11-mcanal@igalia.com
This commit is contained in:
parent
c5195d001f
commit
1fe0879efc
@ -288,8 +288,12 @@ v3d_cpu_job_run(struct drm_sched_job *sched_job)
|
||||
file->start_ns[V3D_CPU] = local_clock();
|
||||
v3d->queue[V3D_CPU].start_ns = file->start_ns[V3D_CPU];
|
||||
|
||||
trace_v3d_cpu_job_begin(&v3d->drm, job->job_type);
|
||||
|
||||
cpu_job_function[job->job_type](job);
|
||||
|
||||
trace_v3d_cpu_job_end(&v3d->drm, job->job_type);
|
||||
|
||||
runtime = local_clock() - file->start_ns[V3D_CPU];
|
||||
|
||||
file->enabled_ns[V3D_CPU] += runtime;
|
||||
|
@ -824,6 +824,8 @@ v3d_submit_cpu_ioctl(struct drm_device *dev, void *data,
|
||||
goto fail;
|
||||
}
|
||||
|
||||
trace_v3d_submit_cpu_ioctl(&v3d->drm, cpu_job->job_type);
|
||||
|
||||
ret = v3d_job_init(v3d, file_priv, &cpu_job->base,
|
||||
v3d_job_free, 0, &se, V3D_CPU);
|
||||
if (ret)
|
||||
|
@ -225,6 +225,63 @@ TRACE_EVENT(v3d_submit_csd,
|
||||
__entry->seqno)
|
||||
);
|
||||
|
||||
TRACE_EVENT(v3d_submit_cpu_ioctl,
|
||||
TP_PROTO(struct drm_device *dev, enum v3d_cpu_job_type job_type),
|
||||
TP_ARGS(dev, job_type),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(u32, dev)
|
||||
__field(enum v3d_cpu_job_type, job_type)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->dev = dev->primary->index;
|
||||
__entry->job_type = job_type;
|
||||
),
|
||||
|
||||
TP_printk("dev=%u, job_type=%d",
|
||||
__entry->dev,
|
||||
__entry->job_type)
|
||||
);
|
||||
|
||||
TRACE_EVENT(v3d_cpu_job_begin,
|
||||
TP_PROTO(struct drm_device *dev, enum v3d_cpu_job_type job_type),
|
||||
TP_ARGS(dev, job_type),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(u32, dev)
|
||||
__field(enum v3d_cpu_job_type, job_type)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->dev = dev->primary->index;
|
||||
__entry->job_type = job_type;
|
||||
),
|
||||
|
||||
TP_printk("dev=%u, job_type=%d",
|
||||
__entry->dev,
|
||||
__entry->job_type)
|
||||
);
|
||||
|
||||
TRACE_EVENT(v3d_cpu_job_end,
|
||||
TP_PROTO(struct drm_device *dev, enum v3d_cpu_job_type job_type),
|
||||
TP_ARGS(dev, job_type),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(u32, dev)
|
||||
__field(enum v3d_cpu_job_type, job_type)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->dev = dev->primary->index;
|
||||
__entry->job_type = job_type;
|
||||
),
|
||||
|
||||
TP_printk("dev=%u, job_type=%d",
|
||||
__entry->dev,
|
||||
__entry->job_type)
|
||||
);
|
||||
|
||||
TRACE_EVENT(v3d_cache_clean_begin,
|
||||
TP_PROTO(struct drm_device *dev),
|
||||
TP_ARGS(dev),
|
||||
|
Loading…
x
Reference in New Issue
Block a user