Skip to content

Commit 4974e69

Browse files
hoshinolinajannau
authored andcommitted
drm/asahi: Workqueue: Add more debug
Signed-off-by: Asahi Lina <lina@asahilina.net>
1 parent 2e6fee0 commit 4974e69

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

drivers/gpu/drm/asahi/workqueue.rs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -372,14 +372,15 @@ impl Job::ver {
372372
Some(work.get_fence())
373373
} else {
374374
pr_err!(
375-
"WorkQueue: Cannot submit, but queue is empty? {} > {}, {} > {} (pend={} ls={:#x?} lc={:#x?})\n",
375+
"WorkQueue: Cannot submit, but queue is empty? {} > {}, {} > {} (pend={} ls={:#x?} lc={:#x?}) ev={:#x?}\n",
376376
inner.free_slots(),
377377
self.event_count,
378378
inner.free_space(),
379379
self.pending.len(),
380380
inner.pending.len(),
381381
inner.last_submitted,
382382
inner.last_completed,
383+
inner.event.as_ref().map(|a| a.1),
383384
);
384385
None
385386
}
@@ -510,7 +511,7 @@ impl Drop for Job::ver {
510511
if self.committed && !self.submitted {
511512
let pipe_type = inner.pipe_type;
512513
let event = inner.event.as_mut().expect("Job lost its event");
513-
mod_pr_debug!(
514+
pr_info!(
514515
"WorkQueue({:?}): Roll back {} events (slot {} val {:#x?}) and {} commands\n",
515516
pipe_type,
516517
self.event_count,
@@ -546,8 +547,8 @@ impl<'a> Drop for JobSubmission::ver<'a> {
546547

547548
let pipe_type = inner.pipe_type;
548549
let event = inner.event.as_mut().expect("JobSubmission lost its event");
549-
mod_pr_debug!(
550-
"WorkQueue({:?}): Roll back {} events (slot {} val {:#x?}) and {} commands\n",
550+
pr_info!(
551+
"WorkQueue({:?}): JobSubmission: Roll back {} events (slot {} val {:#x?}) and {} commands\n",
551552
pipe_type,
552553
self.event_count,
553554
event.0.slot(),
@@ -771,6 +772,18 @@ impl WorkQueue for WorkQueue::ver {
771772
Some(event) => event.0.current(),
772773
};
773774

775+
if let Some(lc) = inner.last_completed {
776+
if value < lc {
777+
pr_err!(
778+
"WorkQueue: event rolled back? cur {:#x?}, lc {:#x?}, ls {:#x?}",
779+
value,
780+
inner.last_completed,
781+
inner.last_submitted
782+
);
783+
}
784+
} else {
785+
pr_crit!("WorkQueue: signal() called with no last_completed.\n");
786+
}
774787
inner.last_completed = Some(value);
775788

776789
mod_pr_debug!(

0 commit comments

Comments
 (0)