Skip to content

Commit 6d57e6f

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

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
@@ -371,14 +371,15 @@ impl Job::ver {
371371
Some(work.get_fence())
372372
} else {
373373
pr_err!(
374-
"WorkQueue: Cannot submit, but queue is empty? {} > {}, {} > {} (pend={} ls={:#x?} lc={:#x?})\n",
374+
"WorkQueue: Cannot submit, but queue is empty? {} > {}, {} > {} (pend={} ls={:#x?} lc={:#x?}) ev={:#x?}\n",
375375
inner.free_slots(),
376376
self.event_count,
377377
inner.free_space(),
378378
self.pending.len(),
379379
inner.pending.len(),
380380
inner.last_submitted,
381381
inner.last_completed,
382+
inner.event.as_ref().map(|a| a.1),
382383
);
383384
None
384385
}
@@ -509,7 +510,7 @@ impl Drop for Job::ver {
509510
if self.committed && !self.submitted {
510511
let pipe_type = inner.pipe_type;
511512
let event = inner.event.as_mut().expect("Job lost its event");
512-
mod_pr_debug!(
513+
pr_info!(
513514
"WorkQueue({:?}): Roll back {} events (slot {} val {:#x?}) and {} commands\n",
514515
pipe_type,
515516
self.event_count,
@@ -545,8 +546,8 @@ impl<'a> Drop for JobSubmission::ver<'a> {
545546

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

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

775788
mod_pr_debug!(

0 commit comments

Comments
 (0)