Useful for debugging hangs with doorbells.

Signed-off-by: Matthew Brost <matthew.br...@intel.com>
---
 drivers/gpu/drm/xe/xe_guc_submit.c       | 2 ++
 drivers/gpu/drm/xe/xe_guc_submit_types.h | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c 
b/drivers/gpu/drm/xe/xe_guc_submit.c
index cc7a98c1343e..c226c7b3245d 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -2227,6 +2227,7 @@ xe_guc_exec_queue_snapshot_capture(struct xe_exec_queue 
*q)
                return NULL;
 
        snapshot->guc.id = q->guc->id;
+       snapshot->guc.db_id = q->guc->db.id;
        memcpy(&snapshot->name, &q->name, sizeof(snapshot->name));
        snapshot->class = q->class;
        snapshot->logical_mask = q->logical_mask;
@@ -2321,6 +2322,7 @@ xe_guc_exec_queue_snapshot_print(struct 
xe_guc_submit_exec_queue_snapshot *snaps
        drm_printf(p, "\tClass: %d\n", snapshot->class);
        drm_printf(p, "\tLogical mask: 0x%x\n", snapshot->logical_mask);
        drm_printf(p, "\tWidth: %d\n", snapshot->width);
+       drm_printf(p, "\tDoorbell ID: %d\n", snapshot->guc.db_id);
        drm_printf(p, "\tRef: %d\n", snapshot->refcount);
        drm_printf(p, "\tTimeout: %ld (ms)\n", snapshot->sched_timeout);
        drm_printf(p, "\tTimeslice: %u (us)\n",
diff --git a/drivers/gpu/drm/xe/xe_guc_submit_types.h 
b/drivers/gpu/drm/xe/xe_guc_submit_types.h
index dc7456c34583..12fef7848b78 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit_types.h
+++ b/drivers/gpu/drm/xe/xe_guc_submit_types.h
@@ -113,6 +113,8 @@ struct xe_guc_submit_exec_queue_snapshot {
                u32 wqi_tail;
                /** @guc.id: GuC id for this exec_queue */
                u16 id;
+               /** @guc.db_id: Doorbell id */
+               u16 db_id;
        } guc;
 
        /**
-- 
2.34.1

Reply via email to