Trace point pvr_job_submit_fw() is used to trace job submission to
the FW. Currently it is recorded when a command is written to the Client
circular buffer.

Move trace recording after writing command to the Kernel circular buffer to
better represent command submission to the FW.

Fixes: c1079aebb4de ("drm/imagination: Add support for trace points")
Signed-off-by: Brajesh Gupta <[email protected]>
---
 drivers/gpu/drm/imagination/pvr_queue.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/imagination/pvr_queue.c 
b/drivers/gpu/drm/imagination/pvr_queue.c
index 941c017399fc..d13726401d92 100644
--- a/drivers/gpu/drm/imagination/pvr_queue.c
+++ b/drivers/gpu/drm/imagination/pvr_queue.c
@@ -726,8 +726,6 @@ static void pvr_queue_submit_job_to_cccb(struct pvr_job 
*job)
                cmd->partial_render_geom_frag_fence.value = 
job->done_fence->seqno - 1;
        }
 
-       trace_pvr_job_submit_fw(job);
-
        /* Submit job to FW */
        pvr_cccb_write_command_with_header(cccb, job->fw_ccb_cmd_type, 
job->cmd_len, job->cmd,
                                           job->id, job->id);
@@ -802,6 +800,9 @@ static struct dma_fence *pvr_queue_run_job(struct 
drm_sched_job *sched_job)
                                                 job->hwrt,
                                                 frag_job->fw_ccb_cmd_type ==
                                                 
ROGUE_FWIF_CCB_CMD_TYPE_FRAG_PR);
+
+               trace_pvr_job_submit_fw(geom_job);
+               trace_pvr_job_submit_fw(frag_job);
        } else {
                struct pvr_queue *queue = container_of(job->base.sched,
                                                       struct pvr_queue, 
scheduler);
@@ -809,6 +810,8 @@ static struct dma_fence *pvr_queue_run_job(struct 
drm_sched_job *sched_job)
                pvr_cccb_send_kccb_kick(pvr_dev, &queue->cccb,
                                        pvr_context_get_fw_addr(job->ctx) + 
queue->ctx_offset,
                                        job->hwrt);
+
+               trace_pvr_job_submit_fw(job);
        }
 
        return dma_fence_get(job->done_fence);

---
base-commit: e5320be8a585a9286f231305d0d443d59c24e46c
change-id: 20260722-b4-tracepoint-fix-0fc961d7023d

Best regards,
-- 
Brajesh Gupta <[email protected]>

Reply via email to