drm/xe/devcoredump: Improve section headings and add tile info
[ Upstream commit c28fd6c358db44c87a1408f27ba412c94e25e6c2 ] The xe_guc_exec_queue_snapshot is not really a GuC internal thing and is definitely not a GuC CT thing. So give it its own section heading. The snapshot itself is really a capture of the submission backend's internal state. Although all it currently prints out is the submission contexts. So label it as 'Contexts'. If more general state is added later then it could be change to 'Submission backend' or some such. Further, everything from the GuC CT section onwards is GT specific but there was no indication of which GT it was related to (and that is impossible to work out from the other fields that are given). So add a GT section heading. Also include the tile id of the GT, because again significant information. Lastly, drop a couple of unnecessary line feeds within sections. v2: Add GT section heading, add tile id to device section. Signed-off-by: John Harrison <John.C.Harrison@Intel.com> Reviewed-by: Julia Filipchuk <julia.filipchuk@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20241003004611.2323493-4-John.C.Harrison@Intel.com Stable-dep-of: 5dce85fecb87 ("drm/xe: Move the coredump registration to the worker thread") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
7e4b454307
commit
47c45a050d
@@ -96,8 +96,13 @@ static ssize_t __xe_devcoredump_read(char *buffer, size_t count,
|
||||
drm_printf(&p, "Process: %s\n", ss->process_name);
|
||||
xe_device_snapshot_print(xe, &p);
|
||||
|
||||
drm_printf(&p, "\n**** GT #%d ****\n", ss->gt->info.id);
|
||||
drm_printf(&p, "\tTile: %d\n", ss->gt->tile->id);
|
||||
|
||||
drm_puts(&p, "\n**** GuC CT ****\n");
|
||||
xe_guc_ct_snapshot_print(ss->ct, &p);
|
||||
|
||||
drm_puts(&p, "\n**** Contexts ****\n");
|
||||
xe_guc_exec_queue_snapshot_print(ss->ge, &p);
|
||||
|
||||
drm_puts(&p, "\n**** Job ****\n");
|
||||
|
||||
@@ -37,7 +37,8 @@ struct xe_devcoredump_snapshot {
|
||||
/* GuC snapshots */
|
||||
/** @ct: GuC CT snapshot */
|
||||
struct xe_guc_ct_snapshot *ct;
|
||||
/** @ge: Guc Engine snapshot */
|
||||
|
||||
/** @ge: GuC Submission Engine snapshot */
|
||||
struct xe_guc_submit_exec_queue_snapshot *ge;
|
||||
|
||||
/** @hwe: HW Engine snapshot array */
|
||||
|
||||
@@ -919,6 +919,7 @@ void xe_device_snapshot_print(struct xe_device *xe, struct drm_printer *p)
|
||||
|
||||
for_each_gt(gt, xe, id) {
|
||||
drm_printf(p, "GT id: %u\n", id);
|
||||
drm_printf(p, "\tTile: %u\n", gt->tile->id);
|
||||
drm_printf(p, "\tType: %s\n",
|
||||
gt->info.type == XE_GT_TYPE_MAIN ? "main" : "media");
|
||||
drm_printf(p, "\tIP ver: %u.%u.%u\n",
|
||||
|
||||
@@ -2193,7 +2193,7 @@ xe_guc_exec_queue_snapshot_print(struct xe_guc_submit_exec_queue_snapshot *snaps
|
||||
if (!snapshot)
|
||||
return;
|
||||
|
||||
drm_printf(p, "\nGuC ID: %d\n", snapshot->guc.id);
|
||||
drm_printf(p, "GuC ID: %d\n", snapshot->guc.id);
|
||||
drm_printf(p, "\tName: %s\n", snapshot->name);
|
||||
drm_printf(p, "\tClass: %d\n", snapshot->class);
|
||||
drm_printf(p, "\tLogical mask: 0x%x\n", snapshot->logical_mask);
|
||||
|
||||
@@ -1053,7 +1053,6 @@ void xe_hw_engine_snapshot_print(struct xe_hw_engine_snapshot *snapshot,
|
||||
if (snapshot->hwe->class == XE_ENGINE_CLASS_COMPUTE)
|
||||
drm_printf(p, "\tRCU_MODE: 0x%08x\n",
|
||||
snapshot->reg.rcu_mode);
|
||||
drm_puts(p, "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user