* [PATCH i-g-t] tests/intel/xe_debugfs: add uc debugfs validation and read tests
@ 2026-07-29 7:41 Sobin Thomas
0 siblings, 0 replies; only message in thread
From: Sobin Thomas @ 2026-07-29 7:41 UTC (permalink / raw)
To: igt-dev, daniele.ceraolospurio; +Cc: kamil.konieczny, Sobin Thomas
Add coverage for GT-specific uc debugfs entries by introducing a new
uc-info-read subtest that validates the presence of required files in the
GT debugfs hierarchy. The test currently verifies the existence of
the following debugfs nodes:
- uc/gsc_info
- uc/huc_info
- uc/guc_info
- uc/guc_pc
These additions improve validation of Xe GT debugfs interfaces and
provide basic functional coverage for the GSC information debugfs node.
v2: Add support for guc and huc info (Daniele)
v3: Added checks for the device nodes.
v4: Consolidated the calls into single test_uc_info_read subtest
v5: Fixed mandatory and optional logs and access check
is done using igt_sysfs_has_attr. (Daniele)
Fixed subject nits. (Kamil)
Signed-off-by: Sobin Thomas <sobin.thomas@intel.com>
---
tests/intel/xe_debugfs.c | 71 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 70 insertions(+), 1 deletion(-)
diff --git a/tests/intel/xe_debugfs.c b/tests/intel/xe_debugfs.c
index da482157e..5c045b04f 100644
--- a/tests/intel/xe_debugfs.c
+++ b/tests/intel/xe_debugfs.c
@@ -16,6 +16,18 @@ struct {
bool warn_on_not_hit;
} opt = { 0 };
+struct uc_info_node {
+ const char *node;
+ bool mandatory;
+};
+
+static const struct uc_info_node uc_info_nodes[] = {
+ { "uc/gsc_info", false },
+ { "uc/huc_info", false },
+ { "uc/guc_info", true },
+ { "uc/guc_pc", true },
+};
+
/**
* TEST: Xe debugfs test
* Description: Xe-specific debugfs tests. These are complementary to the
@@ -595,6 +607,56 @@ static void check_gt_reg_sr(int fd, int gt)
igt_assert_eq(problems, 0);
}
+/**
+ * SUBTEST: uc-info-read
+ * Description: This is for reading the uc device nodes.
+ */
+static void test_uc_info_read(struct xe_device *xe_dev, unsigned int gt)
+{
+ int debugfs_fd = igt_debugfs_gt_dir(xe_dev->fd, gt);
+ int i;
+ int fail_count = 0;
+
+ igt_skip_on_f(debugfs_fd < 0, "Failed to open debugfs directory\n");
+
+ for (i = 0; i < ARRAY_SIZE(uc_info_nodes); i++) {
+ const char *node = uc_info_nodes[i].node;
+ bool mandatory = uc_info_nodes[i].mandatory;
+ char *buf;
+
+ if (!igt_sysfs_has_attr(debugfs_fd, node)) {
+ if (mandatory)
+ fail_count++;
+ igt_info("%s debugfs node not present on GT-%u\n", node, gt);
+ continue;
+ }
+ buf = igt_sysfs_get(debugfs_fd, node);
+ if (!buf) {
+ if (mandatory)
+ fail_count++;
+
+ igt_info("Failed to read %s %s debugfs file on GT-%u\n",
+ mandatory ? "mandatory" : "optional", node, gt);
+ continue;
+ }
+
+ if (buf[0] == '\0') {
+ free(buf);
+ if (mandatory)
+ fail_count++;
+ igt_info("%s %s debugfs file is empty on GT-%u\n",
+ mandatory ? "mandatory" : "optional", node, gt);
+ continue;
+ }
+ igt_info("GT-%u: successfully read %s (%zu bytes)\n", gt, node, strlen(buf));
+ free(buf);
+ }
+ close(debugfs_fd);
+ igt_fail_on_f(fail_count > 0,
+ "%d mandatory debugfs node(s) failed (missing/unreadable/empty) on GT-%u\n",
+ fail_count, gt);
+}
+
const char *help_str =
" --warn-not-hit|--w\tWarn about devfs nodes that have no tests";
@@ -619,8 +681,9 @@ static int opt_handler(int option, int option_index, void *input)
int igt_main_args("", long_options, help_str, opt_handler, NULL)
{
struct xe_device *xe_dev;
+ int fd = -1;
+ unsigned int gt;
unsigned int t;
- int fd = -1, gt;
igt_fixture() {
fd = drm_open_driver_master(DRIVER_XE);
@@ -648,6 +711,12 @@ int igt_main_args("", long_options, help_str, opt_handler, NULL)
igt_dynamic_f("gt%d", gt)
check_gt_reg_sr(fd, gt);
+ igt_describe("Verify that uC debugfs info nodes are present and readable.");
+ igt_subtest_with_dynamic("uc-info-read")
+ xe_for_each_gt(fd, gt)
+ igt_dynamic_f("gt%d", gt)
+ test_uc_info_read(xe_dev, gt);
+
igt_fixture() {
drm_close_driver(fd);
}
--
2.51.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-07-29 7:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-29 7:41 [PATCH i-g-t] tests/intel/xe_debugfs: add uc debugfs validation and read tests Sobin Thomas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox