]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/xe/devcoredump: Improve section headings and add tile info
authorJohn Harrison <John.C.Harrison@Intel.com>
Thu, 3 Oct 2024 00:46:03 +0000 (17:46 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 19:04:10 +0000 (20:04 +0100)
[ 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>
drivers/gpu/drm/xe/xe_devcoredump.c
drivers/gpu/drm/xe/xe_devcoredump_types.h
drivers/gpu/drm/xe/xe_device.c
drivers/gpu/drm/xe/xe_guc_submit.c
drivers/gpu/drm/xe/xe_hw_engine.c

index d23719d5c2a3d3befe472b0ca5a6d0e29e4f7a26..2690f1d1cde4c3335618e6313bf132fbfda4fce9 100644 (file)
@@ -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");
index 440d05d77a5af8afed5508f1b1847f8c679731f8..3cc2f095fdfbd12b59202a68ddcc25a0403ba60f 100644 (file)
@@ -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 */
index a1987b554a8d2aa42b29301f2853edddfda7fda5..bb85208cf1a94c1796c55ae6bd07a535172a298d 100644 (file)
@@ -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",
index 2927745d689549b3fd8158d5941c94d1670464c5..fed23304e4da58160faeb451f7d037c4c484866e 100644 (file)
@@ -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);
index c9c3beb3ce8d069da41232a5167a0a8d15794ebc..547919e8ce9e451eb09dbd392f63230cdc83d9b4 100644 (file)
@@ -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");
 }
 
 /**