[PATCH v1] tests/xe_debugfs: Improve test_gt subtest
Lucas De Marchi
lucas.demarchi at intel.com
Thu Jan 9 18:03:44 UTC 2025
On Thu, Jan 09, 2025 at 05:42:37PM +0000, Gurram, Pravalika wrote:
>
>
>> -----Original Message-----
>> From: De Marchi, Lucas <lucas.demarchi at intel.com>
>> Sent: Thursday, January 9, 2025 10:33 PM
>> To: Gurram, Pravalika <pravalika.gurram at intel.com>
>> Cc: igt-dev at lists.freedesktop.org
>> Subject: Re: [PATCH v1] tests/xe_debugfs: Improve test_gt subtest
>>
>> On Thu, Jan 09, 2025 at 04:27:21PM +0530, Pravalika Gurram wrote:
>> >Read the debugfs entries in the loop to improve the readability.
>> >
>> >Signed-off-by: Pravalika Gurram <pravalika.gurram at intel.com>
>> >---
>> > tests/intel/xe_debugfs.c | 84 +++++++---------------------------------
>> > 1 file changed, 13 insertions(+), 71 deletions(-)
>> >
>> >diff --git a/tests/intel/xe_debugfs.c b/tests/intel/xe_debugfs.c index
>> >bcbb5036a..3d8c17921 100644
>> >--- a/tests/intel/xe_debugfs.c
>> >+++ b/tests/intel/xe_debugfs.c
>> >@@ -180,77 +180,19 @@ test_gt(int fd, int gt_id)
>> > // "guc_ct_selftest"
>> > };
>> >
>> >- sprintf(name, "gt%d/hw_engines", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/sa_info", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/steering", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/topology", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/pat", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/mocs", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/ggtt", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/register-save-restore", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/workarounds", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/default_lrc_rcs", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/default_lrc_ccs", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/default_lrc_bcs", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/default_lrc_vecs", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/default_lrc_vcs", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/hwconfig", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/uc/guc_info", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/uc/huc_info", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >-
>> >- sprintf(name, "gt%d/uc/guc_log", gt_id);
>> >- igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >- igt_debugfs_dump(fd, name);
>> >+ for (int i = 0; i < ARRAY_SIZE(expected_files); i++) {
>> >+ sprintf(name, "gt%d/%s", gt_id, expected_files[i]);
>> >+ igt_assert(igt_debugfs_exists(fd, name, O_RDONLY));
>> >+ if (!strstr(name, "uc")) {
>>
>> strstr will find any substring "uc". You could do a strcmp() instead, but I don't
>> understand why we are doing this here.
>>
>> I'd just remove 'uc' from the array and update validate_entries to ignore
>> directories.
>>
>> Lucas De Marchi
>>
>
>Strcmp will not work here because sprintf will save name = "gt0/uc"
if (strcmp(expected_files[i], "uc"))
>If we do strcmp(name,"gt0/uc") gt cannot be fixed 0 always correct it can change
>that's why I have added strstr
suppose we have a new file called chuck or touch or truck or truce or
yucks or.... They would all fall into the else condition which is not what we
want.
>
>I did not understand which directories can be ignored you meant say "uc"
>we don't need to dump "uc/*" data?
any dir. In that loop, just skip any check for
de->d_type == DT_DIR
Lucas De Marchi
>
>--Pravalika
>> >+ igt_debugfs_dump(fd, name);
>> >+ } else {
>> >+ for (int j = 0; j < ARRAY_SIZE(expected_files_uc); j++)
>> {
>> >+ sprintf(name, "gt%d/uc/%s", gt_id,
>> expected_files_uc[j]);
>> >+ igt_assert(igt_debugfs_exists(fd, name,
>> O_RDONLY));
>> >+ igt_debugfs_dump(fd, name);
>> >+ }
>> >+ }
>> >+ }
>> >
>> > sprintf(name, "/gt%d", gt_id);
>> > validate_entries(fd, name, expected_files,
>> >ARRAY_SIZE(expected_files));
>> >--
>> >2.34.1
>> >
More information about the igt-dev
mailing list