Commit 70b5ffb3 authored by Andi Shyti's avatar Andi Shyti
Browse files

drm/i915/gt: Create per-gt debugfs files



To support multi-GT configurations, we need to generate
independent debug files for each GT.

To achieve this create a separate directory for each GT under the
debugfs directory. For instance, in a system with two GTs, the
debugfs structure would look like this:

/sys/kernel/debug/dri
                  └── 0
                      ├── gt0
                      │   ├── drpc
                      │   ├── engines
                      │   ├── forcewake
                      │   ├── frequency
                      │   └── rps_boost
                      └── gt1
                      :   ├── drpc
                      :   ├── engines
                      :   ├── forcewake
                          ├── frequency
                          └── rps_boost

Signed-off-by: default avatarAndi Shyti <andi.shyti@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: default avatarRadhakrishna Sripada <radhakrishna.sripada@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230318203616.183765-2-andi.shyti@linux.intel.com
parent 02abecde
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -83,11 +83,13 @@ static void gt_debugfs_register(struct intel_gt *gt, struct dentry *root)
void intel_gt_debugfs_register(struct intel_gt *gt)
{
	struct dentry *root;
	char gtname[4];

	if (!gt->i915->drm.primary->debugfs_root)
		return;

	root = debugfs_create_dir("gt", gt->i915->drm.primary->debugfs_root);
	snprintf(gtname, sizeof(gtname), "gt%u", gt->info.id);
	root = debugfs_create_dir(gtname, gt->i915->drm.primary->debugfs_root);
	if (IS_ERR(root))
		return;

+2 −0
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ struct intel_guc {
	/** @capture: the error-state-capture module's data and objects */
	struct intel_guc_state_capture *capture;

	struct dentry *dbgfs_node;

	/** @sched_engine: Global engine used to submit requests to GuC */
	struct i915_sched_engine *sched_engine;
	/**
+4 −1
Original line number Diff line number Diff line
@@ -542,8 +542,11 @@ static int guc_log_relay_create(struct intel_guc_log *log)
	 */
	n_subbufs = 8;

	if (!guc->dbgfs_node)
		return -ENOENT;

	guc_log_relay_chan = relay_open("guc_log",
					i915->drm.primary->debugfs_root,
					guc->dbgfs_node,
					subbuf_size, n_subbufs,
					&relay_callbacks, i915);
	if (!guc_log_relay_chan) {
+2 −0
Original line number Diff line number Diff line
@@ -54,6 +54,8 @@ void intel_uc_debugfs_register(struct intel_uc *uc, struct dentry *gt_root)
	if (IS_ERR(root))
		return;

	uc->guc.dbgfs_node = root;

	intel_gt_debugfs_register_files(root, files, ARRAY_SIZE(files), uc);

	intel_guc_debugfs_register(&uc->guc, root);