mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v3] drm/imagination: Update the trace point pvr_job_submit_fw()
@ 2026-07-24 14:42 Brajesh Gupta
  2026-07-28 18:04 ` Alessio Belle
  2026-07-29 14:56 ` Alessio Belle
  0 siblings, 2 replies; 3+ messages in thread
From: Brajesh Gupta @ 2026-07-24 14:42 UTC (permalink / raw)
  To: Alessio Belle, Luigi Santivetti, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
	Matt Coster, Alexandru Dadu, Frank Binns
  Cc: imagination, dri-devel, linux-kernel, Brajesh Gupta

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 <brajesh.gupta@imgtec.com>

Signed-off-by: Brajesh Gupta <brajesh.gupta@imgtec.com>
---
Changes in v3:
- Reverted back to v1 version as per issue flagged by AI-bot.
- v1 version is proper as mentioned in v2 update and correctly mark
the submission of job to the Firmware.
- Link to v2: https://lore.kernel.org/r/20260724-b4-tracepoint-fix-v2-1-e6a81a348394@imgtec.com

Changes in v2:
- Updated safer trace point recording for fragment job to handle
Sashiko-bot reported possible use-after-free case.
- Due to depenedency between grometry and fragment jobs, fragment job
will not be scheduled till geometry is scheduled so even V1 solution is safe.
- Link to v1: https://lore.kernel.org/r/20260722-b4-tracepoint-fix-v1-1-f75747fa591a@imgtec.com
---
 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 <brajesh.gupta@imgtec.com>


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] drm/imagination: Update the trace point pvr_job_submit_fw()
  2026-07-24 14:42 [PATCH v3] drm/imagination: Update the trace point pvr_job_submit_fw() Brajesh Gupta
@ 2026-07-28 18:04 ` Alessio Belle
  2026-07-29 14:56 ` Alessio Belle
  1 sibling, 0 replies; 3+ messages in thread
From: Alessio Belle @ 2026-07-28 18:04 UTC (permalink / raw)
  To: Brajesh Gupta
  Cc: Luigi Santivetti, opensource, tzimmermann, imagination, simona,
	dri-devel, airlied, linux-kernel, Frank Binns, maarten.lankhorst,
	Alexandru Dadu, mripard

On Fri, 2026-07-24 at 20:12 +0530, Brajesh Gupta wrote:
> 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 <brajesh.gupta@imgtec.com>
> 
> Signed-off-by: Brajesh Gupta <brajesh.gupta@imgtec.com>

Reviewed-by: Alessio Belle <alessio.belle@imgtec.com>

(I'll drop the second Signed-off-by when applying this)

Thanks,
Alessio

> ---
> Changes in v3:
> - Reverted back to v1 version as per issue flagged by AI-bot.
> - v1 version is proper as mentioned in v2 update and correctly mark
> the submission of job to the Firmware.
> - Link to v2: https://lore.kernel.org/r/20260724-b4-tracepoint-fix-v2-1-e6a81a348394@imgtec.com
> 
> Changes in v2:
> - Updated safer trace point recording for fragment job to handle
> Sashiko-bot reported possible use-after-free case.
> - Due to depenedency between grometry and fragment jobs, fragment job
> will not be scheduled till geometry is scheduled so even V1 solution is safe.
> - Link to v1: https://lore.kernel.org/r/20260722-b4-tracepoint-fix-v1-1-f75747fa591a@imgtec.com
> ---
>  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,


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] drm/imagination: Update the trace point pvr_job_submit_fw()
  2026-07-24 14:42 [PATCH v3] drm/imagination: Update the trace point pvr_job_submit_fw() Brajesh Gupta
  2026-07-28 18:04 ` Alessio Belle
@ 2026-07-29 14:56 ` Alessio Belle
  1 sibling, 0 replies; 3+ messages in thread
From: Alessio Belle @ 2026-07-29 14:56 UTC (permalink / raw)
  To: Luigi Santivetti, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Matt Coster,
	Alexandru Dadu, Frank Binns, Brajesh Gupta
  Cc: imagination, dri-devel, linux-kernel

On Fri, 24 Jul 2026 20:12:12 +0530, Brajesh Gupta wrote:
> 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.
> 
> [...]

Applied to drm-misc-fixes, thanks!

[1/1] drm/imagination: Update the trace point pvr_job_submit_fw()
      commit: c256bd486855d8948aff29e0c97d50712da4e85e

Best regards,
-- 
Alessio Belle <alessio.belle@imgtec.com>


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-07-29 15:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-24 14:42 [PATCH v3] drm/imagination: Update the trace point pvr_job_submit_fw() Brajesh Gupta
2026-07-28 18:04 ` Alessio Belle
2026-07-29 14:56 ` Alessio Belle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®