Skip to content

Commit 43f3460

Browse files
hoshinolinajannau
authored andcommitted
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 866183c commit 43f3460

1 file changed

Lines changed: 25 additions & 4 deletions

File tree

drivers/gpu/drm/asahi/workqueue.rs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,16 @@ impl Job::ver {
371371
} else if let Some(work) = inner.pending.first() {
372372
Some(work.get_fence())
373373
} else {
374-
pr_err!("WorkQueue: Cannot submit, but queue is empty?\n");
374+
pr_err!(
375+
"WorkQueue: Cannot submit, but queue is empty? {} > {}, {} > {} (pend={} ls={:#x?} lc={:#x?})\n",
376+
inner.free_slots(),
377+
self.event_count,
378+
inner.free_space(),
379+
self.pending.len(),
380+
inner.pending.len(),
381+
inner.last_submitted,
382+
inner.last_completed,
383+
);
375384
None
376385
}
377386
}
@@ -752,7 +761,11 @@ impl WorkQueue for WorkQueue::ver {
752761
let event = inner.event.as_ref();
753762
let value = match event {
754763
None => {
755-
pr_err!("WorkQueue: signal() called but no event?\n");
764+
mod_pr_debug!("WorkQueue: signal() called but no event?\n");
765+
766+
if inner.pending_jobs > 0 || !inner.pending.is_empty() {
767+
pr_crit!("WorkQueue: signal() called with no event and pending jobs.\n");
768+
}
756769
return true;
757770
}
758771
Some(event) => event.0.current(),
@@ -849,7 +862,11 @@ impl WorkQueue for WorkQueue::ver {
849862
let mut inner = self.inner.lock();
850863

851864
if inner.event.is_none() {
852-
pr_err!("WorkQueue: signal_fault() called but no event?\n");
865+
mod_pr_debug!("WorkQueue: signal_fault() called but no event?\n");
866+
867+
if inner.pending_jobs > 0 || !inner.pending.is_empty() {
868+
pr_crit!("WorkQueue: signal_fault() called with no event and pending jobs.\n");
869+
}
853870
return;
854871
}
855872

@@ -878,7 +895,11 @@ impl WorkQueue for WorkQueue::ver {
878895
let mut inner = self.inner.lock();
879896

880897
if inner.event.is_none() {
881-
pr_err!("WorkQueue: fail_all() called but no event?\n");
898+
mod_pr_debug!("WorkQueue: fail_all() called but no event?\n");
899+
900+
if inner.pending_jobs > 0 || !inner.pending.is_empty() {
901+
pr_crit!("WorkQueue: fail_all() called with no event and pending jobs.\n");
902+
}
882903
return;
883904
}
884905

0 commit comments

Comments
 (0)