* [igt-dev] [PATCH i-g-t 0/4] add kselftest runner documentation
@ 2022-08-03 5:26 Tales Aparecida
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 1/4] lib/igt_kmod: fix trivial typos Tales Aparecida
` (5 more replies)
0 siblings, 6 replies; 13+ messages in thread
From: Tales Aparecida @ 2022-08-03 5:26 UTC (permalink / raw)
To: igt-dev, Chris Wilson
Cc: siqueirajordao, magalilemes00, tales.aparecida, Isabella Basso,
andrealmeid, Trevor Woerner
In the interest of making the code more accessible, add documentation
on structs and functions related to the kselftest.
While writing igt_kselftest_begin() documentation I realized it always
returned 0. Instead of documenting that behavior, the function now
returns non-zero if it fails to open /dev/kmsg.
As an extra, add instructions about writing documentation.
Tales Aparecida (4):
lib/igt_kmod: fix trivial typos
CONTRIBUTING: Add reference for GTKDoc
lib/kselftests: return non-zero on open(kmsg) failure
lib/igt_kmod: add igt_kselftests documentation
CONTRIBUTING.md | 7 +++
lib/igt_kmod.c | 113 +++++++++++++++++++++++++++++++++++++++++++++++-
lib/igt_kmod.h | 18 ++++++++
3 files changed, 136 insertions(+), 2 deletions(-)
--
2.37.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [igt-dev] [PATCH i-g-t 1/4] lib/igt_kmod: fix trivial typos
2022-08-03 5:26 [igt-dev] [PATCH i-g-t 0/4] add kselftest runner documentation Tales Aparecida
@ 2022-08-03 5:26 ` Tales Aparecida
2022-08-03 17:13 ` Kamil Konieczny
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 2/4] CONTRIBUTING: Add reference for GTKDoc Tales Aparecida
` (4 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Tales Aparecida @ 2022-08-03 5:26 UTC (permalink / raw)
To: igt-dev, Chris Wilson
Cc: siqueirajordao, magalilemes00, tales.aparecida, Isabella Basso,
andrealmeid, Trevor Woerner
existance -> existence
kmcdline -> kcmdline
Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
---
lib/igt_kmod.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index dfdcfcc5..bde0461a 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -114,7 +114,7 @@ out:
*
* Returns: True in case the module has been found or false otherwise.
*
- * Function to check the existance of module @mod_name in list of loaded kernel
+ * Function to check the existence of module @mod_name in list of loaded kernel
* modules.
*
*/
@@ -813,7 +813,7 @@ static void kmsg_dump(int fd)
continue;
if (errno == EPIPE) {
- igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
+ igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kcmdline\n");
continue;
}
--
2.37.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [igt-dev] [PATCH i-g-t 2/4] CONTRIBUTING: Add reference for GTKDoc
2022-08-03 5:26 [igt-dev] [PATCH i-g-t 0/4] add kselftest runner documentation Tales Aparecida
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 1/4] lib/igt_kmod: fix trivial typos Tales Aparecida
@ 2022-08-03 5:26 ` Tales Aparecida
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 3/4] lib/kselftests: return non-zero on open(kmsg) failure Tales Aparecida
` (3 subsequent siblings)
5 siblings, 0 replies; 13+ messages in thread
From: Tales Aparecida @ 2022-08-03 5:26 UTC (permalink / raw)
To: igt-dev, Chris Wilson
Cc: siqueirajordao, magalilemes00, tales.aparecida, Isabella Basso,
andrealmeid, Trevor Woerner
Add reference links about code documentation.
Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
---
CONTRIBUTING.md | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6d1294ad..2b5a78b5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -13,6 +13,12 @@ The Code
- The code should follow kernel coding style:
https://www.kernel.org/doc/html/latest/process/coding-style.html
+- The in-code documentation should follow GtkDoc specifications:
+ https://developer-old.gnome.org/gtk-doc-manual/stable/documenting.html.
+ For an updated version, you can also download the GtkDoc's
+ [source code][gtkdoc-repo] and open its manual with `yelp` directly by typing
+ in a terminal: `yelp file:///absolute/path/to/gtk-doc/help/manual/C/index.docbook`
+
- Testcases (subtests) have to use minus signs (-) as a word separator.
The generated documentation contains glossary of commonly used terms.
@@ -31,6 +37,7 @@ The Code
more automatic conversions.
[igt-describe]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
+[gtkdoc-repo]: https://gitlab.gnome.org/GNOME/gtk-doc
Sending Patches
--
2.37.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [igt-dev] [PATCH i-g-t 3/4] lib/kselftests: return non-zero on open(kmsg) failure
2022-08-03 5:26 [igt-dev] [PATCH i-g-t 0/4] add kselftest runner documentation Tales Aparecida
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 1/4] lib/igt_kmod: fix trivial typos Tales Aparecida
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 2/4] CONTRIBUTING: Add reference for GTKDoc Tales Aparecida
@ 2022-08-03 5:26 ` Tales Aparecida
2022-08-03 17:11 ` Kamil Konieczny
2022-08-04 18:09 ` Maíra Canal
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 4/4] lib/igt_kmod: add igt_kselftests documentation Tales Aparecida
` (2 subsequent siblings)
5 siblings, 2 replies; 13+ messages in thread
From: Tales Aparecida @ 2022-08-03 5:26 UTC (permalink / raw)
To: igt-dev, Chris Wilson
Cc: siqueirajordao, magalilemes00, tales.aparecida, Isabella Basso,
andrealmeid, Trevor Woerner
Previously igt_kselftest_begin() always returned 0.
Return non-zero if failed to open kmsg, instead.
Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
---
lib/igt_kmod.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index bde0461a..63636243 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -933,6 +933,8 @@ int igt_kselftest_begin(struct igt_kselftest *tst)
igt_require(err == 0 || err == -ENOENT);
tst->kmsg = open("/dev/kmsg", O_RDONLY | O_NONBLOCK);
+ if (tst->kmsg < 0)
+ return 1;
return 0;
}
--
2.37.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [igt-dev] [PATCH i-g-t 4/4] lib/igt_kmod: add igt_kselftests documentation
2022-08-03 5:26 [igt-dev] [PATCH i-g-t 0/4] add kselftest runner documentation Tales Aparecida
` (2 preceding siblings ...)
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 3/4] lib/kselftests: return non-zero on open(kmsg) failure Tales Aparecida
@ 2022-08-03 5:26 ` Tales Aparecida
2022-08-03 8:47 ` Petri Latvala
2022-08-03 6:00 ` [igt-dev] ✓ Fi.CI.BAT: success for add kselftest runner documentation Patchwork
2022-08-03 13:29 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
5 siblings, 1 reply; 13+ messages in thread
From: Tales Aparecida @ 2022-08-03 5:26 UTC (permalink / raw)
To: igt-dev, Chris Wilson
Cc: siqueirajordao, magalilemes00, tales.aparecida, Isabella Basso,
andrealmeid, Trevor Woerner
Add documentation for igt_kselftests functions and structs. Also adds
comments to non trivial lines.
Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
---
lib/igt_kmod.c | 107 +++++++++++++++++++++++++++++++++++++++++++++++++
lib/igt_kmod.h | 18 +++++++++
2 files changed, 125 insertions(+)
diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
index 63636243..852112cc 100644
--- a/lib/igt_kmod.c
+++ b/lib/igt_kmod.c
@@ -792,6 +792,12 @@ igt_amdgpu_driver_unload(void)
return IGT_EXIT_SUCCESS;
}
+/*
+ * kmsg_dump:
+ * @fd: file descriptor for `/dev/kmsg` opened for reading
+ *
+ * Dump kmsg output into stderr.
+ */
static void kmsg_dump(int fd)
{
char record[4096 + 1];
@@ -832,6 +838,13 @@ static void kmsg_dump(int fd)
}
}
+/*
+ * tests_add:
+ * @tl: (in): test to be inserted
+ * @list: (inout): ordered list of tests sorted by test->number
+ *
+ * Insert test at the correct position in the ordered list
+ */
static void tests_add(struct igt_kselftest_list *tl, struct igt_list_head *list)
{
struct igt_kselftest_list *pos;
@@ -843,6 +856,14 @@ static void tests_add(struct igt_kselftest_list *tl, struct igt_list_head *list)
igt_list_add_tail(&tl->link, &pos->link);
}
+/**
+ * igt_kselftest_get_tests:
+ * @kmod: (in): kernel module from which to parse module_params' names into IGT tests
+ * @filter: (in)(nullable): get only tests with a prefix matching this filter
+ * @tests: (inout): resulting ordered list of tests
+ *
+ * Get IGT tests' names from module_params' names, given a module.
+ */
void igt_kselftest_get_tests(struct kmod_module *kmod,
const char *filter,
struct igt_list_head *tests)
@@ -856,25 +877,33 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
if (!kmod_module_get_info(kmod, &pre))
return;
+ /* iter through module infos trying to find tests, which should be
+ * named following the pattern: "igt__{test_number}__{test_name}:bool",
+ * e.g.: "igt__18__perf_engine_cs:bool" */
kmod_list_foreach(d, pre) {
const char *key, *val;
char *colon;
int offset;
+ /* skip any info that is not a module param */
key = kmod_module_info_get_key(d);
if (strcmp(key, "parmtype"))
continue;
+ /* skip any module param that don't have the IGT test prefix */
val = kmod_module_info_get_value(d);
if (!val || strncmp(val, param_prefix, prefix_len))
continue;
+ /* alloc list-node that will store the module_param name */
offset = strlen(val) + 1;
tl = malloc(sizeof(*tl) + offset);
if (!tl)
continue;
memcpy(tl->param, val, offset);
+
+ /* find and replace colon with \0 to discard module_param type */
colon = strchr(tl->param, ':');
*colon = '\0';
@@ -884,6 +913,7 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
&tl->number, &offset) == 1)
tl->name += offset;
+ /* skip any test that doesn't match the prefix filter */
if (filter && strncmp(tl->name, filter, strlen(filter))) {
free(tl);
continue;
@@ -902,6 +932,22 @@ static int open_parameters(const char *module_name)
return open(path, O_RDONLY);
}
+/**
+ * igt_kselftest_init:
+ * @tst: (inout): pointer of #igt_kselftest to be initialized
+ * @module_name: (in): name of the module with IGT tests declared as module_params
+ *
+ * Initialize the given struct igt_kselftest and the inner struct kmod_module.
+ *
+ * @Note: This function initialize @tst->kmsg with `-1`, call
+ * igt_kselftest_begin() to actually open the <filename>/dev/kmsg</filename> stream.
+ * @tst->module_name should be freed by the caller with free(), @tst->kmod
+ * refcount needs to be decremented to be released using
+ * <function>kmod_module_unref</function>.
+ *
+ * Returns: 0 on success, non-zero otherwise. It fails if name is not a valid
+ * module name or if memory allocation failed.
+ */
int igt_kselftest_init(struct igt_kselftest *tst,
const char *module_name)
{
@@ -922,6 +968,17 @@ int igt_kselftest_init(struct igt_kselftest *tst,
return 0;
}
+/**
+ * igt_kselftest_begin:
+ * @tst: (inout): pointer to #igt_kselftest with `kmod_module` handler to unload
+ * and where the file descriptor for <filename>/dev/kmsg</filename> will be
+ * stored.
+ *
+ * Unload the module that will be tested and open kmsg to start reading it.
+ * If module is i915, unloads some of its dependencies as well.
+ *
+ * Returns: 0 on success, non-zero otherwise.
+ */
int igt_kselftest_begin(struct igt_kselftest *tst)
{
int err;
@@ -939,6 +996,21 @@ int igt_kselftest_begin(struct igt_kselftest *tst)
return 0;
}
+/**
+ * igt_kselftest_execute:
+ * @tst: (in): handler for module to be tested and inner kmsg file descriptor
+ * @tl: (in): contains the name of the test to be executed
+ * @options: (in)(nullable): Extra parameters for the module. NULL in case no
+ * parameters are to be passed, or a '\0' terminated string otherwise.
+ * @result: (in)(nullable): NULL if the result of loading the module should be
+ * returned, or a '\0' terminated string with the name of the module_param
+ * holding the test's result, if that should be returned instead.
+ *
+ * Execute the given test by loading the module and asserts its success.
+ *
+ * Returns: 0 on success, non-zero otherwise. If @result is set, returns the
+ * value from the given module_param after running the test.
+ */
int igt_kselftest_execute(struct igt_kselftest *tst,
struct igt_kselftest_list *tl,
const char *options,
@@ -952,6 +1024,7 @@ int igt_kselftest_execute(struct igt_kselftest *tst,
lseek(tst->kmsg, 0, SEEK_END);
+ /* prepare modprobe parameters to enable a test with extra options */
snprintf(buf, sizeof(buf), "%s=1 %s", tl->param, options ?: "");
err = modprobe(tst->kmod, buf);
@@ -977,18 +1050,40 @@ int igt_kselftest_execute(struct igt_kselftest *tst,
return err;
}
+/**
+ * igt_kselftest_end:
+ * @tst: (in): handler for module to be unloaded and kmsg file descriptor
+ *
+ * Unload the module and close the kmsg file descriptor.
+ */
void igt_kselftest_end(struct igt_kselftest *tst)
{
kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE);
close(tst->kmsg);
}
+/**
+ * igt_kselftest_fini:
+ * @tst: (in): container of items to be freed
+ *
+ * Free memory from @tst->module_name and remove reference for @tst->kmod
+ */
void igt_kselftest_fini(struct igt_kselftest *tst)
{
free(tst->module_name);
kmod_module_unref(tst->kmod);
}
+/*
+ * unfilter:
+ * @filter: (in)(nullable): prefix to be removed
+ * @name: (in): string to be trimmed
+ *
+ * Remove prefix @filter from @name, removing an additional non-alpha char,
+ * if there's one.
+ *
+ * Returns: a pointer to the resulting string
+ */
static const char *unfilter(const char *filter, const char *name)
{
if (!filter)
@@ -1001,6 +1096,18 @@ static const char *unfilter(const char *filter, const char *name)
return name;
}
+/**
+ * igt_kselftests:
+ * @module_name: (in): name of the module to find and run tests for
+ * @options: (in)(nullable): Extra parameters for the module. NULL in case no
+ * parameters are to be passed, or a '\0' terminated string otherwise.
+ * @result: (in)(nullable): NULL if the result of loading the module should be
+ * returned, or a '\0' terminated string with the name of the module_param
+ * holding the test's result, if that should be returned instead.
+ * @filter: (in)(nullable): run only tests with a prefix matching this filter
+ *
+ * Find and execute kselftests defined as module_params of the given module.
+ */
void igt_kselftests(const char *module_name,
const char *options,
const char *result,
diff --git a/lib/igt_kmod.h b/lib/igt_kmod.h
index f98dd29f..4f81641b 100644
--- a/lib/igt_kmod.h
+++ b/lib/igt_kmod.h
@@ -50,12 +50,30 @@ void igt_kselftests(const char *module_name,
const char *result_option,
const char *filter);
+/**
+ * igt_kselftest:
+ * @kmod: reference for <structname>kmod_module</structname> used to load and
+ * unload the module
+ * @module_name: name of the module containing the kselftests for IGT
+ * @kmsg: holds a file descriptor for <filename>/dev/kmsg</filename>
+ *
+ * Handle a kernel module with kselftests and their output
+ */
struct igt_kselftest {
struct kmod_module *kmod;
char *module_name;
int kmsg;
};
+/**
+ * igt_kselftest_list:
+ * @link: doubly linked list attributes
+ * @number: defines the relative position of each element in the ordered list
+ * @name: pointer to the test's name, a suffix of <structfield>param</structfield>
+ * @param: name of the module_param that enables/disables the test
+ *
+ * Node of an ordered list of test names
+ */
struct igt_kselftest_list {
struct igt_list_head link;
unsigned int number;
--
2.37.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for add kselftest runner documentation
2022-08-03 5:26 [igt-dev] [PATCH i-g-t 0/4] add kselftest runner documentation Tales Aparecida
` (3 preceding siblings ...)
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 4/4] lib/igt_kmod: add igt_kselftests documentation Tales Aparecida
@ 2022-08-03 6:00 ` Patchwork
2022-08-03 13:29 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
5 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2022-08-03 6:00 UTC (permalink / raw)
To: Tales Aparecida; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 5509 bytes --]
== Series Details ==
Series: add kselftest runner documentation
URL : https://patchwork.freedesktop.org/series/106921/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_11964 -> IGTPW_7600
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/index.html
Participating hosts (45 -> 44)
------------------------------
Additional (2): fi-kbl-soraka bat-jsl-3
Missing (3): fi-ctg-p8600 fi-bdw-samus fi-hsw-4200u
Known issues
------------
Here are the changes found in IGTPW_7600 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_gttfill@basic:
- fi-kbl-soraka: NOTRUN -> [SKIP][1] ([fdo#109271]) +8 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/fi-kbl-soraka/igt@gem_exec_gttfill@basic.html
* igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@basic:
- fi-kbl-soraka: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html
* igt@i915_selftest@live@gem:
- fi-pnv-d510: NOTRUN -> [DMESG-FAIL][4] ([i915#4528])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/fi-pnv-d510/igt@i915_selftest@live@gem.html
* igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][5] ([i915#1886])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-soraka: NOTRUN -> [SKIP][6] ([fdo#109271] / [fdo#111827]) +7 similar issues
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/fi-kbl-soraka/igt@kms_chamelium@hdmi-hpd-fast.html
#### Possible fixes ####
* igt@fbdev@read:
- {bat-rpls-2}: [SKIP][7] ([i915#2582]) -> [PASS][8] +4 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/bat-rpls-2/igt@fbdev@read.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/bat-rpls-2/igt@fbdev@read.html
* igt@gem_exec_suspend@basic-s3@smem:
- {bat-adlm-1}: [DMESG-WARN][9] ([i915#2867]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/bat-adlm-1/igt@gem_exec_suspend@basic-s3@smem.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/bat-adlm-1/igt@gem_exec_suspend@basic-s3@smem.html
* igt@gem_ringfill@basic-all:
- {bat-dg2-8}: [FAIL][11] ([i915#5886]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/bat-dg2-8/igt@gem_ringfill@basic-all.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/bat-dg2-8/igt@gem_ringfill@basic-all.html
* igt@i915_selftest@live@hugepages:
- {bat-adlm-1}: [DMESG-WARN][13] -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/bat-adlm-1/igt@i915_selftest@live@hugepages.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/bat-adlm-1/igt@i915_selftest@live@hugepages.html
* igt@i915_selftest@live@requests:
- fi-pnv-d510: [DMESG-FAIL][15] ([i915#4528]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/fi-pnv-d510/igt@i915_selftest@live@requests.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/fi-pnv-d510/igt@i915_selftest@live@requests.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
[i915#3003]: https://gitlab.freedesktop.org/drm/intel/issues/3003
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#5270]: https://gitlab.freedesktop.org/drm/intel/issues/5270
[i915#5886]: https://gitlab.freedesktop.org/drm/intel/issues/5886
[i915#5903]: https://gitlab.freedesktop.org/drm/intel/issues/5903
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_6610 -> IGTPW_7600
CI-20190529: 20190529
CI_DRM_11964: 856e330c2d6aa43e94bfca2d1b09369575f8f498 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_7600: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/index.html
IGT_6610: c93f93dfe91a77e6a884f826d61f927106988b5f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/index.html
[-- Attachment #2: Type: text/html, Size: 6045 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 4/4] lib/igt_kmod: add igt_kselftests documentation
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 4/4] lib/igt_kmod: add igt_kselftests documentation Tales Aparecida
@ 2022-08-03 8:47 ` Petri Latvala
2022-08-03 15:49 ` Tales
0 siblings, 1 reply; 13+ messages in thread
From: Petri Latvala @ 2022-08-03 8:47 UTC (permalink / raw)
To: Tales Aparecida
Cc: siqueirajordao, magalilemes00, Chris Wilson, igt-dev,
Isabella Basso, andrealmeid, Trevor Woerner
On Wed, Aug 03, 2022 at 02:26:54AM -0300, Tales Aparecida wrote:
> Add documentation for igt_kselftests functions and structs. Also adds
> comments to non trivial lines.
>
> Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
> ---
> lib/igt_kmod.c | 107 +++++++++++++++++++++++++++++++++++++++++++++++++
> lib/igt_kmod.h | 18 +++++++++
> 2 files changed, 125 insertions(+)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index 63636243..852112cc 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -792,6 +792,12 @@ igt_amdgpu_driver_unload(void)
> return IGT_EXIT_SUCCESS;
> }
>
> +/*
> + * kmsg_dump:
> + * @fd: file descriptor for `/dev/kmsg` opened for reading
> + *
> + * Dump kmsg output into stderr.
> + */
The documentation comment needs to begin with /** (two *)
> static void kmsg_dump(int fd)
> {
> char record[4096 + 1];
> @@ -832,6 +838,13 @@ static void kmsg_dump(int fd)
> }
> }
>
> +/*
> + * tests_add:
> + * @tl: (in): test to be inserted
> + * @list: (inout): ordered list of tests sorted by test->number
> + *
> + * Insert test at the correct position in the ordered list
> + */
Same for this.
> static void tests_add(struct igt_kselftest_list *tl, struct igt_list_head *list)
> {
> struct igt_kselftest_list *pos;
> @@ -843,6 +856,14 @@ static void tests_add(struct igt_kselftest_list *tl, struct igt_list_head *list)
> igt_list_add_tail(&tl->link, &pos->link);
> }
>
> +/**
> + * igt_kselftest_get_tests:
> + * @kmod: (in): kernel module from which to parse module_params' names into IGT tests
> + * @filter: (in)(nullable): get only tests with a prefix matching this filter
> + * @tests: (inout): resulting ordered list of tests
> + *
> + * Get IGT tests' names from module_params' names, given a module.
> + */
> void igt_kselftest_get_tests(struct kmod_module *kmod,
> const char *filter,
> struct igt_list_head *tests)
> @@ -856,25 +877,33 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
> if (!kmod_module_get_info(kmod, &pre))
> return;
>
> + /* iter through module infos trying to find tests, which should be
> + * named following the pattern: "igt__{test_number}__{test_name}:bool",
> + * e.g.: "igt__18__perf_engine_cs:bool" */
Multiline comments should have /* and */ on their own lines.
> kmod_list_foreach(d, pre) {
> const char *key, *val;
> char *colon;
> int offset;
>
> + /* skip any info that is not a module param */
^^ extra space there
> key = kmod_module_info_get_key(d);
> if (strcmp(key, "parmtype"))
> continue;
>
> + /* skip any module param that don't have the IGT test prefix */
> val = kmod_module_info_get_value(d);
> if (!val || strncmp(val, param_prefix, prefix_len))
> continue;
>
> + /* alloc list-node that will store the module_param name */
> offset = strlen(val) + 1;
> tl = malloc(sizeof(*tl) + offset);
> if (!tl)
> continue;
>
> memcpy(tl->param, val, offset);
> +
> + /* find and replace colon with \0 to discard module_param type */
> colon = strchr(tl->param, ':');
> *colon = '\0';
>
> @@ -884,6 +913,7 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
> &tl->number, &offset) == 1)
> tl->name += offset;
>
> + /* skip any test that doesn't match the prefix filter */
> if (filter && strncmp(tl->name, filter, strlen(filter))) {
> free(tl);
> continue;
> @@ -902,6 +932,22 @@ static int open_parameters(const char *module_name)
> return open(path, O_RDONLY);
> }
>
> +/**
> + * igt_kselftest_init:
> + * @tst: (inout): pointer of #igt_kselftest to be initialized
> + * @module_name: (in): name of the module with IGT tests declared as module_params
> + *
> + * Initialize the given struct igt_kselftest and the inner struct kmod_module.
> + *
> + * @Note: This function initialize @tst->kmsg with `-1`, call
> + * igt_kselftest_begin() to actually open the <filename>/dev/kmsg</filename> stream.
> + * @tst->module_name should be freed by the caller with free(), @tst->kmod
> + * refcount needs to be decremented to be released using
> + * <function>kmod_module_unref</function>.
> + *
> + * Returns: 0 on success, non-zero otherwise. It fails if name is not a valid
> + * module name or if memory allocation failed.
> + */
> int igt_kselftest_init(struct igt_kselftest *tst,
> const char *module_name)
> {
> @@ -922,6 +968,17 @@ int igt_kselftest_init(struct igt_kselftest *tst,
> return 0;
> }
>
> +/**
> + * igt_kselftest_begin:
> + * @tst: (inout): pointer to #igt_kselftest with `kmod_module` handler to unload
> + * and where the file descriptor for <filename>/dev/kmsg</filename> will be
> + * stored.
> + *
> + * Unload the module that will be tested and open kmsg to start reading it.
> + * If module is i915, unloads some of its dependencies as well.
> + *
> + * Returns: 0 on success, non-zero otherwise.
> + */
> int igt_kselftest_begin(struct igt_kselftest *tst)
> {
> int err;
> @@ -939,6 +996,21 @@ int igt_kselftest_begin(struct igt_kselftest *tst)
> return 0;
> }
>
> +/**
> + * igt_kselftest_execute:
> + * @tst: (in): handler for module to be tested and inner kmsg file descriptor
> + * @tl: (in): contains the name of the test to be executed
> + * @options: (in)(nullable): Extra parameters for the module. NULL in case no
> + * parameters are to be passed, or a '\0' terminated string otherwise.
> + * @result: (in)(nullable): NULL if the result of loading the module should be
> + * returned, or a '\0' terminated string with the name of the module_param
> + * holding the test's result, if that should be returned instead.
> + *
> + * Execute the given test by loading the module and asserts its success.
> + *
> + * Returns: 0 on success, non-zero otherwise. If @result is set, returns the
> + * value from the given module_param after running the test.
> + */
> int igt_kselftest_execute(struct igt_kselftest *tst,
> struct igt_kselftest_list *tl,
> const char *options,
> @@ -952,6 +1024,7 @@ int igt_kselftest_execute(struct igt_kselftest *tst,
>
> lseek(tst->kmsg, 0, SEEK_END);
>
> + /* prepare modprobe parameters to enable a test with extra options */
> snprintf(buf, sizeof(buf), "%s=1 %s", tl->param, options ?: "");
>
> err = modprobe(tst->kmod, buf);
> @@ -977,18 +1050,40 @@ int igt_kselftest_execute(struct igt_kselftest *tst,
> return err;
> }
>
> +/**
> + * igt_kselftest_end:
> + * @tst: (in): handler for module to be unloaded and kmsg file descriptor
> + *
> + * Unload the module and close the kmsg file descriptor.
> + */
> void igt_kselftest_end(struct igt_kselftest *tst)
> {
> kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE);
> close(tst->kmsg);
> }
>
> +/**
> + * igt_kselftest_fini:
> + * @tst: (in): container of items to be freed
> + *
> + * Free memory from @tst->module_name and remove reference for @tst->kmod
> + */
> void igt_kselftest_fini(struct igt_kselftest *tst)
> {
> free(tst->module_name);
> kmod_module_unref(tst->kmod);
> }
>
> +/*
> + * unfilter:
> + * @filter: (in)(nullable): prefix to be removed
> + * @name: (in): string to be trimmed
> + *
> + * Remove prefix @filter from @name, removing an additional non-alpha char,
> + * if there's one.
> + *
> + * Returns: a pointer to the resulting string
> + */
Another doc block without /**
--
Petri Latvala
> static const char *unfilter(const char *filter, const char *name)
> {
> if (!filter)
> @@ -1001,6 +1096,18 @@ static const char *unfilter(const char *filter, const char *name)
> return name;
> }
>
> +/**
> + * igt_kselftests:
> + * @module_name: (in): name of the module to find and run tests for
> + * @options: (in)(nullable): Extra parameters for the module. NULL in case no
> + * parameters are to be passed, or a '\0' terminated string otherwise.
> + * @result: (in)(nullable): NULL if the result of loading the module should be
> + * returned, or a '\0' terminated string with the name of the module_param
> + * holding the test's result, if that should be returned instead.
> + * @filter: (in)(nullable): run only tests with a prefix matching this filter
> + *
> + * Find and execute kselftests defined as module_params of the given module.
> + */
> void igt_kselftests(const char *module_name,
> const char *options,
> const char *result,
> diff --git a/lib/igt_kmod.h b/lib/igt_kmod.h
> index f98dd29f..4f81641b 100644
> --- a/lib/igt_kmod.h
> +++ b/lib/igt_kmod.h
> @@ -50,12 +50,30 @@ void igt_kselftests(const char *module_name,
> const char *result_option,
> const char *filter);
>
> +/**
> + * igt_kselftest:
> + * @kmod: reference for <structname>kmod_module</structname> used to load and
> + * unload the module
> + * @module_name: name of the module containing the kselftests for IGT
> + * @kmsg: holds a file descriptor for <filename>/dev/kmsg</filename>
> + *
> + * Handle a kernel module with kselftests and their output
> + */
> struct igt_kselftest {
> struct kmod_module *kmod;
> char *module_name;
> int kmsg;
> };
>
> +/**
> + * igt_kselftest_list:
> + * @link: doubly linked list attributes
> + * @number: defines the relative position of each element in the ordered list
> + * @name: pointer to the test's name, a suffix of <structfield>param</structfield>
> + * @param: name of the module_param that enables/disables the test
> + *
> + * Node of an ordered list of test names
> + */
> struct igt_kselftest_list {
> struct igt_list_head link;
> unsigned int number;
> --
> 2.37.0
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for add kselftest runner documentation
2022-08-03 5:26 [igt-dev] [PATCH i-g-t 0/4] add kselftest runner documentation Tales Aparecida
` (4 preceding siblings ...)
2022-08-03 6:00 ` [igt-dev] ✓ Fi.CI.BAT: success for add kselftest runner documentation Patchwork
@ 2022-08-03 13:29 ` Patchwork
5 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2022-08-03 13:29 UTC (permalink / raw)
To: Tales Aparecida; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 53818 bytes --]
== Series Details ==
Series: add kselftest runner documentation
URL : https://patchwork.freedesktop.org/series/106921/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_11964_full -> IGTPW_7600_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/index.html
Participating hosts (13 -> 10)
------------------------------
Missing (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005
Known issues
------------
Here are the changes found in IGTPW_7600_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@feature_discovery@display-4x:
- shard-tglb: NOTRUN -> [SKIP][1] ([i915#1839])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb3/igt@feature_discovery@display-4x.html
- shard-iclb: NOTRUN -> [SKIP][2] ([i915#1839])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb2/igt@feature_discovery@display-4x.html
* igt@feature_discovery@psr2:
- shard-iclb: NOTRUN -> [SKIP][3] ([i915#658])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb3/igt@feature_discovery@psr2.html
* igt@gem_ctx_isolation@preservation-s3@vecs0:
- shard-tglb: [PASS][4] -> [INCOMPLETE][5] ([i915#6021])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-tglb8/igt@gem_ctx_isolation@preservation-s3@vecs0.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb2/igt@gem_ctx_isolation@preservation-s3@vecs0.html
* igt@gem_ctx_persistence@hostile:
- shard-snb: NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#1099]) +1 similar issue
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-snb7/igt@gem_ctx_persistence@hostile.html
* igt@gem_exec_balancer@parallel-keep-in-fence:
- shard-iclb: NOTRUN -> [SKIP][7] ([i915#4525])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@gem_exec_balancer@parallel-keep-in-fence.html
* igt@gem_exec_balancer@parallel-keep-submit-fence:
- shard-iclb: [PASS][8] -> [SKIP][9] ([i915#4525])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb4/igt@gem_exec_balancer@parallel-keep-submit-fence.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb3/igt@gem_exec_balancer@parallel-keep-submit-fence.html
* igt@gem_exec_balancer@parallel-ordering:
- shard-kbl: NOTRUN -> [FAIL][10] ([i915#6117])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl1/igt@gem_exec_balancer@parallel-ordering.html
* igt@gem_exec_capture@capture-invisible@smem0:
- shard-iclb: NOTRUN -> [SKIP][11] ([i915#6334])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb7/igt@gem_exec_capture@capture-invisible@smem0.html
- shard-tglb: NOTRUN -> [SKIP][12] ([i915#6334])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb7/igt@gem_exec_capture@capture-invisible@smem0.html
* igt@gem_exec_fair@basic-none-rrul@rcs0:
- shard-glk: NOTRUN -> [FAIL][13] ([i915#2842])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-glk3/igt@gem_exec_fair@basic-none-rrul@rcs0.html
- shard-iclb: NOTRUN -> [FAIL][14] ([i915#2842]) +1 similar issue
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@gem_exec_fair@basic-none-rrul@rcs0.html
- shard-tglb: NOTRUN -> [FAIL][15] ([i915#2842])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb5/igt@gem_exec_fair@basic-none-rrul@rcs0.html
* igt@gem_exec_fair@basic-none-share@rcs0:
- shard-tglb: [PASS][16] -> [FAIL][17] ([i915#2842])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-tglb7/igt@gem_exec_fair@basic-none-share@rcs0.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@gem_exec_fair@basic-none-share@rcs0.html
* igt@gem_exec_fair@basic-none@vecs0:
- shard-glk: [PASS][18] -> [FAIL][19] ([i915#2842]) +1 similar issue
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-glk2/igt@gem_exec_fair@basic-none@vecs0.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-glk8/igt@gem_exec_fair@basic-none@vecs0.html
* igt@gem_exec_fair@basic-pace@vcs0:
- shard-iclb: [PASS][20] -> [FAIL][21] ([i915#2842])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb5/igt@gem_exec_fair@basic-pace@vcs0.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb4/igt@gem_exec_fair@basic-pace@vcs0.html
* igt@gem_huc_copy@huc-copy:
- shard-kbl: NOTRUN -> [SKIP][22] ([fdo#109271] / [i915#2190])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl4/igt@gem_huc_copy@huc-copy.html
- shard-apl: NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#2190])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl7/igt@gem_huc_copy@huc-copy.html
- shard-glk: NOTRUN -> [SKIP][24] ([fdo#109271] / [i915#2190])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-glk9/igt@gem_huc_copy@huc-copy.html
- shard-iclb: NOTRUN -> [SKIP][25] ([i915#2190])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb7/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@heavy-verify-multi:
- shard-apl: NOTRUN -> [SKIP][26] ([fdo#109271] / [i915#4613]) +2 similar issues
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl7/igt@gem_lmem_swapping@heavy-verify-multi.html
- shard-tglb: NOTRUN -> [SKIP][27] ([i915#4613])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@gem_lmem_swapping@heavy-verify-multi.html
- shard-glk: NOTRUN -> [SKIP][28] ([fdo#109271] / [i915#4613])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-glk2/igt@gem_lmem_swapping@heavy-verify-multi.html
- shard-iclb: NOTRUN -> [SKIP][29] ([i915#4613])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@gem_lmem_swapping@heavy-verify-multi.html
* igt@gem_lmem_swapping@verify-ccs:
- shard-kbl: NOTRUN -> [SKIP][30] ([fdo#109271] / [i915#4613]) +3 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl7/igt@gem_lmem_swapping@verify-ccs.html
* igt@gem_pread@exhaustion:
- shard-kbl: NOTRUN -> [WARN][31] ([i915#2658])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl7/igt@gem_pread@exhaustion.html
* igt@gem_pxp@verify-pxp-key-change-after-suspend-resume:
- shard-iclb: NOTRUN -> [SKIP][32] ([i915#4270])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb2/igt@gem_pxp@verify-pxp-key-change-after-suspend-resume.html
* igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs:
- shard-glk: NOTRUN -> [SKIP][33] ([fdo#109271]) +77 similar issues
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-glk3/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html
- shard-iclb: NOTRUN -> [SKIP][34] ([i915#768]) +2 similar issues
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb1/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html
* igt@gem_userptr_blits@vma-merge:
- shard-kbl: NOTRUN -> [FAIL][35] ([i915#3318])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl1/igt@gem_userptr_blits@vma-merge.html
* igt@gem_workarounds@suspend-resume-context:
- shard-apl: [PASS][36] -> [DMESG-WARN][37] ([i915#180]) +2 similar issues
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-apl1/igt@gem_workarounds@suspend-resume-context.html
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl4/igt@gem_workarounds@suspend-resume-context.html
* igt@gen9_exec_parse@cmd-crossing-page:
- shard-tglb: NOTRUN -> [SKIP][38] ([i915#2527] / [i915#2856])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb5/igt@gen9_exec_parse@cmd-crossing-page.html
- shard-iclb: NOTRUN -> [SKIP][39] ([i915#2856])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb1/igt@gen9_exec_parse@cmd-crossing-page.html
* igt@i915_pm_rc6_residency@rc6-idle@rcs0:
- shard-tglb: NOTRUN -> [WARN][40] ([i915#2681]) +3 similar issues
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb2/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
- shard-iclb: NOTRUN -> [WARN][41] ([i915#2684]) +3 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb4/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
* igt@i915_pm_rpm@modeset-non-lpsp-stress:
- shard-iclb: NOTRUN -> [SKIP][42] ([fdo#110892])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
- shard-tglb: NOTRUN -> [SKIP][43] ([fdo#111644] / [i915#1397] / [i915#2411])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-90:
- shard-iclb: NOTRUN -> [SKIP][44] ([i915#5286]) +2 similar issues
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb6/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-270:
- shard-tglb: NOTRUN -> [SKIP][45] ([i915#5286]) +2 similar issues
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb1/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@linear-32bpp-rotate-270:
- shard-tglb: NOTRUN -> [SKIP][46] ([fdo#111614]) +1 similar issue
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@kms_big_fb@linear-32bpp-rotate-270.html
- shard-iclb: NOTRUN -> [SKIP][47] ([fdo#110725] / [fdo#111614]) +1 similar issue
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb7/igt@kms_big_fb@linear-32bpp-rotate-270.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-apl: NOTRUN -> [SKIP][48] ([fdo#109271]) +166 similar issues
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl4/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_fb@y-tiled-32bpp-rotate-0:
- shard-glk: [PASS][49] -> [DMESG-FAIL][50] ([i915#118] / [i915#1888])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-glk5/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-glk9/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
- shard-tglb: NOTRUN -> [SKIP][51] ([fdo#111615]) +1 similar issue
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb7/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-iclb: NOTRUN -> [SKIP][52] ([fdo#110723])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb7/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_ccs@pipe-b-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc:
- shard-tglb: NOTRUN -> [SKIP][53] ([i915#6095])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb2/igt@kms_ccs@pipe-b-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc:
- shard-tglb: NOTRUN -> [SKIP][54] ([i915#3689] / [i915#6095]) +2 similar issues
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
- shard-apl: NOTRUN -> [SKIP][55] ([fdo#109271] / [i915#3886]) +4 similar issues
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl6/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-b-missing-ccs-buffer-yf_tiled_ccs:
- shard-tglb: NOTRUN -> [SKIP][56] ([fdo#111615] / [i915#3689])
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb3/igt@kms_ccs@pipe-b-missing-ccs-buffer-yf_tiled_ccs.html
* igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
- shard-kbl: NOTRUN -> [SKIP][57] ([fdo#109271] / [i915#3886]) +11 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl4/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
- shard-glk: NOTRUN -> [SKIP][58] ([fdo#109271] / [i915#3886])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-glk1/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
- shard-iclb: NOTRUN -> [SKIP][59] ([fdo#109278] / [i915#3886])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb2/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-d-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][60] ([i915#3689]) +1 similar issue
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@kms_ccs@pipe-d-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html
* igt@kms_cdclk@mode-transition:
- shard-iclb: NOTRUN -> [SKIP][61] ([i915#3742])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@kms_cdclk@mode-transition.html
- shard-tglb: NOTRUN -> [SKIP][62] ([i915#3742])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@kms_cdclk@mode-transition.html
* igt@kms_chamelium@vga-hpd-fast:
- shard-kbl: NOTRUN -> [SKIP][63] ([fdo#109271] / [fdo#111827]) +20 similar issues
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl1/igt@kms_chamelium@vga-hpd-fast.html
* igt@kms_color_chamelium@pipe-b-degamma:
- shard-apl: NOTRUN -> [SKIP][64] ([fdo#109271] / [fdo#111827]) +5 similar issues
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl3/igt@kms_color_chamelium@pipe-b-degamma.html
- shard-iclb: NOTRUN -> [SKIP][65] ([fdo#109284] / [fdo#111827]) +1 similar issue
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb8/igt@kms_color_chamelium@pipe-b-degamma.html
* igt@kms_color_chamelium@pipe-d-ctm-0-25:
- shard-tglb: NOTRUN -> [SKIP][66] ([fdo#109284] / [fdo#111827]) +2 similar issues
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb5/igt@kms_color_chamelium@pipe-d-ctm-0-25.html
- shard-glk: NOTRUN -> [SKIP][67] ([fdo#109271] / [fdo#111827]) +2 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-glk3/igt@kms_color_chamelium@pipe-d-ctm-0-25.html
- shard-iclb: NOTRUN -> [SKIP][68] ([fdo#109278] / [fdo#109284] / [fdo#111827])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@kms_color_chamelium@pipe-d-ctm-0-25.html
- shard-snb: NOTRUN -> [SKIP][69] ([fdo#109271] / [fdo#111827]) +2 similar issues
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-snb4/igt@kms_color_chamelium@pipe-d-ctm-0-25.html
* igt@kms_content_protection@legacy:
- shard-apl: NOTRUN -> [TIMEOUT][70] ([i915#1319]) +1 similar issue
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl6/igt@kms_content_protection@legacy.html
- shard-tglb: NOTRUN -> [SKIP][71] ([i915#1063])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@kms_content_protection@legacy.html
- shard-iclb: NOTRUN -> [SKIP][72] ([fdo#109300] / [fdo#111066])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@kms_content_protection@legacy.html
- shard-kbl: NOTRUN -> [TIMEOUT][73] ([i915#1319]) +1 similar issue
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl4/igt@kms_content_protection@legacy.html
* igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic:
- shard-tglb: NOTRUN -> [SKIP][74] ([fdo#109274] / [fdo#111825])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb1/igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic.html
* igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
- shard-iclb: NOTRUN -> [SKIP][75] ([fdo#109274]) +1 similar issue
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb2/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html
* igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-4tiled:
- shard-tglb: NOTRUN -> [SKIP][76] ([i915#5287])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-4tiled.html
- shard-iclb: NOTRUN -> [SKIP][77] ([i915#5287])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-4tiled.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-kbl: NOTRUN -> [FAIL][78] ([i915#4767])
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl1/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][79] ([i915#2672]) +5 similar issues
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][80] ([i915#2672] / [i915#3555]) +2 similar issues
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt:
- shard-tglb: NOTRUN -> [SKIP][81] ([i915#6497]) +4 similar issues
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt:
- shard-kbl: NOTRUN -> [SKIP][82] ([fdo#109271]) +247 similar issues
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl7/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-pgflip-blt:
- shard-iclb: NOTRUN -> [SKIP][83] ([fdo#109280]) +10 similar issues
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb8/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-pwrite:
- shard-tglb: NOTRUN -> [SKIP][84] ([fdo#109280] / [fdo#111825]) +9 similar issues
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-pwrite.html
* igt@kms_hdr@static-swap:
- shard-tglb: NOTRUN -> [SKIP][85] ([i915#3555])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb2/igt@kms_hdr@static-swap.html
- shard-iclb: NOTRUN -> [SKIP][86] ([i915#3555])
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb8/igt@kms_hdr@static-swap.html
* igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c:
- shard-tglb: NOTRUN -> [SKIP][87] ([fdo#109289]) +2 similar issues
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb3/igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c.html
- shard-iclb: NOTRUN -> [SKIP][88] ([fdo#109289]) +2 similar issues
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb2/igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c.html
* igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
- shard-apl: NOTRUN -> [FAIL][89] ([fdo#108145] / [i915#265]) +2 similar issues
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl8/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html
* igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb:
- shard-kbl: NOTRUN -> [FAIL][90] ([fdo#108145] / [i915#265])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl4/igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb.html
* igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb:
- shard-apl: NOTRUN -> [FAIL][91] ([i915#265])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl2/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html
- shard-glk: NOTRUN -> [FAIL][92] ([i915#265])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-glk6/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html
- shard-kbl: NOTRUN -> [FAIL][93] ([i915#265])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl4/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html
* igt@kms_plane_multiple@atomic-pipe-b-tiling-4:
- shard-tglb: NOTRUN -> [SKIP][94] ([i915#5288])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@kms_plane_multiple@atomic-pipe-b-tiling-4.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-a-edp-1:
- shard-iclb: NOTRUN -> [SKIP][95] ([i915#5235]) +2 similar issues
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb2/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-a-edp-1.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-c-edp-1:
- shard-tglb: NOTRUN -> [SKIP][96] ([i915#5235]) +3 similar issues
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb3/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-c-edp-1.html
* igt@kms_prime@basic-crc-hybrid:
- shard-iclb: NOTRUN -> [SKIP][97] ([i915#6524])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb7/igt@kms_prime@basic-crc-hybrid.html
- shard-tglb: NOTRUN -> [SKIP][98] ([i915#6524])
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@kms_prime@basic-crc-hybrid.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-kbl: NOTRUN -> [SKIP][99] ([fdo#109271] / [i915#658]) +1 similar issue
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl7/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@psr2_cursor_mmap_gtt:
- shard-tglb: NOTRUN -> [FAIL][100] ([i915#132] / [i915#3467]) +1 similar issue
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@kms_psr@psr2_cursor_mmap_gtt.html
* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [PASS][101] -> [SKIP][102] ([fdo#109441])
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb1/igt@kms_psr@psr2_primary_mmap_cpu.html
* igt@kms_psr@psr2_sprite_mmap_gtt:
- shard-iclb: NOTRUN -> [SKIP][103] ([fdo#109441]) +1 similar issue
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb3/igt@kms_psr@psr2_sprite_mmap_gtt.html
* igt@kms_tv_load_detect@load-detect:
- shard-snb: NOTRUN -> [SKIP][104] ([fdo#109271]) +130 similar issues
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-snb6/igt@kms_tv_load_detect@load-detect.html
- shard-tglb: NOTRUN -> [SKIP][105] ([fdo#109309])
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb7/igt@kms_tv_load_detect@load-detect.html
- shard-iclb: NOTRUN -> [SKIP][106] ([fdo#109309])
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb7/igt@kms_tv_load_detect@load-detect.html
* igt@kms_vblank@pipe-d-wait-idle-hang:
- shard-iclb: NOTRUN -> [SKIP][107] ([fdo#109278]) +18 similar issues
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb3/igt@kms_vblank@pipe-d-wait-idle-hang.html
* igt@kms_writeback@writeback-fb-id:
- shard-kbl: NOTRUN -> [SKIP][108] ([fdo#109271] / [i915#2437])
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl4/igt@kms_writeback@writeback-fb-id.html
* igt@nouveau_crc@ctx-flip-threshold-reset-after-capture:
- shard-tglb: NOTRUN -> [SKIP][109] ([i915#2530]) +1 similar issue
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb5/igt@nouveau_crc@ctx-flip-threshold-reset-after-capture.html
- shard-iclb: NOTRUN -> [SKIP][110] ([i915#2530])
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@nouveau_crc@ctx-flip-threshold-reset-after-capture.html
* igt@nouveau_crc@pipe-d-ctx-flip-skip-current-frame:
- shard-iclb: NOTRUN -> [SKIP][111] ([fdo#109278] / [i915#2530])
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@nouveau_crc@pipe-d-ctx-flip-skip-current-frame.html
* igt@prime_nv_api@nv_self_import_to_different_fd:
- shard-iclb: NOTRUN -> [SKIP][112] ([fdo#109291]) +1 similar issue
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb4/igt@prime_nv_api@nv_self_import_to_different_fd.html
* igt@prime_nv_pcopy@test2:
- shard-tglb: NOTRUN -> [SKIP][113] ([fdo#109291]) +1 similar issue
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@prime_nv_pcopy@test2.html
* igt@prime_vgem@coherency-gtt:
- shard-iclb: NOTRUN -> [SKIP][114] ([fdo#109292] / [fdo#109295])
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb2/igt@prime_vgem@coherency-gtt.html
- shard-tglb: NOTRUN -> [SKIP][115] ([fdo#109295] / [fdo#111656])
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb2/igt@prime_vgem@coherency-gtt.html
* igt@sysfs_clients@split-10:
- shard-kbl: NOTRUN -> [SKIP][116] ([fdo#109271] / [i915#2994]) +2 similar issues
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl7/igt@sysfs_clients@split-10.html
#### Possible fixes ####
* igt@fbdev@info:
- {shard-rkl}: [SKIP][117] ([i915#2582]) -> [PASS][118]
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-5/igt@fbdev@info.html
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-6/igt@fbdev@info.html
* igt@gem_ctx_isolation@preservation-s3@vcs0:
- shard-kbl: [DMESG-WARN][119] ([i915#180]) -> [PASS][120] +10 similar issues
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl4/igt@gem_ctx_isolation@preservation-s3@vcs0.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl7/igt@gem_ctx_isolation@preservation-s3@vcs0.html
* igt@gem_ctx_persistence@engines-hang@bcs0:
- {shard-rkl}: [SKIP][121] ([i915#6252]) -> [PASS][122]
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-5/igt@gem_ctx_persistence@engines-hang@bcs0.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-1/igt@gem_ctx_persistence@engines-hang@bcs0.html
* igt@gem_ctx_persistence@engines-hostile@rcs0:
- {shard-dg1}: [FAIL][123] ([i915#4883]) -> [PASS][124]
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-dg1-15/igt@gem_ctx_persistence@engines-hostile@rcs0.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-dg1-15/igt@gem_ctx_persistence@engines-hostile@rcs0.html
* igt@gem_exec_balancer@parallel-out-fence:
- shard-iclb: [SKIP][125] ([i915#4525]) -> [PASS][126] +1 similar issue
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb3/igt@gem_exec_balancer@parallel-out-fence.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb4/igt@gem_exec_balancer@parallel-out-fence.html
* igt@gem_exec_fair@basic-none-share@rcs0:
- {shard-tglu}: [FAIL][127] ([i915#2842]) -> [PASS][128]
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-tglu-1/igt@gem_exec_fair@basic-none-share@rcs0.html
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglu-2/igt@gem_exec_fair@basic-none-share@rcs0.html
- shard-glk: [FAIL][129] ([i915#2842]) -> [PASS][130] +1 similar issue
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-glk1/igt@gem_exec_fair@basic-none-share@rcs0.html
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-glk6/igt@gem_exec_fair@basic-none-share@rcs0.html
* igt@gem_exec_fair@basic-none@vcs1:
- shard-kbl: [FAIL][131] ([i915#2842]) -> [PASS][132] +2 similar issues
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl7/igt@gem_exec_fair@basic-none@vcs1.html
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl1/igt@gem_exec_fair@basic-none@vcs1.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-tglb: [FAIL][133] ([i915#2842]) -> [PASS][134]
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-tglb2/igt@gem_exec_fair@basic-pace-share@rcs0.html
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb8/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fair@basic-pace@vecs0:
- shard-iclb: [FAIL][135] ([i915#2842]) -> [PASS][136] +1 similar issue
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb5/igt@gem_exec_fair@basic-pace@vecs0.html
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb4/igt@gem_exec_fair@basic-pace@vecs0.html
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-iclb: [FAIL][137] ([i915#2849]) -> [PASS][138]
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb2/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@gem_exec_reloc@basic-gtt-read:
- {shard-rkl}: [SKIP][139] ([i915#3281]) -> [PASS][140] +5 similar issues
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-2/igt@gem_exec_reloc@basic-gtt-read.html
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-5/igt@gem_exec_reloc@basic-gtt-read.html
* igt@gem_readwrite@beyond-eob:
- {shard-rkl}: [SKIP][141] ([i915#3282]) -> [PASS][142] +4 similar issues
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-1/igt@gem_readwrite@beyond-eob.html
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-5/igt@gem_readwrite@beyond-eob.html
* igt@gem_workarounds@suspend-resume-context:
- {shard-tglu}: [DMESG-WARN][143] ([i915#5122]) -> [PASS][144]
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-tglu-6/igt@gem_workarounds@suspend-resume-context.html
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglu-4/igt@gem_workarounds@suspend-resume-context.html
* igt@gen9_exec_parse@allowed-single:
- shard-apl: [DMESG-WARN][145] ([i915#5566] / [i915#716]) -> [PASS][146]
[145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-apl8/igt@gen9_exec_parse@allowed-single.html
[146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl1/igt@gen9_exec_parse@allowed-single.html
* igt@gen9_exec_parse@bb-start-out:
- {shard-rkl}: [SKIP][147] ([i915#2527]) -> [PASS][148] +1 similar issue
[147]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-6/igt@gen9_exec_parse@bb-start-out.html
[148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-5/igt@gen9_exec_parse@bb-start-out.html
* igt@i915_pm_dc@dc6-psr:
- shard-iclb: [FAIL][149] ([i915#454]) -> [PASS][150]
[149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb6/igt@i915_pm_dc@dc6-psr.html
[150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@i915_pm_dc@dc6-psr.html
* igt@i915_pm_dc@dc9-dpms:
- shard-apl: [SKIP][151] ([fdo#109271]) -> [PASS][152]
[151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
[152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl8/igt@i915_pm_dc@dc9-dpms.html
* igt@i915_pm_rpm@dpms-mode-unset-lpsp:
- {shard-dg1}: [SKIP][153] ([i915#1397]) -> [PASS][154]
[153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-dg1-12/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
[154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-dg1-18/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
* igt@i915_pm_rps@basic-api:
- {shard-dg1}: [FAIL][155] ([i915#4032]) -> [PASS][156]
[155]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-dg1-15/igt@i915_pm_rps@basic-api.html
[156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-dg1-18/igt@i915_pm_rps@basic-api.html
* igt@i915_pm_rps@waitboost:
- {shard-rkl}: [FAIL][157] ([i915#4016]) -> [PASS][158]
[157]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-1/igt@i915_pm_rps@waitboost.html
[158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-5/igt@i915_pm_rps@waitboost.html
* igt@kms_big_fb@x-tiled-64bpp-rotate-180:
- {shard-rkl}: [SKIP][159] ([i915#1845] / [i915#4098]) -> [PASS][160] +9 similar issues
[159]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-1/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html
[160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-6/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html
* igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-ytiled:
- {shard-rkl}: [SKIP][161] ([fdo#111314] / [i915#4098] / [i915#4369]) -> [PASS][162] +2 similar issues
[161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-1/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-ytiled.html
[162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-6/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-ytiled.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-cpu:
- {shard-rkl}: [SKIP][163] ([i915#1849] / [i915#4098]) -> [PASS][164] +3 similar issues
[163]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-cpu.html
[164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-cpu.html
* igt@kms_plane@pixel-format@pipe-a-planes:
- {shard-rkl}: [SKIP][165] ([i915#3558]) -> [PASS][166] +1 similar issue
[165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-1/igt@kms_plane@pixel-format@pipe-a-planes.html
[166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-6/igt@kms_plane@pixel-format@pipe-a-planes.html
* igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes:
- shard-apl: [DMESG-WARN][167] ([i915#180]) -> [PASS][168]
[167]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-apl1/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html
[168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-apl1/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html
* igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
- {shard-rkl}: [SKIP][169] ([i915#1849] / [i915#3546] / [i915#4070] / [i915#4098]) -> [PASS][170]
[169]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-1/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html
[170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-6/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1:
- shard-iclb: [SKIP][171] ([i915#5235]) -> [PASS][172] +2 similar issues
[171]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb2/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html
[172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb5/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html
* igt@kms_properties@plane-properties-atomic:
- {shard-rkl}: [SKIP][173] ([i915#1849]) -> [PASS][174]
[173]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-1/igt@kms_properties@plane-properties-atomic.html
[174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-6/igt@kms_properties@plane-properties-atomic.html
* igt@kms_psr@psr2_basic:
- shard-iclb: [SKIP][175] ([fdo#109441]) -> [PASS][176] +1 similar issue
[175]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb7/igt@kms_psr@psr2_basic.html
[176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb2/igt@kms_psr@psr2_basic.html
* igt@perf_pmu@all-busy-idle-check-all:
- {shard-dg1}: [FAIL][177] ([i915#5234]) -> [PASS][178]
[177]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-dg1-16/igt@perf_pmu@all-busy-idle-check-all.html
[178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-dg1-14/igt@perf_pmu@all-busy-idle-check-all.html
* igt@prime_vgem@basic-fence-read:
- {shard-rkl}: [SKIP][179] ([fdo#109295] / [i915#3291] / [i915#3708]) -> [PASS][180]
[179]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-rkl-6/igt@prime_vgem@basic-fence-read.html
[180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-rkl-5/igt@prime_vgem@basic-fence-read.html
#### Warnings ####
* igt@gem_exec_fair@basic-pace@vecs0:
- shard-kbl: [FAIL][181] ([i915#2842]) -> [SKIP][182] ([fdo#109271])
[181]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl7/igt@gem_exec_fair@basic-pace@vecs0.html
[182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl1/igt@gem_exec_fair@basic-pace@vecs0.html
* igt@kms_content_protection@mei_interface:
- shard-tglb: [SKIP][183] ([fdo#109300]) -> [SKIP][184] ([i915#1063])
[183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-tglb3/igt@kms_content_protection@mei_interface.html
[184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-tglb1/igt@kms_content_protection@mei_interface.html
- shard-iclb: [SKIP][185] ([fdo#109300]) -> [SKIP][186] ([fdo#109300] / [fdo#111066])
[185]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb3/igt@kms_content_protection@mei_interface.html
[186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb4/igt@kms_content_protection@mei_interface.html
* igt@kms_psr2_sf@cursor-plane-move-continuous-sf:
- shard-iclb: [SKIP][187] ([i915#658]) -> [SKIP][188] ([i915#2920]) +1 similar issue
[187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb4/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html
[188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html
* igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area:
- shard-iclb: [SKIP][189] ([i915#2920]) -> [SKIP][190] ([fdo#111068] / [i915#658])
[189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-iclb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
[190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-iclb8/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
* igt@runner@aborted:
- shard-kbl: ([FAIL][191], [FAIL][192], [FAIL][193], [FAIL][194], [FAIL][195], [FAIL][196], [FAIL][197], [FAIL][198], [FAIL][199], [FAIL][200]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257]) -> ([FAIL][201], [FAIL][202]) ([i915#3002] / [i915#4312] / [i915#5257])
[191]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl4/igt@runner@aborted.html
[192]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl4/igt@runner@aborted.html
[193]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl4/igt@runner@aborted.html
[194]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl4/igt@runner@aborted.html
[195]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl4/igt@runner@aborted.html
[196]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl4/igt@runner@aborted.html
[197]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl4/igt@runner@aborted.html
[198]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl7/igt@runner@aborted.html
[199]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl4/igt@runner@aborted.html
[200]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11964/shard-kbl4/igt@runner@aborted.html
[201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl1/igt@runner@aborted.html
[202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/shard-kbl7/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109292]: https://bugs.freedesktop.org/show_bug.cgi?id=109292
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
[fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
[fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
[fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
[fdo#110892]: https://bugs.freedesktop.org/show_bug.cgi?id=110892
[fdo#111066]: https://bugs.freedesktop.org/show_bug.cgi?id=111066
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111314]: https://bugs.freedesktop.org/show_bug.cgi?id=111314
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
[fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
[i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
[i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
[i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2410]: https://gitlab.freedesktop.org/drm/intel/issues/2410
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
[i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
[i915#2435]: https://gitlab.freedesktop.org/drm/intel/issues/2435
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#2849]: https://gitlab.freedesktop.org/drm/intel/issues/2849
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
[i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
[i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
[i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
[i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
[i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467
[i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3828]: https://gitlab.freedesktop.org/drm/intel/issues/3828
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
[i915#4016]: https://gitlab.freedesktop.org/drm/intel/issues/4016
[i915#4032]: https://gitlab.freedesktop.org/drm/intel/issues/4032
[i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
[i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
[i915#4369]: https://gitlab.freedesktop.org/drm/intel/issues/4369
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4853]: https://gitlab.freedesktop.org/drm/intel/issues/4853
[i915#4855]: https://gitlab.freedesktop.org/drm/intel/issues/4855
[i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#4874]: https://gitlab.freedesktop.org/drm/intel/issues/4874
[i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
[i915#4883]: https://gitlab.freedesktop.org/drm/intel/issues/4883
[i915#4893]: https://gitlab.freedesktop.org/drm/intel/issues/4893
[i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
[i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5234]: https://gitlab.freedesktop.org/drm/intel/issues/5234
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#6021]: https://gitlab.freedesktop.org/drm/intel/issues/6021
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
[i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
[i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
[i915#6251]: https://gitlab.freedesktop.org/drm/intel/issues/6251
[i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
[i915#6258]: https://gitlab.freedesktop.org/drm/intel/issues/6258
[i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
[i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
[i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
[i915#6344]: https://gitlab.freedesktop.org/drm/intel/issues/6344
[i915#6474]: https://gitlab.freedesktop.org/drm/intel/issues/6474
[i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_6610 -> IGTPW_7600
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_11964: 856e330c2d6aa43e94bfca2d1b09369575f8f498 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_7600: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/index.html
IGT_6610: c93f93dfe91a77e6a884f826d61f927106988b5f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7600/index.html
[-- Attachment #2: Type: text/html, Size: 60999 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 4/4] lib/igt_kmod: add igt_kselftests documentation
2022-08-03 8:47 ` Petri Latvala
@ 2022-08-03 15:49 ` Tales
0 siblings, 0 replies; 13+ messages in thread
From: Tales @ 2022-08-03 15:49 UTC (permalink / raw)
To: Petri Latvala
Cc: siqueirajordao, Magali Lemes, Chris Wilson, igt-dev,
Isabella Basso, André Almeida, Trevor Woerner
Em qua., 3 de ago. de 2022 às 05:48, Petri Latvala
<petri.latvala@intel.com> escreveu:
>
> On Wed, Aug 03, 2022 at 02:26:54AM -0300, Tales Aparecida wrote:
> > Add documentation for igt_kselftests functions and structs. Also adds
> > comments to non trivial lines.
> >
> > Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
> > ---
> > lib/igt_kmod.c | 107 +++++++++++++++++++++++++++++++++++++++++++++++++
> > lib/igt_kmod.h | 18 +++++++++
> > 2 files changed, 125 insertions(+)
> >
> > diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> > index 63636243..852112cc 100644
> > --- a/lib/igt_kmod.c
> > +++ b/lib/igt_kmod.c
> > @@ -792,6 +792,12 @@ igt_amdgpu_driver_unload(void)
> > return IGT_EXIT_SUCCESS;
> > }
> >
> > +/*
> > + * kmsg_dump:
> > + * @fd: file descriptor for `/dev/kmsg` opened for reading
> > + *
> > + * Dump kmsg output into stderr.
> > + */
>
> The documentation comment needs to begin with /** (two *)
I forgot to mention in the cover letter, but I've followed the
recommendation of using normal comments (without the 2nd '*' in the
first line) for static symbols from GtkDoc.It's at the end of this
page: https://developer-old.gnome.org/gtk-doc-manual/stable/documenting_syntax.html.en
WIth that said, I rather add the second *, as well, to enable syntax
highlighting.
>
> > static void kmsg_dump(int fd)
> > {
> > char record[4096 + 1];
> > @@ -832,6 +838,13 @@ static void kmsg_dump(int fd)
> > }
> > }
> >
> > +/*
> > + * tests_add:
> > + * @tl: (in): test to be inserted
> > + * @list: (inout): ordered list of tests sorted by test->number
> > + *
> > + * Insert test at the correct position in the ordered list
> > + */
>
> Same for this.
>
> > static void tests_add(struct igt_kselftest_list *tl, struct igt_list_head *list)
> > {
> > struct igt_kselftest_list *pos;
> > @@ -843,6 +856,14 @@ static void tests_add(struct igt_kselftest_list *tl, struct igt_list_head *list)
> > igt_list_add_tail(&tl->link, &pos->link);
> > }
> >
> > +/**
> > + * igt_kselftest_get_tests:
> > + * @kmod: (in): kernel module from which to parse module_params' names into IGT tests
> > + * @filter: (in)(nullable): get only tests with a prefix matching this filter
> > + * @tests: (inout): resulting ordered list of tests
> > + *
> > + * Get IGT tests' names from module_params' names, given a module.
> > + */
> > void igt_kselftest_get_tests(struct kmod_module *kmod,
> > const char *filter,
> > struct igt_list_head *tests)
> > @@ -856,25 +877,33 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
> > if (!kmod_module_get_info(kmod, &pre))
> > return;
> >
> > + /* iter through module infos trying to find tests, which should be
> > + * named following the pattern: "igt__{test_number}__{test_name}:bool",
> > + * e.g.: "igt__18__perf_engine_cs:bool" */
>
> Multiline comments should have /* and */ on their own lines.
You're absolutely right!
>
> > kmod_list_foreach(d, pre) {
> > const char *key, *val;
> > char *colon;
> > int offset;
> >
> > + /* skip any info that is not a module param */
>
> ^^ extra space there
Nice catch!
>
> > key = kmod_module_info_get_key(d);
> > if (strcmp(key, "parmtype"))
> > continue;
> >
> > + /* skip any module param that don't have the IGT test prefix */
> > val = kmod_module_info_get_value(d);
> > if (!val || strncmp(val, param_prefix, prefix_len))
> > continue;
> >
> > + /* alloc list-node that will store the module_param name */
> > offset = strlen(val) + 1;
> > tl = malloc(sizeof(*tl) + offset);
> > if (!tl)
> > continue;
> >
> > memcpy(tl->param, val, offset);
> > +
> > + /* find and replace colon with \0 to discard module_param type */
> > colon = strchr(tl->param, ':');
> > *colon = '\0';
> >
> > @@ -884,6 +913,7 @@ void igt_kselftest_get_tests(struct kmod_module *kmod,
> > &tl->number, &offset) == 1)
> > tl->name += offset;
> >
> > + /* skip any test that doesn't match the prefix filter */
> > if (filter && strncmp(tl->name, filter, strlen(filter))) {
> > free(tl);
> > continue;
> > @@ -902,6 +932,22 @@ static int open_parameters(const char *module_name)
> > return open(path, O_RDONLY);
> > }
> >
> > +/**
> > + * igt_kselftest_init:
> > + * @tst: (inout): pointer of #igt_kselftest to be initialized
> > + * @module_name: (in): name of the module with IGT tests declared as module_params
> > + *
> > + * Initialize the given struct igt_kselftest and the inner struct kmod_module.
> > + *
> > + * @Note: This function initialize @tst->kmsg with `-1`, call
> > + * igt_kselftest_begin() to actually open the <filename>/dev/kmsg</filename> stream.
> > + * @tst->module_name should be freed by the caller with free(), @tst->kmod
> > + * refcount needs to be decremented to be released using
> > + * <function>kmod_module_unref</function>.
> > + *
> > + * Returns: 0 on success, non-zero otherwise. It fails if name is not a valid
> > + * module name or if memory allocation failed.
> > + */
> > int igt_kselftest_init(struct igt_kselftest *tst,
> > const char *module_name)
> > {
> > @@ -922,6 +968,17 @@ int igt_kselftest_init(struct igt_kselftest *tst,
> > return 0;
> > }
> >
> > +/**
> > + * igt_kselftest_begin:
> > + * @tst: (inout): pointer to #igt_kselftest with `kmod_module` handler to unload
> > + * and where the file descriptor for <filename>/dev/kmsg</filename> will be
> > + * stored.
> > + *
> > + * Unload the module that will be tested and open kmsg to start reading it.
> > + * If module is i915, unloads some of its dependencies as well.
> > + *
> > + * Returns: 0 on success, non-zero otherwise.
> > + */
> > int igt_kselftest_begin(struct igt_kselftest *tst)
> > {
> > int err;
> > @@ -939,6 +996,21 @@ int igt_kselftest_begin(struct igt_kselftest *tst)
> > return 0;
> > }
> >
> > +/**
> > + * igt_kselftest_execute:
> > + * @tst: (in): handler for module to be tested and inner kmsg file descriptor
> > + * @tl: (in): contains the name of the test to be executed
> > + * @options: (in)(nullable): Extra parameters for the module. NULL in case no
> > + * parameters are to be passed, or a '\0' terminated string otherwise.
> > + * @result: (in)(nullable): NULL if the result of loading the module should be
> > + * returned, or a '\0' terminated string with the name of the module_param
> > + * holding the test's result, if that should be returned instead.
> > + *
> > + * Execute the given test by loading the module and asserts its success.
> > + *
> > + * Returns: 0 on success, non-zero otherwise. If @result is set, returns the
> > + * value from the given module_param after running the test.
> > + */
> > int igt_kselftest_execute(struct igt_kselftest *tst,
> > struct igt_kselftest_list *tl,
> > const char *options,
> > @@ -952,6 +1024,7 @@ int igt_kselftest_execute(struct igt_kselftest *tst,
> >
> > lseek(tst->kmsg, 0, SEEK_END);
> >
> > + /* prepare modprobe parameters to enable a test with extra options */
> > snprintf(buf, sizeof(buf), "%s=1 %s", tl->param, options ?: "");
> >
> > err = modprobe(tst->kmod, buf);
> > @@ -977,18 +1050,40 @@ int igt_kselftest_execute(struct igt_kselftest *tst,
> > return err;
> > }
> >
> > +/**
> > + * igt_kselftest_end:
> > + * @tst: (in): handler for module to be unloaded and kmsg file descriptor
> > + *
> > + * Unload the module and close the kmsg file descriptor.
> > + */
> > void igt_kselftest_end(struct igt_kselftest *tst)
> > {
> > kmod_module_remove_module(tst->kmod, KMOD_REMOVE_FORCE);
> > close(tst->kmsg);
> > }
> >
> > +/**
> > + * igt_kselftest_fini:
> > + * @tst: (in): container of items to be freed
> > + *
> > + * Free memory from @tst->module_name and remove reference for @tst->kmod
> > + */
> > void igt_kselftest_fini(struct igt_kselftest *tst)
> > {
> > free(tst->module_name);
> > kmod_module_unref(tst->kmod);
> > }
> >
> > +/*
> > + * unfilter:
> > + * @filter: (in)(nullable): prefix to be removed
> > + * @name: (in): string to be trimmed
> > + *
> > + * Remove prefix @filter from @name, removing an additional non-alpha char,
> > + * if there's one.
> > + *
> > + * Returns: a pointer to the resulting string
> > + */
>
> Another doc block without /**
>
>
> --
> Petri Latvala
>
>
> > static const char *unfilter(const char *filter, const char *name)
> > {
> > if (!filter)
> > @@ -1001,6 +1096,18 @@ static const char *unfilter(const char *filter, const char *name)
> > return name;
> > }
> >
> > +/**
> > + * igt_kselftests:
> > + * @module_name: (in): name of the module to find and run tests for
> > + * @options: (in)(nullable): Extra parameters for the module. NULL in case no
> > + * parameters are to be passed, or a '\0' terminated string otherwise.
> > + * @result: (in)(nullable): NULL if the result of loading the module should be
> > + * returned, or a '\0' terminated string with the name of the module_param
> > + * holding the test's result, if that should be returned instead.
> > + * @filter: (in)(nullable): run only tests with a prefix matching this filter
> > + *
> > + * Find and execute kselftests defined as module_params of the given module.
> > + */
> > void igt_kselftests(const char *module_name,
> > const char *options,
> > const char *result,
> > diff --git a/lib/igt_kmod.h b/lib/igt_kmod.h
> > index f98dd29f..4f81641b 100644
> > --- a/lib/igt_kmod.h
> > +++ b/lib/igt_kmod.h
> > @@ -50,12 +50,30 @@ void igt_kselftests(const char *module_name,
> > const char *result_option,
> > const char *filter);
> >
> > +/**
> > + * igt_kselftest:
> > + * @kmod: reference for <structname>kmod_module</structname> used to load and
> > + * unload the module
> > + * @module_name: name of the module containing the kselftests for IGT
> > + * @kmsg: holds a file descriptor for <filename>/dev/kmsg</filename>
> > + *
> > + * Handle a kernel module with kselftests and their output
> > + */
> > struct igt_kselftest {
> > struct kmod_module *kmod;
> > char *module_name;
> > int kmsg;
> > };
> >
> > +/**
> > + * igt_kselftest_list:
> > + * @link: doubly linked list attributes
> > + * @number: defines the relative position of each element in the ordered list
> > + * @name: pointer to the test's name, a suffix of <structfield>param</structfield>
> > + * @param: name of the module_param that enables/disables the test
> > + *
> > + * Node of an ordered list of test names
> > + */
> > struct igt_kselftest_list {
> > struct igt_list_head link;
> > unsigned int number;
> > --
> > 2.37.0
> >
Thanks for the review, Petri
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/4] lib/kselftests: return non-zero on open(kmsg) failure
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 3/4] lib/kselftests: return non-zero on open(kmsg) failure Tales Aparecida
@ 2022-08-03 17:11 ` Kamil Konieczny
2022-08-03 20:04 ` Tales
2022-08-04 18:09 ` Maíra Canal
1 sibling, 1 reply; 13+ messages in thread
From: Kamil Konieczny @ 2022-08-03 17:11 UTC (permalink / raw)
To: igt-dev; +Cc: Tales Aparecida
Hi Tales,
On 2022-08-03 at 02:26:53 -0300, Tales Aparecida wrote:
> Previously igt_kselftest_begin() always returned 0.
> Return non-zero if failed to open kmsg, instead.
>
> Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
> ---
> lib/igt_kmod.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index bde0461a..63636243 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -933,6 +933,8 @@ int igt_kselftest_begin(struct igt_kselftest *tst)
> igt_require(err == 0 || err == -ENOENT);
>
> tst->kmsg = open("/dev/kmsg", O_RDONLY | O_NONBLOCK);
> + if (tst->kmsg < 0)
> + return 1;
This is used everywhere in dumping error messages, for example
in igt_kselftest_execute() there is:
if (err)
kmsg_dump(tst->kmsg);
so leaving this as is may be dangerous. So either fdup on stderr
or use
igt_reguire(test->kmsg >= 0);
Regards,
Kamil
>
> return 0;
> }
> --
> 2.37.0
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/4] lib/igt_kmod: fix trivial typos
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 1/4] lib/igt_kmod: fix trivial typos Tales Aparecida
@ 2022-08-03 17:13 ` Kamil Konieczny
0 siblings, 0 replies; 13+ messages in thread
From: Kamil Konieczny @ 2022-08-03 17:13 UTC (permalink / raw)
To: igt-dev; +Cc: Tales Aparecida
On 2022-08-03 at 02:26:51 -0300, Tales Aparecida wrote:
> existance -> existence
> kmcdline -> kcmdline
>
> Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
> ---
> lib/igt_kmod.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index dfdcfcc5..bde0461a 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -114,7 +114,7 @@ out:
> *
> * Returns: True in case the module has been found or false otherwise.
> *
> - * Function to check the existance of module @mod_name in list of loaded kernel
> + * Function to check the existence of module @mod_name in list of loaded kernel
> * modules.
> *
> */
> @@ -813,7 +813,7 @@ static void kmsg_dump(int fd)
> continue;
>
> if (errno == EPIPE) {
> - igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kmcdline\n");
> + igt_warn("kmsg truncated: too many messages. You may want to increase log_buf_len in kcmdline\n");
> continue;
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> }
>
> --
> 2.37.0
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/4] lib/kselftests: return non-zero on open(kmsg) failure
2022-08-03 17:11 ` Kamil Konieczny
@ 2022-08-03 20:04 ` Tales
0 siblings, 0 replies; 13+ messages in thread
From: Tales @ 2022-08-03 20:04 UTC (permalink / raw)
To: Kamil Konieczny, igt-dev, Tales Aparecida
Hello, Kamil,
Em qua., 3 de ago. de 2022 às 14:11, Kamil Konieczny
<kamil.konieczny@linux.intel.com> escreveu:
>
> Hi Tales,
>
> On 2022-08-03 at 02:26:53 -0300, Tales Aparecida wrote:
> > Previously igt_kselftest_begin() always returned 0.
> > Return non-zero if failed to open kmsg, instead.
> >
> > Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
> > ---
> > lib/igt_kmod.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> > index bde0461a..63636243 100644
> > --- a/lib/igt_kmod.c
> > +++ b/lib/igt_kmod.c
> > @@ -933,6 +933,8 @@ int igt_kselftest_begin(struct igt_kselftest *tst)
> > igt_require(err == 0 || err == -ENOENT);
> >
> > tst->kmsg = open("/dev/kmsg", O_RDONLY | O_NONBLOCK);
> > + if (tst->kmsg < 0)
> > + return 1;
>
>
> This is used everywhere in dumping error messages, for example
> in igt_kselftest_execute() there is:
> if (err)
> kmsg_dump(tst->kmsg);
>
> so leaving this as is may be dangerous. So either fdup on stderr
> or use
> igt_reguire(test->kmsg >= 0);
>
> Regards,
> Kamil
>
> >
> > return 0;
> > }
> > --
> > 2.37.0
> >
That's a great point! I guess I prefer the latter, using igt_require,
for it is simpler and I believe errors when opening kmsg are too
seldom to justify anything too complex.
With that said, I think that the function won't need to return, after all.
Thanks for the review!
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/4] lib/kselftests: return non-zero on open(kmsg) failure
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 3/4] lib/kselftests: return non-zero on open(kmsg) failure Tales Aparecida
2022-08-03 17:11 ` Kamil Konieczny
@ 2022-08-04 18:09 ` Maíra Canal
1 sibling, 0 replies; 13+ messages in thread
From: Maíra Canal @ 2022-08-04 18:09 UTC (permalink / raw)
To: Tales Aparecida, igt-dev, Chris Wilson
Cc: siqueirajordao, magalilemes00, Isabella Basso, andrealmeid,
Trevor Woerner
Hi Tales,
On 8/3/22 02:26, Tales Aparecida wrote:
> Previously igt_kselftest_begin() always returned 0.
> Return non-zero if failed to open kmsg, instead.
>
> Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
> ---
> lib/igt_kmod.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> index bde0461a..63636243 100644
> --- a/lib/igt_kmod.c
> +++ b/lib/igt_kmod.c
> @@ -933,6 +933,8 @@ int igt_kselftest_begin(struct igt_kselftest *tst)
> igt_require(err == 0 || err == -ENOENT);
>
> tst->kmsg = open("/dev/kmsg", O_RDONLY | O_NONBLOCK);
> + if (tst->kmsg < 0)
> + return 1;
Wouldn't be better to return the open() error? As open() returns an
errno, it would make it easier to identify what went wrong while opening
kmsg.
Best Regards,
- Maíra Canal
>
> return 0;
> }
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2022-08-04 18:09 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-03 5:26 [igt-dev] [PATCH i-g-t 0/4] add kselftest runner documentation Tales Aparecida
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 1/4] lib/igt_kmod: fix trivial typos Tales Aparecida
2022-08-03 17:13 ` Kamil Konieczny
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 2/4] CONTRIBUTING: Add reference for GTKDoc Tales Aparecida
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 3/4] lib/kselftests: return non-zero on open(kmsg) failure Tales Aparecida
2022-08-03 17:11 ` Kamil Konieczny
2022-08-03 20:04 ` Tales
2022-08-04 18:09 ` Maíra Canal
2022-08-03 5:26 ` [igt-dev] [PATCH i-g-t 4/4] lib/igt_kmod: add igt_kselftests documentation Tales Aparecida
2022-08-03 8:47 ` Petri Latvala
2022-08-03 15:49 ` Tales
2022-08-03 6:00 ` [igt-dev] ✓ Fi.CI.BAT: success for add kselftest runner documentation Patchwork
2022-08-03 13:29 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.