drm/xe/guc: Remove duplicate source field
authorZhanjun Dong <zhanjun.dong@intel.com>
Thu, 7 Nov 2024 21:38:41 +0000 (13:38 -0800)
committerJohn Harrison <John.C.Harrison@Intel.com>
Thu, 14 Nov 2024 23:29:37 +0000 (15:29 -0800)
xe_hw_engine_snapshot.source save the information of where data copied
from. Because the 'source' field is already populated inside
'matched_node' ptr hanging off xe_devcoredump_snapshot, which happenned
either in guc_capture_extract_reglists or xe_engine_manual_capture, we
can remove this redundant copy of 'source' from xe_hw_engine_snapshot.

Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com>
Changes from prior revs:
 v2:- Update commit message

Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241107213841.436384-1-zhanjun.dong@intel.com
drivers/gpu/drm/xe/xe_guc_capture.c
drivers/gpu/drm/xe/xe_hw_engine.c
drivers/gpu/drm/xe/xe_hw_engine_types.h

index cd6d80b..f87755a 100644 (file)
@@ -1759,7 +1759,6 @@ void xe_engine_snapshot_print(struct xe_hw_engine_snapshot *snapshot, struct drm
        if (!devcore_snapshot->matched_node)
                return;
 
-       xe_gt_assert(gt, snapshot->source <= XE_ENGINE_CAPTURE_SOURCE_GUC);
        xe_gt_assert(gt, snapshot->hwe);
 
        capture_class = xe_engine_class_to_guc_capture_class(snapshot->hwe->class);
@@ -1768,7 +1767,8 @@ void xe_engine_snapshot_print(struct xe_hw_engine_snapshot *snapshot, struct drm
                   snapshot->name ? snapshot->name : "",
                   snapshot->logical_instance);
        drm_printf(p, "\tCapture_source: %s\n",
-                  snapshot->source == XE_ENGINE_CAPTURE_SOURCE_GUC ? "GuC" : "Manual");
+                  devcore_snapshot->matched_node->source == XE_ENGINE_CAPTURE_SOURCE_GUC ?
+                  "GuC" : "Manual");
        drm_printf(p, "\tCoverage: %s\n", grptype[devcore_snapshot->matched_node->is_partial]);
        drm_printf(p, "\tForcewake: domain 0x%x, ref %d\n",
                   snapshot->forcewake.domain, snapshot->forcewake.ref);
index 0cfa2b9..c4b0dc3 100644 (file)
@@ -872,7 +872,6 @@ xe_hw_engine_snapshot_capture(struct xe_hw_engine *hwe, struct xe_exec_queue *q)
                        struct xe_devcoredump *coredump = &xe->devcoredump;
 
                        coredump->snapshot.matched_node = node;
-                       snapshot->source = XE_ENGINE_CAPTURE_SOURCE_GUC;
                        xe_gt_dbg(hwe->gt, "Found and locked GuC-err-capture node");
                        return snapshot;
                }
@@ -880,7 +879,6 @@ xe_hw_engine_snapshot_capture(struct xe_hw_engine *hwe, struct xe_exec_queue *q)
 
        /* otherwise, do manual capture */
        xe_engine_manual_capture(hwe, snapshot);
-       snapshot->source = XE_ENGINE_CAPTURE_SOURCE_MANUAL;
        xe_gt_dbg(hwe->gt, "Proceeding with manual engine snapshot");
 
        return snapshot;
index 719f27e..e14bee9 100644 (file)
@@ -165,8 +165,6 @@ enum xe_hw_engine_snapshot_source_id {
 struct xe_hw_engine_snapshot {
        /** @name: name of the hw engine */
        char *name;
-       /** @source: Data source, either manual or GuC */
-       enum xe_hw_engine_snapshot_source_id source;
        /** @hwe: hw engine */
        struct xe_hw_engine *hwe;
        /** @logical_instance: logical instance of this hw engine */