On 07/11/2025 14:42, Tvrtko Ursulin wrote:
On 07/11/2025 12:55, Philipp Stanner wrote:
drm_sched_job_arm() just panics the kernel with BUG_ON() in case of an
entity being NULL. While drm_sched_job_arm() crashing or not effectively
arming jobs is certainly a huge issue that needs to be noticed,
completely shooting down the kernel reduces the probability of reaching
and debugging a system to 0.
Moreover, the checkpatch script by now strongly discourages all new uses
of BUG_ON() for this reason.
Replace the BUG_ON() in drm_sched_job_arm() with a WARN_ON().
Signed-off-by: Philipp Stanner <[email protected]>
---
drivers/gpu/drm/scheduler/sched_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/
scheduler/sched_main.c
index 1d4f1b822e7b..3bf4ae0ca4bc 100644
--- a/drivers/gpu/drm/scheduler/sched_main.c
+++ b/drivers/gpu/drm/scheduler/sched_main.c
@@ -857,7 +857,7 @@ void drm_sched_job_arm(struct drm_sched_job *job)
struct drm_gpu_scheduler *sched;
struct drm_sched_entity *entity = job->entity;
- BUG_ON(!entity);
+ WARN_ON(!entity);
drm_sched_entity_select_rq(entity);
void drm_sched_entity_select_rq(struct drm_sched_entity *entity)
{
struct dma_fence *fence;
struct drm_gpu_scheduler *sched;
struct drm_sched_rq *rq;
/* single possible engine and already selected */
if (!entity->sched_list)
Still the same end result.
I believe best practice is to simply not have BUG_ON's followed by null
Sorry I meant WARN_ONs. If we think there is scope for bad things to
happen after letting the execution proceed then I would add an early
return to the WARN_ON (_ONCE?). That probably means to push job as well.
Regards,
Tvrtko
pointer dereferences since they add no value. Ie. it should just be
removed and not replaced.
Regards,
Tvrtko
Regards,
Tvrtko
sched = entity->rq->sched;