Skip to content

Commit 01f6f6f

Browse files
committed
drm/asahi: workqueue: Tweak some debug logs
Silence some logs that are possible and harmless in rare cases, add more debug to another log that is questionable. Signed-off-by: Asahi Lina <lina@asahilina.net>
1 parent 474b75c commit 01f6f6f

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

drivers/gpu/drm/asahi/workqueue.rs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,16 @@ impl Job::ver {
361361
} else if let Some(work) = inner.pending.first() {
362362
Some(work.get_fence())
363363
} else {
364-
pr_err!("WorkQueue: Cannot submit, but queue is empty?\n");
364+
pr_err!(
365+
"WorkQueue: Cannot submit, but queue is empty? {} > {}, {} > {} (pend={} ls={:#x?} lc={:#x?})\n",
366+
inner.free_slots(),
367+
self.event_count,
368+
inner.free_space(),
369+
self.pending.len(),
370+
inner.pending.len(),
371+
inner.last_submitted,
372+
inner.last_completed,
373+
);
365374
None
366375
}
367376
}
@@ -739,7 +748,11 @@ impl WorkQueue for WorkQueue::ver {
739748
let event = inner.event.as_ref();
740749
let value = match event {
741750
None => {
742-
pr_err!("WorkQueue: signal() called but no event?\n");
751+
mod_pr_debug!("WorkQueue: signal() called but no event?\n");
752+
753+
if inner.pending_jobs > 0 || !inner.pending.is_empty() {
754+
pr_crit!("WorkQueue: signal() called with no event and pending jobs.\n");
755+
}
743756
return true;
744757
}
745758
Some(event) => event.0.current(),
@@ -836,7 +849,11 @@ impl WorkQueue for WorkQueue::ver {
836849
let mut inner = self.inner.lock();
837850

838851
if inner.event.is_none() {
839-
pr_err!("WorkQueue: signal_fault() called but no event?\n");
852+
mod_pr_debug!("WorkQueue: signal_fault() called but no event?\n");
853+
854+
if inner.pending_jobs > 0 || !inner.pending.is_empty() {
855+
pr_crit!("WorkQueue: signal_fault() called with no event and pending jobs.\n");
856+
}
840857
return;
841858
}
842859

@@ -865,7 +882,11 @@ impl WorkQueue for WorkQueue::ver {
865882
let mut inner = self.inner.lock();
866883

867884
if inner.event.is_none() {
868-
pr_err!("WorkQueue: fail_all() called but no event?\n");
885+
mod_pr_debug!("WorkQueue: fail_all() called but no event?\n");
886+
887+
if inner.pending_jobs > 0 || !inner.pending.is_empty() {
888+
pr_crit!("WorkQueue: fail_all() called with no event and pending jobs.\n");
889+
}
869890
return;
870891
}
871892

0 commit comments

Comments
 (0)