* [PATCH i-g-t 0/1] CCS hibernate test
@ 2024-11-25 16:19 Juha-Pekka Heikkila
2024-11-25 16:19 ` [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test Juha-Pekka Heikkila
` (4 more replies)
0 siblings, 5 replies; 17+ messages in thread
From: Juha-Pekka Heikkila @ 2024-11-25 16:19 UTC (permalink / raw)
To: igt-dev; +Cc: Juha-Pekka Heikkila
Here is added hibernate test into kms_ccs which does full hibernate along
with reboot back to same kernel. This test is not ci friendly because of
the rebooting hence this test is manually triggered for kms_ccs suspend
tests by adding '-r' flag to command line.
/Juha-Pekka
Juha-Pekka Heikkila (1):
tests/intel/kms_ccs: add hiberbate test
tests/intel/kms_ccs.c | 162 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 159 insertions(+), 3 deletions(-)
--
2.45.2
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
2024-11-25 16:19 [PATCH i-g-t 0/1] CCS hibernate test Juha-Pekka Heikkila
@ 2024-11-25 16:19 ` Juha-Pekka Heikkila
2024-11-25 18:20 ` Rodrigo Vivi
2024-11-25 23:25 ` ✗ GitLab.Pipeline: warning for CCS hibernate test Patchwork
` (3 subsequent siblings)
4 siblings, 1 reply; 17+ messages in thread
From: Juha-Pekka Heikkila @ 2024-11-25 16:19 UTC (permalink / raw)
To: igt-dev; +Cc: Juha-Pekka Heikkila
Add hibernate test which bring entire system down for short
hibernate. This mode is added to suspend tests to be run
manually with '-r' flag because this is not ci friendly test,
on hibernate ci would lose connection to the hibernated box.
For this test to work kernel resume point need to be set using swapfile, from
kernel command line is checked if there is found something along the lines of
"resume=/dev/nvme0n1p2 resume_offset=73527296" or so to verify hibernate
will be successfull.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
tests/intel/kms_ccs.c | 162 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 159 insertions(+), 3 deletions(-)
diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
index 3e9a57863..fd2fe9d3d 100644
--- a/tests/intel/kms_ccs.c
+++ b/tests/intel/kms_ccs.c
@@ -190,6 +190,7 @@ typedef struct {
bool user_seed;
enum igt_commit_style commit;
int fb_list_length;
+ bool do_hibernate;
struct {
struct igt_fb fb;
int width, height;
@@ -271,6 +272,154 @@ static const struct {
*/
#define MAX_SPRITE_PLANE_WIDTH 2000
+/* constants for hibenate test */
+#define RTC_WAKE_CMD "rtcwake -m no -s %d"
+#define PROC_CMDLINE "/proc/cmdline"
+#define SYS_POWER_STATE "/sys/power/state"
+#define GRUB_CFG_PATH "/boot/grub/grub.cfg"
+
+static void check_hibernation_support(void)
+{
+ int fd;
+ char buffer[2048];
+ ssize_t bytes_read;
+ FILE *cmdline;
+
+ /* Check if hibernation is supported in /sys/power/state */
+ fd = open(SYS_POWER_STATE, O_RDONLY);
+ igt_require_f(fd > 0, "Failed to open /sys/power/state");
+ bytes_read = read(fd, buffer, sizeof(buffer) - 1);
+ close(fd);
+
+ igt_require_f(bytes_read > 0, "Failed to read /sys/power/state");
+
+ buffer[bytes_read] = '\0';
+ igt_require_f(strstr(buffer, "disk") != NULL,
+ "Hibernation (suspend to disk) is not supported on this system.\n");
+
+ /* Check if resume is configured in kernel command line */
+ cmdline = fopen(PROC_CMDLINE, "r");
+ igt_require_f(cmdline, "Failed to open /proc/cmdline");
+ fread(buffer, 1, sizeof(buffer) - 1, cmdline);
+ fclose(cmdline);
+
+ igt_require_f(strstr(buffer, "resume="),
+ "Kernel does not have 'resume' parameter configured for hibernation.\n");
+}
+
+static void set_rtc_wake_timer(int seconds)
+{
+ char command[256];
+
+ snprintf(command, sizeof(command), RTC_WAKE_CMD, seconds);
+
+ igt_require_f(system(command) == 0,
+ "Failed to set RTC wake timer.\n");
+}
+
+static void hibernate_system(void)
+{
+ int fd;
+
+ fd = open(SYS_POWER_STATE, O_WRONLY);
+ igt_require_f(fd > 0, "Failed to open /sys/power/state");
+
+ if (write(fd, "disk", 4) != 4) {
+ close(fd);
+ igt_require_f(0, "Failed to write 'disk' to /sys/power/state");
+ }
+ close(fd);
+}
+
+static void ensure_grub_boots_same_kernel(void)
+{
+ char cmdline[1024];
+ char current_kernel[256];
+ char last_menuentry[512] = "";
+ char grub_entry[512];
+ char command[1024];
+ FILE *cmdline_file, *grub_cfg;
+ char line[1024];
+ bool kernel_found = false;
+ char *kernel_arg;
+ char *kernel_end;
+
+ /* Read /proc/cmdline to get the current kernel image */
+ cmdline_file = fopen(PROC_CMDLINE, "r");
+ igt_require_f(cmdline_file, "Failed to open /proc/cmdline");
+
+ if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
+ fclose(cmdline_file);
+ igt_require_f(0, "Failed to read /proc/cmdline");
+ }
+ fclose(cmdline_file);
+
+ /* Parse the kernel image from cmdline */
+ kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
+ igt_require_f(kernel_arg, "BOOT_IMAGE= not found in /proc/cmdline\n");
+
+ kernel_arg += strlen("BOOT_IMAGE=");
+ kernel_end = strchr(kernel_arg, ' ');
+
+ if (!kernel_end)
+ kernel_end = kernel_arg + strlen(kernel_arg);
+
+ snprintf(current_kernel, sizeof(current_kernel), "%.*s",
+ (int)(kernel_end - kernel_arg), kernel_arg);
+ igt_debug("Current kernel image: %s\n", current_kernel);
+
+ /* Open GRUB config file to find matching entry */
+ grub_cfg = fopen(GRUB_CFG_PATH, "r");
+ igt_require_f(grub_cfg, "Failed to open GRUB configuration file");
+
+
+ while (fgets(line, sizeof(line), grub_cfg)) {
+ /* Check if the line contains a menuentry */
+ if (strstr(line, "menuentry")) {
+ /* Store the menuentry line */
+ char *start = strchr(line, '\'');
+ char *end = start ? strchr(start + 1, '\'') : NULL;
+
+ if (start && end) {
+ snprintf(last_menuentry,
+ sizeof(last_menuentry),
+ "%.*s", (int)(end - start - 1),
+ start + 1);
+ }
+ }
+
+ /* Check if the current line contains the kernel */
+ if (strstr(line, current_kernel)) {
+ /* Use the last seen menuentry as the match */
+ snprintf(grub_entry, sizeof(grub_entry), "%s",
+ last_menuentry);
+ kernel_found = true;
+ break;
+ }
+ }
+
+ fclose(grub_cfg);
+
+ igt_require_f(kernel_found, "Failed to find matching GRUB entry for kernel: %s\n",
+ current_kernel);
+
+ /* Set the GRUB boot target using grub-reboot */
+ snprintf(command, sizeof(command), "grub-reboot \"%s\"", grub_entry);
+ igt_require_f(system(command) == 0, "Failed to set GRUB boot target to: %s\n",
+ grub_entry);
+
+ igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
+ current_kernel, grub_entry);
+}
+
+static void hibernate_autoresume(int resume_delay)
+{
+ check_hibernation_support();
+ set_rtc_wake_timer(resume_delay);
+ ensure_grub_boots_same_kernel();
+ hibernate_system();
+}
+
static void addfb_init(struct igt_fb *fb, struct drm_mode_fb_cmd2 *f)
{
int i;
@@ -839,8 +988,11 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
if (data->flags & TEST_SUSPEND && fb_flags & FB_COMPRESSED) {
- igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
- SUSPEND_TEST_NONE);
+ if (data->do_hibernate)
+ hibernate_autoresume(30);
+ else
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
/* on resume check flat ccs is still compressed */
if (is_xe_device(data->drm_fd) &&
@@ -1044,6 +1196,9 @@ static int opt_handler(int opt, int opt_index, void *opt_data)
data->user_seed = true;
data->seed = strtoul(optarg, NULL, 0);
break;
+ case 'r':
+ data->do_hibernate = true;
+ break;
default:
return IGT_OPT_HANDLER_ERROR;
}
@@ -1056,9 +1211,10 @@ static data_t data;
static const char *help_str =
" -c\t\tCheck the presence of compression meta-data\n"
" -s <seed>\tSeed for random number generator\n"
+" -r\t\tOn suspend test do full hibernate with reboot\n"
;
-igt_main_args("cs:", NULL, help_str, opt_handler, &data)
+igt_main_args("csr:", NULL, help_str, opt_handler, &data)
{
igt_fixture {
data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
2024-11-25 16:19 ` [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test Juha-Pekka Heikkila
@ 2024-11-25 18:20 ` Rodrigo Vivi
[not found] ` <CAJ=qYWRYeg7mbbQGAGHbkHu8sAC0+Rq5J2CfZinFVniX7jsjMg@mail.gmail.com>
0 siblings, 1 reply; 17+ messages in thread
From: Rodrigo Vivi @ 2024-11-25 18:20 UTC (permalink / raw)
To: Juha-Pekka Heikkila; +Cc: igt-dev
On Mon, Nov 25, 2024 at 06:19:58PM +0200, Juha-Pekka Heikkila wrote:
> Add hibernate test which bring entire system down for short
> hibernate. This mode is added to suspend tests to be run
> manually with '-r' flag because this is not ci friendly test,
> on hibernate ci would lose connection to the hibernated box.
I know that nowadays it is a beast to get hibernate to work in the distros,
but afaik our CI is prepared for that, otherwise we wouldn't be able to
get these:
https://intel-gfx-ci.01.org/tree/intel-xe/index.html?testfilter=s4
>
> For this test to work kernel resume point need to be set using swapfile, from
> kernel command line is checked if there is found something along the lines of
> "resume=/dev/nvme0n1p2 resume_offset=73527296" or so to verify hibernate
> will be successfull.
Indeed painful nowadays... I can't even believe this gap came from user
report... is anyone really still using hibernation nowadays?! :)
>
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> ---
> tests/intel/kms_ccs.c | 162 +++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 159 insertions(+), 3 deletions(-)
>
> diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
> index 3e9a57863..fd2fe9d3d 100644
> --- a/tests/intel/kms_ccs.c
> +++ b/tests/intel/kms_ccs.c
> @@ -190,6 +190,7 @@ typedef struct {
> bool user_seed;
> enum igt_commit_style commit;
> int fb_list_length;
> + bool do_hibernate;
> struct {
> struct igt_fb fb;
> int width, height;
> @@ -271,6 +272,154 @@ static const struct {
> */
> #define MAX_SPRITE_PLANE_WIDTH 2000
>
> +/* constants for hibenate test */
> +#define RTC_WAKE_CMD "rtcwake -m no -s %d"
Why are you calling rtcwake directly instead of using
igt_system_suspend_autoresume(SUSPEND_STATE_DISK...) ?!
Please check lib/igt_aux lib/igt_pm and tests/xe/xe_pm
> +#define PROC_CMDLINE "/proc/cmdline"
> +#define SYS_POWER_STATE "/sys/power/state"
> +#define GRUB_CFG_PATH "/boot/grub/grub.cfg"
> +
> +static void check_hibernation_support(void)
> +{
> + int fd;
> + char buffer[2048];
> + ssize_t bytes_read;
> + FILE *cmdline;
> +
> + /* Check if hibernation is supported in /sys/power/state */
> + fd = open(SYS_POWER_STATE, O_RDONLY);
> + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> + bytes_read = read(fd, buffer, sizeof(buffer) - 1);
> + close(fd);
> +
> + igt_require_f(bytes_read > 0, "Failed to read /sys/power/state");
> +
> + buffer[bytes_read] = '\0';
> + igt_require_f(strstr(buffer, "disk") != NULL,
> + "Hibernation (suspend to disk) is not supported on this system.\n");
> +
> + /* Check if resume is configured in kernel command line */
> + cmdline = fopen(PROC_CMDLINE, "r");
> + igt_require_f(cmdline, "Failed to open /proc/cmdline");
> + fread(buffer, 1, sizeof(buffer) - 1, cmdline);
> + fclose(cmdline);
> +
> + igt_require_f(strstr(buffer, "resume="),
> + "Kernel does not have 'resume' parameter configured for hibernation.\n");
> +}
we should probably have this in the igt_pm lib to be used in other places
like xe_pm. I remember we had discussions when s4 started failing in CI,
but apparently the solution was to make CI to work with it instead of
protecting our s4 tests...
> +
> +static void set_rtc_wake_timer(int seconds)
> +{
> + char command[256];
> +
> + snprintf(command, sizeof(command), RTC_WAKE_CMD, seconds);
> +
> + igt_require_f(system(command) == 0,
> + "Failed to set RTC wake timer.\n");
> +}
> +
> +static void hibernate_system(void)
> +{
> + int fd;
> +
> + fd = open(SYS_POWER_STATE, O_WRONLY);
> + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> +
> + if (write(fd, "disk", 4) != 4) {
> + close(fd);
> + igt_require_f(0, "Failed to write 'disk' to /sys/power/state");
> + }
> + close(fd);
> +}
> +
> +static void ensure_grub_boots_same_kernel(void)
I don't believe that this should be to the test case to ensure.
This should be ensured by the infra to support these s4 testcases.
> +{
> + char cmdline[1024];
> + char current_kernel[256];
> + char last_menuentry[512] = "";
> + char grub_entry[512];
> + char command[1024];
> + FILE *cmdline_file, *grub_cfg;
> + char line[1024];
> + bool kernel_found = false;
> + char *kernel_arg;
> + char *kernel_end;
> +
> + /* Read /proc/cmdline to get the current kernel image */
> + cmdline_file = fopen(PROC_CMDLINE, "r");
> + igt_require_f(cmdline_file, "Failed to open /proc/cmdline");
> +
> + if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
> + fclose(cmdline_file);
> + igt_require_f(0, "Failed to read /proc/cmdline");
> + }
> + fclose(cmdline_file);
> +
> + /* Parse the kernel image from cmdline */
> + kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
> + igt_require_f(kernel_arg, "BOOT_IMAGE= not found in /proc/cmdline\n");
> +
> + kernel_arg += strlen("BOOT_IMAGE=");
> + kernel_end = strchr(kernel_arg, ' ');
> +
> + if (!kernel_end)
> + kernel_end = kernel_arg + strlen(kernel_arg);
> +
> + snprintf(current_kernel, sizeof(current_kernel), "%.*s",
> + (int)(kernel_end - kernel_arg), kernel_arg);
> + igt_debug("Current kernel image: %s\n", current_kernel);
> +
> + /* Open GRUB config file to find matching entry */
> + grub_cfg = fopen(GRUB_CFG_PATH, "r");
> + igt_require_f(grub_cfg, "Failed to open GRUB configuration file");
> +
> +
> + while (fgets(line, sizeof(line), grub_cfg)) {
> + /* Check if the line contains a menuentry */
> + if (strstr(line, "menuentry")) {
> + /* Store the menuentry line */
> + char *start = strchr(line, '\'');
> + char *end = start ? strchr(start + 1, '\'') : NULL;
> +
> + if (start && end) {
> + snprintf(last_menuentry,
> + sizeof(last_menuentry),
> + "%.*s", (int)(end - start - 1),
> + start + 1);
> + }
> + }
> +
> + /* Check if the current line contains the kernel */
> + if (strstr(line, current_kernel)) {
> + /* Use the last seen menuentry as the match */
> + snprintf(grub_entry, sizeof(grub_entry), "%s",
> + last_menuentry);
> + kernel_found = true;
> + break;
> + }
> + }
> +
> + fclose(grub_cfg);
> +
> + igt_require_f(kernel_found, "Failed to find matching GRUB entry for kernel: %s\n",
> + current_kernel);
> +
> + /* Set the GRUB boot target using grub-reboot */
> + snprintf(command, sizeof(command), "grub-reboot \"%s\"", grub_entry);
> + igt_require_f(system(command) == 0, "Failed to set GRUB boot target to: %s\n",
> + grub_entry);
> +
> + igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
> + current_kernel, grub_entry);
> +}
> +
> +static void hibernate_autoresume(int resume_delay)
> +{
> + check_hibernation_support();
> + set_rtc_wake_timer(resume_delay);
> + ensure_grub_boots_same_kernel();
> + hibernate_system();
> +}
> +
> static void addfb_init(struct igt_fb *fb, struct drm_mode_fb_cmd2 *f)
> {
> int i;
> @@ -839,8 +988,11 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
>
> if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
> if (data->flags & TEST_SUSPEND && fb_flags & FB_COMPRESSED) {
> - igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> - SUSPEND_TEST_NONE);
> + if (data->do_hibernate)
> + hibernate_autoresume(30);
> + else
> + igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> + SUSPEND_TEST_NONE);
>
> /* on resume check flat ccs is still compressed */
> if (is_xe_device(data->drm_fd) &&
> @@ -1044,6 +1196,9 @@ static int opt_handler(int opt, int opt_index, void *opt_data)
> data->user_seed = true;
> data->seed = strtoul(optarg, NULL, 0);
> break;
> + case 'r':
> + data->do_hibernate = true;
> + break;
> default:
> return IGT_OPT_HANDLER_ERROR;
> }
> @@ -1056,9 +1211,10 @@ static data_t data;
> static const char *help_str =
> " -c\t\tCheck the presence of compression meta-data\n"
> " -s <seed>\tSeed for random number generator\n"
> +" -r\t\tOn suspend test do full hibernate with reboot\n"
> ;
>
> -igt_main_args("cs:", NULL, help_str, opt_handler, &data)
> +igt_main_args("csr:", NULL, help_str, opt_handler, &data)
> {
> igt_fixture {
> data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> --
> 2.45.2
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✗ GitLab.Pipeline: warning for CCS hibernate test
2024-11-25 16:19 [PATCH i-g-t 0/1] CCS hibernate test Juha-Pekka Heikkila
2024-11-25 16:19 ` [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test Juha-Pekka Heikkila
@ 2024-11-25 23:25 ` Patchwork
2024-11-25 23:32 ` ✓ Xe.CI.BAT: success " Patchwork
` (2 subsequent siblings)
4 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2024-11-25 23:25 UTC (permalink / raw)
To: Juha-Pekka Heikkila; +Cc: igt-dev
== Series Details ==
Series: CCS hibernate test
URL : https://patchwork.freedesktop.org/series/141760/
State : warning
== Summary ==
Pipeline status: FAILED.
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/1317067 for the overview.
build:tests-debian-meson-arm64 has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/67189032):
Checking if the job's project is part of a well-known group...
Thank you for contributing to freedesktop.org
Fetching changes...
Reinitialized existing Git repository in /builds/gfx-ci/igt-ci-tags/.git/
Checking out 392e13d5 as detached HEAD (ref is intel/IGTPW_12193)...
Removing build/
Removing lib/i915/perf-configs/__pycache__/
Removing lib/xe/oa-configs/__pycache__/
Removing scripts/__pycache__/
Skipping Git submodules setup
section_end:1732576936:get_sources
section_start:1732576936:step_script
Executing "step_script" stage of the job script
Using docker image sha256:7360075a71dacfc66f0b49b3271b9a459904dbe51c5760efac48fe52da27946c for registry.freedesktop.org/gfx-ci/igt-ci-tags/build-debian-arm64:commit-392e13d5bb297e2e010846f61036e0c996a82461 with digest registry.freedesktop.org/gfx-ci/igt-ci-tags/build-debian-arm64@sha256:df8438cd0e218646c3bdc2eb6abccb43c4e884bfd40a1a4dd0365f1f8031d21f ...
section_end:1732576938:step_script
section_start:1732576938:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1732576939:cleanup_file_variables
ERROR: Job failed (system failure): Error response from daemon: no such image: docker.io/library/sha256:7360075a71dacfc66f0b49b3271b9a459904dbe51c5760efac48fe52da27946c: image not known (docker.go:650:0s)
build:tests-debian-meson-armhf has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/67189031):
popen
../tests/intel/kms_ccs.c:289:7: warning: nested extern declaration of ‘open’ [-Wnested-externs]
../tests/intel/kms_ccs.c:289:29: error: ‘O_RDONLY’ undeclared (first use in this function); did you mean ‘STA_RONLY’?
fd = open(SYS_POWER_STATE, O_RDONLY);
^~~~~~~~
STA_RONLY
../tests/intel/kms_ccs.c:289:29: note: each undeclared identifier is reported only once for each function it appears in
../tests/intel/kms_ccs.c: In function ‘hibernate_system’:
../tests/intel/kms_ccs.c:324:29: error: ‘O_WRONLY’ undeclared (first use in this function); did you mean ‘STA_RONLY’?
fd = open(SYS_POWER_STATE, O_WRONLY);
^~~~~~~~
STA_RONLY
cc1: some warnings being treated as errors
ninja: build stopped: subcommand failed.
section_end:1732576954:step_script
section_start:1732576954:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1732576955:cleanup_file_variables
ERROR: Job failed: exit code 1
build:tests-debian-meson-mips has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/67189033):
popen
../tests/intel/kms_ccs.c:289:7: warning: nested extern declaration of ‘open’ [-Wnested-externs]
../tests/intel/kms_ccs.c:289:29: error: ‘O_RDONLY’ undeclared (first use in this function); did you mean ‘STA_RONLY’?
fd = open(SYS_POWER_STATE, O_RDONLY);
^~~~~~~~
STA_RONLY
../tests/intel/kms_ccs.c:289:29: note: each undeclared identifier is reported only once for each function it appears in
../tests/intel/kms_ccs.c: In function ‘hibernate_system’:
../tests/intel/kms_ccs.c:324:29: error: ‘O_WRONLY’ undeclared (first use in this function); did you mean ‘STA_RONLY’?
fd = open(SYS_POWER_STATE, O_WRONLY);
^~~~~~~~
STA_RONLY
cc1: some warnings being treated as errors
ninja: build stopped: subcommand failed.
section_end:1732576977:step_script
section_start:1732576977:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1732576978:cleanup_file_variables
ERROR: Job failed: exit code 1
== Logs ==
For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/1317067
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ Xe.CI.BAT: success for CCS hibernate test
2024-11-25 16:19 [PATCH i-g-t 0/1] CCS hibernate test Juha-Pekka Heikkila
2024-11-25 16:19 ` [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test Juha-Pekka Heikkila
2024-11-25 23:25 ` ✗ GitLab.Pipeline: warning for CCS hibernate test Patchwork
@ 2024-11-25 23:32 ` Patchwork
2024-11-25 23:41 ` ✗ i915.CI.BAT: failure " Patchwork
2024-11-26 2:26 ` ✗ Xe.CI.Full: " Patchwork
4 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2024-11-25 23:32 UTC (permalink / raw)
To: Juha-Pekka Heikkila; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 2005 bytes --]
== Series Details ==
Series: CCS hibernate test
URL : https://patchwork.freedesktop.org/series/141760/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_8125_BAT -> XEIGTPW_12193_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (9 -> 8)
------------------------------
Missing (1): bat-pvc-2
Known issues
------------
Here are the changes found in XEIGTPW_12193_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@core_hotunplug@unbind-rebind:
- bat-adlp-7: [PASS][1] -> [DMESG-WARN][2] ([Intel XE#3517]) +2 other tests dmesg-warn
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/bat-adlp-7/igt@core_hotunplug@unbind-rebind.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/bat-adlp-7/igt@core_hotunplug@unbind-rebind.html
* igt@kms_psr@psr-cursor-plane-move:
- bat-adlp-7: [PASS][3] -> [SKIP][4] ([Intel XE#455]) +3 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/bat-adlp-7/igt@kms_psr@psr-cursor-plane-move.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/bat-adlp-7/igt@kms_psr@psr-cursor-plane-move.html
[Intel XE#3517]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3517
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
Build changes
-------------
* IGT: IGT_8125 -> IGTPW_12193
* Linux: xe-2275-6510562075d8541c218e72188f9ef339f8ba371f -> xe-2276-ae312905c5a9fc7ce599a74422f068725101c475
IGTPW_12193: 12193
IGT_8125: fbfda23ba003aab3454436d95c233dcf5e3bee54 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-2275-6510562075d8541c218e72188f9ef339f8ba371f: 6510562075d8541c218e72188f9ef339f8ba371f
xe-2276-ae312905c5a9fc7ce599a74422f068725101c475: ae312905c5a9fc7ce599a74422f068725101c475
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/index.html
[-- Attachment #2: Type: text/html, Size: 2616 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✗ i915.CI.BAT: failure for CCS hibernate test
2024-11-25 16:19 [PATCH i-g-t 0/1] CCS hibernate test Juha-Pekka Heikkila
` (2 preceding siblings ...)
2024-11-25 23:32 ` ✓ Xe.CI.BAT: success " Patchwork
@ 2024-11-25 23:41 ` Patchwork
2024-11-26 2:26 ` ✗ Xe.CI.Full: " Patchwork
4 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2024-11-25 23:41 UTC (permalink / raw)
To: Juha-Pekka Heikkila; +Cc: igt-dev
== Series Details ==
Series: CCS hibernate test
URL : https://patchwork.freedesktop.org/series/141760/
State : failure
== Summary ==
CI Bug Log - changes from IGT_8125 -> IGTPW_12193
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_12193 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_12193, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/index.html
Participating hosts (45 -> 44)
------------------------------
Missing (1): fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_12193:
### IGT changes ###
#### Possible regressions ####
* igt@kms_flip@basic-plain-flip@b-dp1:
- fi-kbl-7567u: [PASS][1] -> [DMESG-WARN][2] +1 other test dmesg-warn
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8125/fi-kbl-7567u/igt@kms_flip@basic-plain-flip@b-dp1.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/fi-kbl-7567u/igt@kms_flip@basic-plain-flip@b-dp1.html
Known issues
------------
Here are the changes found in IGTPW_12193 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@dmabuf@all-tests:
- bat-apl-1: [PASS][3] -> [INCOMPLETE][4] ([i915#12904]) +1 other test incomplete
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8125/bat-apl-1/igt@dmabuf@all-tests.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/bat-apl-1/igt@dmabuf@all-tests.html
* igt@i915_pm_rpm@module-reload:
- bat-rpls-4: [PASS][5] -> [FAIL][6] ([i915#12903])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8125/bat-rpls-4/igt@i915_pm_rpm@module-reload.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/bat-rpls-4/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live:
- bat-arls-5: NOTRUN -> [ABORT][7] ([i915#12061])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/bat-arls-5/igt@i915_selftest@live.html
- bat-adlp-6: [PASS][8] -> [ABORT][9] ([i915#9413]) +1 other test abort
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8125/bat-adlp-6/igt@i915_selftest@live.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/bat-adlp-6/igt@i915_selftest@live.html
* igt@i915_selftest@live@workarounds:
- bat-arlh-3: [PASS][10] -> [ABORT][11] ([i915#12061]) +1 other test abort
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8125/bat-arlh-3/igt@i915_selftest@live@workarounds.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/bat-arlh-3/igt@i915_selftest@live@workarounds.html
- bat-arls-5: [PASS][12] -> [ABORT][13] ([i915#12061])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8125/bat-arls-5/igt@i915_selftest@live@workarounds.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/bat-arls-5/igt@i915_selftest@live@workarounds.html
#### Possible fixes ####
* igt@i915_pm_rpm@module-reload:
- bat-dg1-7: [FAIL][14] ([i915#12903]) -> [PASS][15]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8125/bat-dg1-7/igt@i915_pm_rpm@module-reload.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/bat-dg1-7/igt@i915_pm_rpm@module-reload.html
* igt@i915_selftest@live@workarounds:
- {bat-arls-6}: [ABORT][16] ([i915#12061]) -> [PASS][17] +1 other test pass
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8125/bat-arls-6/igt@i915_selftest@live@workarounds.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/bat-arls-6/igt@i915_selftest@live@workarounds.html
* igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
- bat-dg2-11: [SKIP][18] ([i915#9197]) -> [PASS][19] +3 other tests pass
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8125/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#12903]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12903
[i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
[i915#9197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9197
[i915#9413]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9413
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_8125 -> IGTPW_12193
* Linux: CI_DRM_15743 -> CI_DRM_15744
CI-20190529: 20190529
CI_DRM_15743: 6510562075d8541c218e72188f9ef339f8ba371f @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_15744: ae312905c5a9fc7ce599a74422f068725101c475 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_12193: 12193
IGT_8125: fbfda23ba003aab3454436d95c233dcf5e3bee54 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12193/index.html
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✗ Xe.CI.Full: failure for CCS hibernate test
2024-11-25 16:19 [PATCH i-g-t 0/1] CCS hibernate test Juha-Pekka Heikkila
` (3 preceding siblings ...)
2024-11-25 23:41 ` ✗ i915.CI.BAT: failure " Patchwork
@ 2024-11-26 2:26 ` Patchwork
4 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2024-11-26 2:26 UTC (permalink / raw)
To: Juha-Pekka Heikkila; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 142306 bytes --]
== Series Details ==
Series: CCS hibernate test
URL : https://patchwork.freedesktop.org/series/141760/
State : failure
== Summary ==
CI Bug Log - changes from XEIGT_8125_full -> XEIGTPW_12193_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with XEIGTPW_12193_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in XEIGTPW_12193_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in XEIGTPW_12193_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render:
- shard-dg2-set2: [PASS][1] -> [SKIP][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html
* igt@kms_psr@psr2-cursor-render@edp-1:
- shard-lnl: [PASS][3] -> [FAIL][4] +1 other test fail
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-8/igt@kms_psr@psr2-cursor-render@edp-1.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-6/igt@kms_psr@psr2-cursor-render@edp-1.html
* igt@kms_vblank@query-forked@pipe-d-dp-2:
- shard-bmg: [PASS][5] -> [INCOMPLETE][6] +1 other test incomplete
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-7/igt@kms_vblank@query-forked@pipe-d-dp-2.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_vblank@query-forked@pipe-d-dp-2.html
* igt@kms_vblank@ts-continuation-suspend@pipe-d-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [ABORT][7]
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_vblank@ts-continuation-suspend@pipe-d-hdmi-a-6.html
* igt@xe_eudebug_online@pagefault-write:
- shard-bmg: NOTRUN -> [SKIP][8]
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-1/igt@xe_eudebug_online@pagefault-write.html
* igt@xe_exec_sip@invalidinstr-thread-enabled:
- shard-lnl: [PASS][9] -> [DMESG-WARN][10] +6 other tests dmesg-warn
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-5/igt@xe_exec_sip@invalidinstr-thread-enabled.html
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-1/igt@xe_exec_sip@invalidinstr-thread-enabled.html
* igt@xe_vm@mmap-style-bind-either-side-partial-hammer:
- shard-bmg: [PASS][11] -> [DMESG-WARN][12]
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@xe_vm@mmap-style-bind-either-side-partial-hammer.html
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@xe_vm@mmap-style-bind-either-side-partial-hammer.html
#### Warnings ####
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt:
- shard-dg2-set2: [SKIP][13] ([Intel XE#2136]) -> [SKIP][14]
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt.html
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt:
- shard-dg2-set2: [SKIP][15] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][16]
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html
* igt@kms_plane@pixel-format-source-clamping@pipe-a-plane-5:
- shard-bmg: [DMESG-WARN][17] ([Intel XE#3468]) -> [DMESG-WARN][18]
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@kms_plane@pixel-format-source-clamping@pipe-a-plane-5.html
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_plane@pixel-format-source-clamping@pipe-a-plane-5.html
* igt@xe_vm@munmap-style-unbind-userptr-inval-many-all:
- shard-dg2-set2: [SKIP][19] ([Intel XE#1130]) -> [ABORT][20]
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@xe_vm@munmap-style-unbind-userptr-inval-many-all.html
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@xe_vm@munmap-style-unbind-userptr-inval-many-all.html
Known issues
------------
Here are the changes found in XEIGTPW_12193_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@core_hotunplug@hotreplug-lateclose:
- shard-dg2-set2: NOTRUN -> [SKIP][21] ([Intel XE#1885])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@core_hotunplug@hotreplug-lateclose.html
* igt@fbdev@info:
- shard-dg2-set2: NOTRUN -> [SKIP][22] ([Intel XE#2134])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@fbdev@info.html
* igt@fbdev@read:
- shard-dg2-set2: [PASS][23] -> [SKIP][24] ([Intel XE#2134]) +1 other test skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@fbdev@read.html
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@fbdev@read.html
* igt@kms_atomic@crtc-invalid-params:
- shard-bmg: [PASS][25] -> [DMESG-WARN][26] ([Intel XE#1727]) +4 other tests dmesg-warn
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@kms_atomic@crtc-invalid-params.html
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@kms_atomic@crtc-invalid-params.html
* igt@kms_atomic@crtc-invalid-params@pipe-a-hdmi-a-6:
- shard-dg2-set2: [PASS][27] -> [DMESG-WARN][28] ([Intel XE#1727]) +1 other test dmesg-warn
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_atomic@crtc-invalid-params@pipe-a-hdmi-a-6.html
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_atomic@crtc-invalid-params@pipe-a-hdmi-a-6.html
* igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#2370])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-90:
- shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#2327]) +1 other test skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0:
- shard-dg2-set2: [PASS][31] -> [SKIP][32] ([Intel XE#2136]) +25 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-463/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0.html
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0.html
* igt@kms_big_fb@y-tiled-16bpp-rotate-270:
- shard-bmg: NOTRUN -> [SKIP][33] ([Intel XE#1124]) +4 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_big_fb@y-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#607])
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-dg2-set2: NOTRUN -> [SKIP][35] ([Intel XE#1124]) +3 other tests skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#2328])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-addfb-size-overflow:
- shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#610])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
* igt@kms_bw@connected-linear-tiling-1-displays-2160x1440p:
- shard-dg2-set2: NOTRUN -> [SKIP][38] ([Intel XE#367])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@kms_bw@connected-linear-tiling-1-displays-2160x1440p.html
* igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p:
- shard-dg2-set2: NOTRUN -> [SKIP][39] ([Intel XE#2191])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html
* igt@kms_bw@connected-linear-tiling-3-displays-3840x2160p:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#2314] / [Intel XE#2894])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_bw@connected-linear-tiling-3-displays-3840x2160p.html
* igt@kms_bw@linear-tiling-2-displays-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#367]) +1 other test skip
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_bw@linear-tiling-2-displays-2560x1440p.html
* igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][42] ([Intel XE#787]) +100 other tests skip
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-rc-ccs-cc@pipe-a-hdmi-a-6.html
* igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#2652] / [Intel XE#787]) +8 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [DMESG-WARN][44] ([Intel XE#3468])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-6.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-ccs:
- shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#3432]) +1 other test skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html
* igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs:
- shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#2887]) +11 other tests skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_ccs@missing-ccs-buffer-yf-tiled-ccs.html
* igt@kms_ccs@random-ccs-data-y-tiled-ccs@pipe-d-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][47] ([Intel XE#455] / [Intel XE#787]) +22 other tests skip
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_ccs@random-ccs-data-y-tiled-ccs@pipe-d-hdmi-a-6.html
* igt@kms_cdclk@mode-transition-all-outputs:
- shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#2724])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@kms_cdclk@mode-transition-all-outputs.html
* igt@kms_chamelium_color@ctm-negative:
- shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#2325])
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_chamelium_color@ctm-negative.html
* igt@kms_chamelium_hpd@hdmi-hpd-after-suspend:
- shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#2252]) +7 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_chamelium_hpd@hdmi-hpd-after-suspend.html
* igt@kms_chamelium_hpd@vga-hpd:
- shard-dg2-set2: NOTRUN -> [SKIP][51] ([Intel XE#373]) +1 other test skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_chamelium_hpd@vga-hpd.html
* igt@kms_content_protection@legacy:
- shard-bmg: NOTRUN -> [FAIL][52] ([Intel XE#1178]) +1 other test fail
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_content_protection@legacy.html
* igt@kms_content_protection@legacy@pipe-a-dp-4:
- shard-dg2-set2: NOTRUN -> [FAIL][53] ([Intel XE#1178])
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_content_protection@legacy@pipe-a-dp-4.html
* igt@kms_cursor_crc@cursor-offscreen-32x32:
- shard-bmg: NOTRUN -> [SKIP][54] ([Intel XE#2320]) +1 other test skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_cursor_crc@cursor-offscreen-32x32.html
* igt@kms_cursor_crc@cursor-onscreen-512x512:
- shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#2321]) +1 other test skip
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_cursor_crc@cursor-onscreen-512x512.html
* igt@kms_cursor_crc@cursor-random-64x64:
- shard-bmg: [PASS][56] -> [DMESG-FAIL][57] ([Intel XE#3468]) +15 other tests dmesg-fail
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@kms_cursor_crc@cursor-random-64x64.html
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_cursor_crc@cursor-random-64x64.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-dg2-set2: NOTRUN -> [SKIP][58] ([Intel XE#2423] / [i915#2575]) +56 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
- shard-bmg: [PASS][59] -> [SKIP][60] ([Intel XE#2291]) +2 other tests skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html
* igt@kms_dp_aux_dev:
- shard-dg2-set2: [PASS][61] -> [SKIP][62] ([Intel XE#2423])
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_dp_aux_dev.html
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_dp_aux_dev.html
* igt@kms_draw_crc@draw-method-mmap-wc@rgb565-4tiled:
- shard-bmg: NOTRUN -> [DMESG-FAIL][63] ([Intel XE#2705])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@kms_draw_crc@draw-method-mmap-wc@rgb565-4tiled.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc:
- shard-bmg: NOTRUN -> [SKIP][64] ([Intel XE#2244])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
* igt@kms_fbcon_fbt@psr:
- shard-bmg: NOTRUN -> [SKIP][65] ([Intel XE#776])
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@kms_fbcon_fbt@psr.html
* igt@kms_flip@2x-busy-flip:
- shard-dg2-set2: [PASS][66] -> [SKIP][67] ([Intel XE#310])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_flip@2x-busy-flip.html
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_flip@2x-busy-flip.html
* igt@kms_flip@2x-flip-vs-expired-vblank@cd-hdmi-a6-dp4:
- shard-dg2-set2: NOTRUN -> [FAIL][68] ([Intel XE#301]) +3 other tests fail
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_flip@2x-flip-vs-expired-vblank@cd-hdmi-a6-dp4.html
* igt@kms_flip@2x-nonexisting-fb-interruptible:
- shard-bmg: NOTRUN -> [SKIP][69] ([Intel XE#2316])
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_flip@2x-nonexisting-fb-interruptible.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
- shard-bmg: [PASS][70] -> [SKIP][71] ([Intel XE#2316]) +1 other test skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-4/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
* igt@kms_flip@busy-flip:
- shard-dg2-set2: [PASS][72] -> [SKIP][73] ([Intel XE#2423] / [i915#2575]) +84 other tests skip
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_flip@busy-flip.html
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_flip@busy-flip.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-bmg: [PASS][74] -> [INCOMPLETE][75] ([Intel XE#2597])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_flip@flip-vs-suspend-interruptible.html
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_flip@flip-vs-suspend-interruptible@a-dp2:
- shard-bmg: NOTRUN -> [INCOMPLETE][76] ([Intel XE#2597])
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_flip@flip-vs-suspend-interruptible@a-dp2.html
* igt@kms_flip@plain-flip-ts-check-interruptible@d-hdmi-a3:
- shard-bmg: [PASS][77] -> [DMESG-WARN][78] ([Intel XE#3468]) +119 other tests dmesg-warn
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-4/igt@kms_flip@plain-flip-ts-check-interruptible@d-hdmi-a3.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@kms_flip@plain-flip-ts-check-interruptible@d-hdmi-a3.html
* igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling:
- shard-bmg: NOTRUN -> [INCOMPLETE][79] ([Intel XE#1727] / [Intel XE#3468]) +3 other tests incomplete
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling:
- shard-dg2-set2: NOTRUN -> [SKIP][80] ([Intel XE#455]) +7 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling:
- shard-bmg: NOTRUN -> [SKIP][81] ([Intel XE#2293] / [Intel XE#2380]) +1 other test skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling@pipe-a-valid-mode:
- shard-bmg: NOTRUN -> [SKIP][82] ([Intel XE#2293]) +1 other test skip
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-msflip-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][83] ([Intel XE#656])
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][84] ([Intel XE#2311]) +26 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt:
- shard-bmg: NOTRUN -> [FAIL][85] ([Intel XE#2333]) +9 other tests fail
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render:
- shard-dg2-set2: [PASS][86] -> [SKIP][87] ([Intel XE#656]) +1 other test skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [DMESG-FAIL][88] ([Intel XE#3468]) +7 other tests dmesg-fail
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt:
- shard-dg2-set2: [PASS][89] -> [SKIP][90] ([Intel XE#2136] / [Intel XE#2351]) +9 other tests skip
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-dg2-set2: [PASS][91] -> [INCOMPLETE][92] ([Intel XE#1727])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_frontbuffer_tracking@fbc-stridechange.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_frontbuffer_tracking@fbc-stridechange.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][93] ([Intel XE#651]) +3 other tests skip
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-tiling-linear:
- shard-dg2-set2: NOTRUN -> [SKIP][94] ([Intel XE#2136]) +57 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-linear.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc:
- shard-dg2-set2: NOTRUN -> [SKIP][95] ([Intel XE#653]) +2 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-msflip-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][96] ([Intel XE#2136] / [Intel XE#2351]) +17 other tests skip
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][97] ([Intel XE#2312]) +7 other tests skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt:
- shard-bmg: NOTRUN -> [SKIP][98] ([Intel XE#2313]) +19 other tests skip
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt.html
* igt@kms_joiner@invalid-modeset-big-joiner:
- shard-bmg: NOTRUN -> [SKIP][99] ([Intel XE#346])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@kms_joiner@invalid-modeset-big-joiner.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][100] ([Intel XE#1727] / [Intel XE#3468]) +2 other tests incomplete
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_plane@plane-panning-bottom-right@pipe-a:
- shard-bmg: [PASS][101] -> [INCOMPLETE][102] ([Intel XE#1035] / [Intel XE#1727]) +1 other test incomplete
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_plane@plane-panning-bottom-right@pipe-a.html
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_plane@plane-panning-bottom-right@pipe-a.html
* igt@kms_plane_cursor@primary@pipe-a-dp-2-size-256:
- shard-bmg: [PASS][103] -> [DMESG-FAIL][104] ([Intel XE#2705] / [Intel XE#3468])
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@kms_plane_cursor@primary@pipe-a-dp-2-size-256.html
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_plane_cursor@primary@pipe-a-dp-2-size-256.html
* igt@kms_plane_scaling@intel-max-src-size@pipe-a-dp-4:
- shard-dg2-set2: NOTRUN -> [FAIL][105] ([Intel XE#361])
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_plane_scaling@intel-max-src-size@pipe-a-dp-4.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers:
- shard-bmg: NOTRUN -> [SKIP][106] ([Intel XE#2763]) +14 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-modifiers.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d:
- shard-dg2-set2: NOTRUN -> [SKIP][107] ([Intel XE#2763] / [Intel XE#455]) +2 other tests skip
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b:
- shard-dg2-set2: NOTRUN -> [SKIP][108] ([Intel XE#2763]) +8 other tests skip
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b.html
* igt@kms_pm_backlight@fade-with-suspend:
- shard-bmg: NOTRUN -> [SKIP][109] ([Intel XE#870])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-4/igt@kms_pm_backlight@fade-with-suspend.html
* igt@kms_pm_dc@dc5-retention-flops:
- shard-bmg: NOTRUN -> [SKIP][110] ([Intel XE#3309])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_pm_dc@dc5-retention-flops.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-bmg: NOTRUN -> [SKIP][111] ([Intel XE#1439])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_pm_rpm@legacy-planes-dpms:
- shard-dg2-set2: NOTRUN -> [SKIP][112] ([Intel XE#2446]) +2 other tests skip
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_pm_rpm@legacy-planes-dpms.html
* igt@kms_pm_rpm@legacy-planes-dpms@plane-59:
- shard-bmg: NOTRUN -> [DMESG-WARN][113] ([Intel XE#1727] / [Intel XE#3468]) +7 other tests dmesg-warn
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@kms_pm_rpm@legacy-planes-dpms@plane-59.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-bmg: NOTRUN -> [SKIP][114] ([Intel XE#1439] / [Intel XE#3141])
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-dg2-set2: [PASS][115] -> [SKIP][116] ([Intel XE#2446]) +2 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-463/igt@kms_pm_rpm@modeset-non-lpsp.html
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_pm_rpm@modeset-non-lpsp.html
* igt@kms_pm_rpm@modeset-non-lpsp-stress:
- shard-bmg: [PASS][117] -> [INCOMPLETE][118] ([Intel XE#1727] / [Intel XE#3468])
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-5/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-4/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
* igt@kms_pm_rpm@system-suspend-modeset:
- shard-bmg: [PASS][119] -> [DMESG-WARN][120] ([Intel XE#1727] / [Intel XE#3468]) +2 other tests dmesg-warn
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_pm_rpm@system-suspend-modeset.html
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@kms_pm_rpm@system-suspend-modeset.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf:
- shard-bmg: NOTRUN -> [SKIP][121] ([Intel XE#1489]) +5 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-bmg: NOTRUN -> [SKIP][122] ([Intel XE#2387]) +1 other test skip
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@pr-sprite-render:
- shard-dg2-set2: NOTRUN -> [SKIP][123] ([Intel XE#2850] / [Intel XE#929])
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_psr@pr-sprite-render.html
* igt@kms_psr@psr2-no-drrs:
- shard-bmg: NOTRUN -> [SKIP][124] ([Intel XE#2234] / [Intel XE#2850]) +13 other tests skip
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_psr@psr2-no-drrs.html
* igt@kms_psr@psr2-primary-render:
- shard-bmg: NOTRUN -> [SKIP][125] ([Intel XE#2234])
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_psr@psr2-primary-render.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
- shard-bmg: NOTRUN -> [SKIP][126] ([Intel XE#2330])
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
* igt@kms_setmode@invalid-clone-single-crtc-stealing:
- shard-bmg: [PASS][127] -> [SKIP][128] ([Intel XE#1435])
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-2/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
* igt@kms_vblank@ts-continuation-idle:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][129] ([Intel XE#1034] / [Intel XE#1727])
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_vblank@ts-continuation-idle.html
* igt@kms_vblank@ts-continuation-idle@pipe-a-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][130] ([Intel XE#1727])
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_vblank@ts-continuation-idle@pipe-a-hdmi-a-6.html
* igt@kms_vrr@cmrr:
- shard-bmg: NOTRUN -> [SKIP][131] ([Intel XE#2168])
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_vrr@cmrr.html
* igt@kms_vrr@lobf:
- shard-dg2-set2: NOTRUN -> [SKIP][132] ([Intel XE#2168])
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_vrr@lobf.html
* igt@kms_vrr@seamless-rr-switch-drrs:
- shard-bmg: NOTRUN -> [SKIP][133] ([Intel XE#1499])
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@kms_vrr@seamless-rr-switch-drrs.html
* igt@sriov_basic@enable-vfs-autoprobe-off:
- shard-bmg: NOTRUN -> [SKIP][134] ([Intel XE#1091] / [Intel XE#2849])
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@sriov_basic@enable-vfs-autoprobe-off.html
* igt@testdisplay:
- shard-dg2-set2: NOTRUN -> [SKIP][135] ([Intel XE#2423])
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@testdisplay.html
* igt@xe_eudebug@basic-vm-bind-ufence:
- shard-bmg: NOTRUN -> [SKIP][136] ([Intel XE#2905]) +5 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-1/igt@xe_eudebug@basic-vm-bind-ufence.html
* igt@xe_eudebug_online@interrupt-all-set-breakpoint:
- shard-dg2-set2: NOTRUN -> [SKIP][137] ([Intel XE#2905]) +2 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@xe_eudebug_online@interrupt-all-set-breakpoint.html
* igt@xe_evict@evict-beng-mixed-many-threads-large:
- shard-bmg: NOTRUN -> [TIMEOUT][138] ([Intel XE#1473])
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@xe_evict@evict-beng-mixed-many-threads-large.html
* igt@xe_evict@evict-beng-mixed-many-threads-small:
- shard-bmg: [PASS][139] -> [TIMEOUT][140] ([Intel XE#1473])
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@xe_evict@evict-beng-mixed-many-threads-small.html
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@xe_evict@evict-beng-mixed-many-threads-small.html
* igt@xe_evict@evict-mixed-threads-large:
- shard-bmg: [PASS][141] -> [TIMEOUT][142] ([Intel XE#1473] / [Intel XE#2472])
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@xe_evict@evict-mixed-threads-large.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@xe_evict@evict-mixed-threads-large.html
* igt@xe_exec_balancer@once-parallel-rebind:
- shard-dg2-set2: [PASS][143] -> [SKIP][144] ([Intel XE#1130]) +173 other tests skip
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@xe_exec_balancer@once-parallel-rebind.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_exec_balancer@once-parallel-rebind.html
* igt@xe_exec_balancer@twice-virtual-basic:
- shard-dg2-set2: NOTRUN -> [SKIP][145] ([Intel XE#1130]) +88 other tests skip
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_exec_balancer@twice-virtual-basic.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-rebind:
- shard-bmg: NOTRUN -> [SKIP][146] ([Intel XE#2322]) +4 other tests skip
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-rebind.html
* igt@xe_exec_fault_mode@once-userptr-imm:
- shard-dg2-set2: NOTRUN -> [SKIP][147] ([Intel XE#288]) +7 other tests skip
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_exec_fault_mode@once-userptr-imm.html
* igt@xe_exec_threads@threads-bal-mixed-shared-vm-userptr-invalidate:
- shard-lnl: [PASS][148] -> [DMESG-WARN][149] ([Intel XE#3371] / [Intel XE#3515])
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-5/igt@xe_exec_threads@threads-bal-mixed-shared-vm-userptr-invalidate.html
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-3/igt@xe_exec_threads@threads-bal-mixed-shared-vm-userptr-invalidate.html
* igt@xe_exec_threads@threads-cm-shared-vm-userptr-invalidate:
- shard-lnl: [PASS][150] -> [DMESG-FAIL][151] ([Intel XE#3371])
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-4/igt@xe_exec_threads@threads-cm-shared-vm-userptr-invalidate.html
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-1/igt@xe_exec_threads@threads-cm-shared-vm-userptr-invalidate.html
* igt@xe_exec_threads@threads-mixed-fd-userptr:
- shard-bmg: NOTRUN -> [DMESG-WARN][152] ([Intel XE#1727])
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@xe_exec_threads@threads-mixed-fd-userptr.html
* igt@xe_fault_injection@inject-fault-probe-function-xe_guc_relay_init:
- shard-bmg: NOTRUN -> [DMESG-WARN][153] ([Intel XE#3343])
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@xe_fault_injection@inject-fault-probe-function-xe_guc_relay_init.html
* igt@xe_fault_injection@inject-fault-probe-function-xe_pm_init_early:
- shard-dg2-set2: NOTRUN -> [DMESG-WARN][154] ([Intel XE#3467])
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_fault_injection@inject-fault-probe-function-xe_pm_init_early.html
* igt@xe_fault_injection@inject-fault-probe-function-xe_wa_init:
- shard-bmg: NOTRUN -> [DMESG-WARN][155] ([Intel XE#3467]) +1 other test dmesg-warn
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-4/igt@xe_fault_injection@inject-fault-probe-function-xe_wa_init.html
* igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_execute:
- shard-bmg: NOTRUN -> [FAIL][156] ([Intel XE#3499])
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_execute.html
* igt@xe_module_load@load:
- shard-bmg: NOTRUN -> [SKIP][157] ([Intel XE#2457])
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-4/igt@xe_module_load@load.html
- shard-dg2-set2: NOTRUN -> [SKIP][158] ([Intel XE#378])
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_module_load@load.html
* igt@xe_oa@invalid-oa-metric-set-id:
- shard-dg2-set2: NOTRUN -> [SKIP][159] ([Intel XE#3573]) +1 other test skip
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@xe_oa@invalid-oa-metric-set-id.html
* igt@xe_oa@oa-exponents:
- shard-bmg: NOTRUN -> [DMESG-WARN][160] ([Intel XE#3468]) +34 other tests dmesg-warn
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@xe_oa@oa-exponents.html
* igt@xe_pm@d3cold-multiple-execs:
- shard-bmg: NOTRUN -> [SKIP][161] ([Intel XE#2284]) +2 other tests skip
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-4/igt@xe_pm@d3cold-multiple-execs.html
* igt@xe_pm@s2idle-basic-exec:
- shard-bmg: [PASS][162] -> [DMESG-WARN][163] ([Intel XE#1616] / [Intel XE#3468])
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@xe_pm@s2idle-basic-exec.html
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@xe_pm@s2idle-basic-exec.html
* igt@xe_pm@s3-basic-exec:
- shard-dg2-set2: NOTRUN -> [ABORT][164] ([Intel XE#1358])
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_pm@s3-basic-exec.html
* igt@xe_pm@s3-vm-bind-userptr:
- shard-bmg: [PASS][165] -> [DMESG-WARN][166] ([Intel XE#1727] / [Intel XE#3468] / [Intel XE#569])
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@xe_pm@s3-vm-bind-userptr.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@xe_pm@s3-vm-bind-userptr.html
* igt@xe_pm_residency@gt-c6-freeze@gt1:
- shard-bmg: [PASS][167] -> [DMESG-FAIL][168] ([Intel XE#1727] / [Intel XE#3468]) +2 other tests dmesg-fail
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-7/igt@xe_pm_residency@gt-c6-freeze@gt1.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@xe_pm_residency@gt-c6-freeze@gt1.html
* igt@xe_query@multigpu-query-invalid-extension:
- shard-bmg: NOTRUN -> [SKIP][169] ([Intel XE#944])
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@xe_query@multigpu-query-invalid-extension.html
* igt@xe_spin_batch@spin-basic-all:
- shard-dg2-set2: NOTRUN -> [DMESG-WARN][170] ([Intel XE#1727])
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@xe_spin_batch@spin-basic-all.html
* igt@xe_sriov_flr@flr-vf1-clear:
- shard-dg2-set2: NOTRUN -> [SKIP][171] ([Intel XE#3342])
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_sriov_flr@flr-vf1-clear.html
* igt@xe_wedged@basic-wedged:
- shard-dg2-set2: NOTRUN -> [DMESG-WARN][172] ([Intel XE#2919])
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@xe_wedged@basic-wedged.html
* igt@xe_wedged@wedged-at-any-timeout:
- shard-bmg: NOTRUN -> [ABORT][173] ([Intel XE#3421] / [Intel XE#3521])
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@xe_wedged@wedged-at-any-timeout.html
#### Possible fixes ####
* igt@core_getstats:
- shard-dg2-set2: [SKIP][174] ([Intel XE#2423]) -> [PASS][175] +1 other test pass
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@core_getstats.html
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@core_getstats.html
* igt@core_hotunplug@hotrebind:
- shard-dg2-set2: [SKIP][176] ([Intel XE#1885]) -> [PASS][177]
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@core_hotunplug@hotrebind.html
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@core_hotunplug@hotrebind.html
* igt@core_setmaster@master-drop-set-root:
- shard-dg2-set2: [FAIL][178] ([Intel XE#3249]) -> [PASS][179]
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@core_setmaster@master-drop-set-root.html
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@core_setmaster@master-drop-set-root.html
* igt@core_setmaster@master-drop-set-user:
- shard-dg2-set2: [FAIL][180] ([Intel XE#3339]) -> [PASS][181]
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@core_setmaster@master-drop-set-user.html
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@core_setmaster@master-drop-set-user.html
* igt@fbdev@unaligned-read:
- shard-dg2-set2: [SKIP][182] ([Intel XE#2134]) -> [PASS][183]
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@fbdev@unaligned-read.html
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@fbdev@unaligned-read.html
* igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-edp-1-linear:
- shard-lnl: [FAIL][184] ([Intel XE#911]) -> [PASS][185] +3 other tests pass
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-7/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-edp-1-linear.html
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-4/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-edp-1-linear.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-bmg: [DMESG-WARN][186] ([Intel XE#2705] / [Intel XE#3468]) -> [PASS][187]
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs:
- shard-dg2-set2: [SKIP][188] ([Intel XE#2136] / [Intel XE#2351]) -> [PASS][189] +9 other tests pass
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs.html
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs.html
* igt@kms_color@deep-color:
- shard-dg2-set2: [SKIP][190] ([Intel XE#455]) -> [PASS][191]
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_color@deep-color.html
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@kms_color@deep-color.html
* igt@kms_cursor_crc@cursor-onscreen-128x128:
- shard-bmg: [DMESG-FAIL][192] ([Intel XE#3468]) -> [PASS][193] +20 other tests pass
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@kms_cursor_crc@cursor-onscreen-128x128.html
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-4/igt@kms_cursor_crc@cursor-onscreen-128x128.html
* igt@kms_cursor_crc@cursor-suspend:
- shard-bmg: [INCOMPLETE][194] ([Intel XE#1727] / [Intel XE#3468]) -> [PASS][195] +4 other tests pass
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@kms_cursor_crc@cursor-suspend.html
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_cursor_crc@cursor-suspend.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-bmg: [SKIP][196] ([Intel XE#2291]) -> [PASS][197] +1 other test pass
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible:
- shard-bmg: [SKIP][198] ([Intel XE#2316]) -> [PASS][199] +2 other tests pass
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible.html
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@kms_flip@2x-blocking-absolute-wf_vblank-interruptible.html
* igt@kms_flip@2x-flip-vs-expired-vblank@bd-dp2-hdmi-a3:
- shard-bmg: [FAIL][200] ([Intel XE#2882]) -> [PASS][201]
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@kms_flip@2x-flip-vs-expired-vblank@bd-dp2-hdmi-a3.html
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_flip@2x-flip-vs-expired-vblank@bd-dp2-hdmi-a3.html
* igt@kms_flip@plain-flip-fb-recreate-interruptible@a-edp1:
- shard-lnl: [FAIL][202] ([Intel XE#886]) -> [PASS][203] +5 other tests pass
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-8/igt@kms_flip@plain-flip-fb-recreate-interruptible@a-edp1.html
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-8/igt@kms_flip@plain-flip-fb-recreate-interruptible@a-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling:
- shard-dg2-set2: [SKIP][204] ([Intel XE#2136]) -> [PASS][205] +25 other tests pass
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling.html
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling@pipe-a-valid-mode:
- shard-bmg: [DMESG-WARN][206] ([Intel XE#1727] / [Intel XE#3468]) -> [PASS][207] +5 other tests pass
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling@pipe-a-valid-mode.html
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt:
- shard-dg2-set2: [SKIP][208] ([Intel XE#656]) -> [PASS][209] +1 other test pass
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html
* igt@kms_getfb@getfb-handle-zero:
- shard-dg2-set2: [SKIP][210] ([Intel XE#2423] / [i915#2575]) -> [PASS][211] +93 other tests pass
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_getfb@getfb-handle-zero.html
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_getfb@getfb-handle-zero.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-bmg: [DMESG-FAIL][212] ([Intel XE#2705] / [Intel XE#3468]) -> [PASS][213]
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-7/igt@kms_hdr@bpc-switch-suspend.html
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [SKIP][214] ([Intel XE#1503]) -> [PASS][215]
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@kms_hdr@invalid-hdr.html
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@kms_hdr@invalid-hdr.html
* igt@kms_plane_scaling@plane-upscale-factor-0-25-with-pixel-format:
- shard-bmg: [INCOMPLETE][216] -> [PASS][217] +2 other tests pass
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-pixel-format.html
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-pixel-format.html
* igt@kms_pm_dc@dc5-psr:
- shard-lnl: [FAIL][218] ([Intel XE#718]) -> [PASS][219] +1 other test pass
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-7/igt@kms_pm_dc@dc5-psr.html
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-4/igt@kms_pm_dc@dc5-psr.html
* igt@kms_pm_dc@dc6-psr:
- shard-lnl: [FAIL][220] ([Intel XE#1430]) -> [PASS][221] +1 other test pass
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-6/igt@kms_pm_dc@dc6-psr.html
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-3/igt@kms_pm_dc@dc6-psr.html
* igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
- shard-dg2-set2: [SKIP][222] ([Intel XE#2446]) -> [PASS][223] +2 other tests pass
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
* igt@kms_setmode@clone-exclusive-crtc:
- shard-bmg: [SKIP][224] ([Intel XE#1435]) -> [PASS][225]
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_setmode@clone-exclusive-crtc.html
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-4/igt@kms_setmode@clone-exclusive-crtc.html
* igt@kms_vrr@cmrr@pipe-a-edp-1:
- shard-lnl: [FAIL][226] ([Intel XE#2159]) -> [PASS][227] +1 other test pass
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-3/igt@kms_vrr@cmrr@pipe-a-edp-1.html
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-7/igt@kms_vrr@cmrr@pipe-a-edp-1.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: [TIMEOUT][228] ([Intel XE#1473] / [Intel XE#2472]) -> [PASS][229]
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@xe_evict@evict-mixed-many-threads-small.html
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_exec_basic@many-execqueues-bindexecqueue:
- shard-lnl: [FAIL][230] -> [PASS][231]
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-3/igt@xe_exec_basic@many-execqueues-bindexecqueue.html
[231]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-6/igt@xe_exec_basic@many-execqueues-bindexecqueue.html
* igt@xe_exec_basic@many-execqueues-many-vm-bindexecqueue:
- shard-dg2-set2: [DMESG-WARN][232] ([Intel XE#1727]) -> [PASS][233]
[232]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@xe_exec_basic@many-execqueues-many-vm-bindexecqueue.html
[233]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_exec_basic@many-execqueues-many-vm-bindexecqueue.html
* igt@xe_exec_fault_mode@twice-bindexecqueue:
- shard-bmg: [DMESG-WARN][234] ([Intel XE#1727]) -> [PASS][235] +4 other tests pass
[234]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-2/igt@xe_exec_fault_mode@twice-bindexecqueue.html
[235]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@xe_exec_fault_mode@twice-bindexecqueue.html
* igt@xe_exec_reset@cm-close-fd-no-exec:
- shard-dg2-set2: [SKIP][236] ([Intel XE#1130]) -> [PASS][237] +169 other tests pass
[236]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@xe_exec_reset@cm-close-fd-no-exec.html
[237]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@xe_exec_reset@cm-close-fd-no-exec.html
* igt@xe_exec_threads@threads-bal-mixed-shared-vm-userptr-invalidate:
- shard-dg2-set2: [DMESG-WARN][238] ([Intel XE#3515]) -> [PASS][239]
[238]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@xe_exec_threads@threads-bal-mixed-shared-vm-userptr-invalidate.html
[239]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_exec_threads@threads-bal-mixed-shared-vm-userptr-invalidate.html
* igt@xe_exec_threads@threads-mixed-basic:
- shard-lnl: [DMESG-WARN][240] -> [PASS][241]
[240]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-4/igt@xe_exec_threads@threads-mixed-basic.html
[241]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-7/igt@xe_exec_threads@threads-mixed-basic.html
* igt@xe_fault_injection@inject-fault-probe-function-xe_device_create:
- shard-dg2-set2: [DMESG-WARN][242] ([Intel XE#3467]) -> [PASS][243] +1 other test pass
[242]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@xe_fault_injection@inject-fault-probe-function-xe_device_create.html
[243]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@xe_fault_injection@inject-fault-probe-function-xe_device_create.html
* igt@xe_live_ktest@xe_bo@xe_bo_shrink_kunit:
- shard-bmg: [INCOMPLETE][244] ([Intel XE#2998]) -> [PASS][245] +1 other test pass
[244]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@xe_live_ktest@xe_bo@xe_bo_shrink_kunit.html
[245]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@xe_live_ktest@xe_bo@xe_bo_shrink_kunit.html
* igt@xe_live_ktest@xe_mocs:
- shard-lnl: [SKIP][246] ([Intel XE#1192]) -> [PASS][247]
[246]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-5/igt@xe_live_ktest@xe_mocs.html
[247]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-5/igt@xe_live_ktest@xe_mocs.html
* igt@xe_module_load@reload-no-display:
- shard-bmg: [DMESG-WARN][248] ([Intel XE#3467]) -> [PASS][249] +2 other tests pass
[248]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-7/igt@xe_module_load@reload-no-display.html
[249]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@xe_module_load@reload-no-display.html
* igt@xe_oa@oa-regs-whitelisted:
- shard-lnl: [FAIL][250] ([Intel XE#2514]) -> [PASS][251]
[250]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-lnl-3/igt@xe_oa@oa-regs-whitelisted.html
[251]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-lnl-1/igt@xe_oa@oa-regs-whitelisted.html
* igt@xe_pm@s2idle-vm-bind-userptr:
- shard-bmg: [DMESG-WARN][252] ([Intel XE#1616] / [Intel XE#1727] / [Intel XE#3468]) -> [PASS][253]
[252]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@xe_pm@s2idle-vm-bind-userptr.html
[253]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@xe_pm@s2idle-vm-bind-userptr.html
* igt@xe_pm@s3-basic-exec:
- shard-bmg: [DMESG-FAIL][254] ([Intel XE#1727] / [Intel XE#3468]) -> [PASS][255] +1 other test pass
[254]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@xe_pm@s3-basic-exec.html
[255]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-1/igt@xe_pm@s3-basic-exec.html
* igt@xe_sysfs_preempt_timeout@preempt_timeout_us-timeout:
- shard-bmg: [DMESG-WARN][256] ([Intel XE#3468]) -> [PASS][257] +97 other tests pass
[256]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@xe_sysfs_preempt_timeout@preempt_timeout_us-timeout.html
[257]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@xe_sysfs_preempt_timeout@preempt_timeout_us-timeout.html
* igt@xe_wedged@wedged-mode-toggle:
- shard-bmg: [DMESG-WARN][258] -> [PASS][259]
[258]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@xe_wedged@wedged-mode-toggle.html
[259]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@xe_wedged@wedged-mode-toggle.html
#### Warnings ####
* igt@core_hotunplug@unbind-rebind:
- shard-dg2-set2: [SKIP][260] ([Intel XE#1885]) -> [DMESG-WARN][261] ([Intel XE#3468])
[260]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@core_hotunplug@unbind-rebind.html
[261]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@core_hotunplug@unbind-rebind.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- shard-dg2-set2: [SKIP][262] ([Intel XE#623]) -> [SKIP][263] ([Intel XE#2423] / [i915#2575])
[262]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
[263]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_async_flips@invalid-async-flip:
- shard-dg2-set2: [SKIP][264] ([Intel XE#2423] / [i915#2575]) -> [SKIP][265] ([Intel XE#873])
[264]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_async_flips@invalid-async-flip.html
[265]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_async_flips@invalid-async-flip.html
* igt@kms_big_fb@4-tiled-32bpp-rotate-90:
- shard-dg2-set2: [SKIP][266] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][267] ([Intel XE#316])
[266]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
[267]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@linear-64bpp-rotate-270:
- shard-dg2-set2: [SKIP][268] ([Intel XE#316]) -> [SKIP][269] ([Intel XE#2136] / [Intel XE#2351]) +1 other test skip
[268]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_big_fb@linear-64bpp-rotate-270.html
[269]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_big_fb@linear-64bpp-rotate-270.html
* igt@kms_big_fb@linear-8bpp-rotate-270:
- shard-dg2-set2: [SKIP][270] ([Intel XE#2136]) -> [SKIP][271] ([Intel XE#316]) +1 other test skip
[270]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_big_fb@linear-8bpp-rotate-270.html
[271]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_big_fb@linear-8bpp-rotate-270.html
* igt@kms_big_fb@x-tiled-16bpp-rotate-90:
- shard-dg2-set2: [SKIP][272] ([Intel XE#316]) -> [SKIP][273] ([Intel XE#2136])
[272]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
[273]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-addfb:
- shard-dg2-set2: [SKIP][274] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][275] ([Intel XE#619])
[274]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_big_fb@y-tiled-addfb.html
[275]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_big_fb@y-tiled-addfb.html
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-dg2-set2: [SKIP][276] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][277] ([Intel XE#607])
[276]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
[277]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-dg2-set2: [SKIP][278] ([Intel XE#619]) -> [SKIP][279] ([Intel XE#2136] / [Intel XE#2351])
[278]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_big_fb@yf-tiled-addfb.html
[279]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-dg2-set2: [SKIP][280] ([Intel XE#1124]) -> [SKIP][281] ([Intel XE#2136] / [Intel XE#2351])
[280]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
[281]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-dg2-set2: [SKIP][282] ([Intel XE#1124]) -> [SKIP][283] ([Intel XE#2136]) +11 other tests skip
[282]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
[283]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
- shard-dg2-set2: [SKIP][284] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][285] ([Intel XE#1124]) +4 other tests skip
[284]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
[285]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-dg2-set2: [SKIP][286] ([Intel XE#2136]) -> [SKIP][287] ([Intel XE#1124]) +4 other tests skip
[286]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
[287]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p:
- shard-dg2-set2: [SKIP][288] ([Intel XE#367]) -> [SKIP][289] ([Intel XE#2423] / [i915#2575]) +6 other tests skip
[288]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
[289]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_bw@connected-linear-tiling-2-displays-2560x1440p.html
* igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p:
- shard-dg2-set2: [SKIP][290] ([Intel XE#2191]) -> [SKIP][291] ([Intel XE#2423] / [i915#2575]) +1 other test skip
[290]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html
[291]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html
* igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p:
- shard-dg2-set2: [SKIP][292] ([Intel XE#2423] / [i915#2575]) -> [SKIP][293] ([Intel XE#2191])
[292]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html
[293]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html
* igt@kms_bw@linear-tiling-2-displays-2160x1440p:
- shard-dg2-set2: [SKIP][294] ([Intel XE#2423] / [i915#2575]) -> [SKIP][295] ([Intel XE#367]) +2 other tests skip
[294]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html
[295]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html
* igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs:
- shard-dg2-set2: [SKIP][296] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][297] ([Intel XE#2136]) +7 other tests skip
[296]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs.html
[297]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs:
- shard-dg2-set2: [SKIP][298] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][299] ([Intel XE#2136] / [Intel XE#2351]) +3 other tests skip
[298]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs.html
[299]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-6:
- shard-dg2-set2: [SKIP][300] ([Intel XE#787]) -> [SKIP][301] ([Intel XE#455] / [Intel XE#787]) +1 other test skip
[300]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-463/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-6.html
[301]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-6.html
* igt@kms_ccs@crc-primary-basic-y-tiled-gen12-mc-ccs:
- shard-dg2-set2: [SKIP][302] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][303] ([Intel XE#455] / [Intel XE#787]) +1 other test skip
[302]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_ccs@crc-primary-basic-y-tiled-gen12-mc-ccs.html
[303]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_ccs@crc-primary-basic-y-tiled-gen12-mc-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs:
- shard-dg2-set2: [SKIP][304] ([Intel XE#2136]) -> [SKIP][305] ([Intel XE#455] / [Intel XE#787]) +10 other tests skip
[304]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs.html
[305]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-dg2-set2: [SKIP][306] ([Intel XE#3442]) -> [SKIP][307] ([Intel XE#2136])
[306]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
[307]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [SKIP][308] ([Intel XE#2136]) -> [INCOMPLETE][309] ([Intel XE#1727] / [Intel XE#3468])
[308]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
[309]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
- shard-dg2-set2: [SKIP][310] ([Intel XE#2136]) -> [SKIP][311] ([Intel XE#3442])
[310]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html
[311]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc:
- shard-dg2-set2: [FAIL][312] ([Intel XE#616]) -> [SKIP][313] ([Intel XE#2136])
[312]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
[313]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-6:
- shard-dg2-set2: [SKIP][314] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][315] ([Intel XE#787]) +1 other test skip
[314]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-6.html
[315]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-6.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
- shard-dg2-set2: [SKIP][316] ([Intel XE#2907]) -> [SKIP][317] ([Intel XE#2136]) +1 other test skip
[316]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
[317]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
* igt@kms_chamelium_color@ctm-0-75:
- shard-dg2-set2: [SKIP][318] ([Intel XE#306]) -> [SKIP][319] ([Intel XE#2423] / [i915#2575]) +2 other tests skip
[318]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_chamelium_color@ctm-0-75.html
[319]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_chamelium_color@ctm-0-75.html
* igt@kms_chamelium_color@ctm-limited-range:
- shard-dg2-set2: [SKIP][320] ([Intel XE#2423] / [i915#2575]) -> [SKIP][321] ([Intel XE#306]) +2 other tests skip
[320]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_chamelium_color@ctm-limited-range.html
[321]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_chamelium_color@ctm-limited-range.html
* igt@kms_chamelium_frames@hdmi-cmp-planes-random:
- shard-dg2-set2: [SKIP][322] ([Intel XE#373]) -> [SKIP][323] ([Intel XE#2423] / [i915#2575]) +5 other tests skip
[322]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_chamelium_frames@hdmi-cmp-planes-random.html
[323]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_chamelium_frames@hdmi-cmp-planes-random.html
* igt@kms_chamelium_frames@vga-frame-dump:
- shard-dg2-set2: [SKIP][324] ([Intel XE#2423] / [i915#2575]) -> [SKIP][325] ([Intel XE#373]) +6 other tests skip
[324]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_chamelium_frames@vga-frame-dump.html
[325]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@kms_chamelium_frames@vga-frame-dump.html
* igt@kms_content_protection@dp-mst-lic-type-1:
- shard-dg2-set2: [SKIP][326] ([Intel XE#307]) -> [SKIP][327] ([Intel XE#2423] / [i915#2575])
[326]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_content_protection@dp-mst-lic-type-1.html
[327]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_content_protection@dp-mst-lic-type-1.html
* igt@kms_content_protection@legacy:
- shard-dg2-set2: [SKIP][328] ([Intel XE#2423] / [i915#2575]) -> [FAIL][329] ([Intel XE#1178])
[328]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_content_protection@legacy.html
[329]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_content_protection@legacy.html
* igt@kms_content_protection@lic-type-0:
- shard-dg2-set2: [FAIL][330] ([Intel XE#1178]) -> [SKIP][331] ([Intel XE#2423] / [i915#2575]) +2 other tests skip
[330]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_content_protection@lic-type-0.html
[331]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_content_protection@lic-type-0.html
* igt@kms_content_protection@srm@pipe-a-dp-2:
- shard-bmg: [INCOMPLETE][332] ([Intel XE#2715]) -> [FAIL][333] ([Intel XE#1178]) +1 other test fail
[332]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@kms_content_protection@srm@pipe-a-dp-2.html
[333]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@kms_content_protection@srm@pipe-a-dp-2.html
* igt@kms_cursor_crc@cursor-offscreen-512x170:
- shard-dg2-set2: [SKIP][334] ([Intel XE#2423] / [i915#2575]) -> [SKIP][335] ([Intel XE#308]) +1 other test skip
[334]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_cursor_crc@cursor-offscreen-512x170.html
[335]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_cursor_crc@cursor-offscreen-512x170.html
* igt@kms_cursor_crc@cursor-suspend:
- shard-dg2-set2: [INCOMPLETE][336] ([Intel XE#3468]) -> [SKIP][337] ([Intel XE#2423] / [i915#2575])
[336]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_cursor_crc@cursor-suspend.html
[337]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_cursor_crc@cursor-suspend.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions:
- shard-dg2-set2: [SKIP][338] ([Intel XE#309]) -> [SKIP][339] ([Intel XE#2423] / [i915#2575]) +1 other test skip
[338]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions.html
[339]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-toggle:
- shard-bmg: [SKIP][340] ([Intel XE#2291]) -> [DMESG-WARN][341] ([Intel XE#877])
[340]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html
[341]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
- shard-dg2-set2: [SKIP][342] ([Intel XE#2423] / [i915#2575]) -> [SKIP][343] ([Intel XE#323])
[342]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
[343]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-dg2-set2: [SKIP][344] ([Intel XE#323]) -> [SKIP][345] ([Intel XE#2423] / [i915#2575]) +1 other test skip
[344]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
[345]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-dp-2:
- shard-bmg: [DMESG-FAIL][346] ([Intel XE#3468]) -> [FAIL][347] ([Intel XE#2141]) +2 other tests fail
[346]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-5/igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-dp-2.html
[347]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_dirtyfb@fbc-dirtyfb-ioctl@a-dp-2.html
* igt@kms_dsc@dsc-basic:
- shard-dg2-set2: [SKIP][348] ([Intel XE#2351]) -> [SKIP][349] ([Intel XE#455])
[348]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_dsc@dsc-basic.html
[349]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_dsc@dsc-basic.html
* igt@kms_dsc@dsc-fractional-bpp:
- shard-dg2-set2: [SKIP][350] ([Intel XE#2136]) -> [SKIP][351] ([Intel XE#455]) +4 other tests skip
[350]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_dsc@dsc-fractional-bpp.html
[351]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_dsc@dsc-fractional-bpp.html
* igt@kms_dsc@dsc-fractional-bpp-with-bpc:
- shard-dg2-set2: [SKIP][352] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][353] ([Intel XE#455])
[352]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
[353]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
* igt@kms_dsc@dsc-with-output-formats-with-bpc:
- shard-dg2-set2: [SKIP][354] ([Intel XE#455]) -> [SKIP][355] ([Intel XE#2136]) +3 other tests skip
[354]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
[355]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
* igt@kms_fbcon_fbt@fbc:
- shard-dg2-set2: [SKIP][356] ([Intel XE#2136] / [Intel XE#2351]) -> [FAIL][357] ([Intel XE#1695])
[356]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_fbcon_fbt@fbc.html
[357]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_fbcon_fbt@fbc.html
* igt@kms_fbcon_fbt@psr:
- shard-dg2-set2: [SKIP][358] ([Intel XE#776]) -> [SKIP][359] ([Intel XE#2136])
[358]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_fbcon_fbt@psr.html
[359]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_fbcon_fbt@psr.html
* igt@kms_feature_discovery@dp-mst:
- shard-dg2-set2: [SKIP][360] ([Intel XE#1137]) -> [SKIP][361] ([Intel XE#2423] / [i915#2575])
[360]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_feature_discovery@dp-mst.html
[361]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_feature_discovery@dp-mst.html
* igt@kms_feature_discovery@psr1:
- shard-dg2-set2: [SKIP][362] ([Intel XE#1135]) -> [SKIP][363] ([Intel XE#2423] / [i915#2575])
[362]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_feature_discovery@psr1.html
[363]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_feature_discovery@psr1.html
* igt@kms_feature_discovery@psr2:
- shard-dg2-set2: [SKIP][364] ([Intel XE#2423] / [i915#2575]) -> [SKIP][365] ([Intel XE#1135])
[364]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_feature_discovery@psr2.html
[365]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_feature_discovery@psr2.html
* igt@kms_flip@2x-absolute-wf_vblank-interruptible:
- shard-bmg: [DMESG-WARN][366] ([Intel XE#3468]) -> [SKIP][367] ([Intel XE#2316])
[366]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-5/igt@kms_flip@2x-absolute-wf_vblank-interruptible.html
[367]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_flip@2x-absolute-wf_vblank-interruptible.html
* igt@kms_flip@2x-blocking-absolute-wf_vblank:
- shard-dg2-set2: [SKIP][368] ([Intel XE#2423] / [i915#2575]) -> [SKIP][369] ([Intel XE#310]) +2 other tests skip
[368]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_flip@2x-blocking-absolute-wf_vblank.html
[369]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_flip@2x-blocking-absolute-wf_vblank.html
* igt@kms_flip@2x-flip-vs-expired-vblank:
- shard-bmg: [DMESG-FAIL][370] ([Intel XE#3468]) -> [FAIL][371] ([Intel XE#2882])
[370]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@kms_flip@2x-flip-vs-expired-vblank.html
[371]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_flip@2x-flip-vs-expired-vblank.html
- shard-dg2-set2: [SKIP][372] ([Intel XE#310]) -> [FAIL][373] ([Intel XE#301])
[372]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_flip@2x-flip-vs-expired-vblank.html
[373]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_flip@2x-flip-vs-expired-vblank.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-dp2-hdmi-a3:
- shard-bmg: [DMESG-WARN][374] ([Intel XE#3468]) -> [FAIL][375] ([Intel XE#2882])
[374]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-dp2-hdmi-a3.html
[375]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-dp2-hdmi-a3.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-dp2-hdmi-a3:
- shard-bmg: [DMESG-WARN][376] ([Intel XE#3468]) -> [FAIL][377] ([Intel XE#3321] / [Intel XE#3486])
[376]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-dp2-hdmi-a3.html
[377]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-dp2-hdmi-a3.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bd-dp2-hdmi-a3:
- shard-bmg: [FAIL][378] ([Intel XE#3486]) -> [DMESG-WARN][379] ([Intel XE#3468])
[378]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bd-dp2-hdmi-a3.html
[379]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bd-dp2-hdmi-a3.html
* igt@kms_flip@2x-flip-vs-expired-vblank@ad-dp2-hdmi-a3:
- shard-bmg: [DMESG-WARN][380] ([Intel XE#3468]) -> [FAIL][381] ([Intel XE#3321] / [Intel XE#3487])
[380]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@kms_flip@2x-flip-vs-expired-vblank@ad-dp2-hdmi-a3.html
[381]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_flip@2x-flip-vs-expired-vblank@ad-dp2-hdmi-a3.html
* igt@kms_flip@2x-nonexisting-fb-interruptible:
- shard-dg2-set2: [SKIP][382] ([Intel XE#310]) -> [SKIP][383] ([Intel XE#2423] / [i915#2575]) +1 other test skip
[382]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_flip@2x-nonexisting-fb-interruptible.html
[383]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_flip@2x-nonexisting-fb-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling:
- shard-dg2-set2: [SKIP][384] ([Intel XE#455]) -> [SKIP][385] ([Intel XE#2136] / [Intel XE#2351]) +1 other test skip
[384]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html
[385]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html
- shard-bmg: [INCOMPLETE][386] -> [SKIP][387] ([Intel XE#2293] / [Intel XE#2380])
[386]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html
[387]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode:
- shard-bmg: [INCOMPLETE][388] -> [SKIP][389] ([Intel XE#2293])
[388]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode.html
[389]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-valid-mode.html
* igt@kms_force_connector_basic@prune-stale-modes:
- shard-dg2-set2: [SKIP][390] ([Intel XE#2423] / [i915#2575]) -> [SKIP][391] ([i915#5274])
[390]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_force_connector_basic@prune-stale-modes.html
[391]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_force_connector_basic@prune-stale-modes.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-blt:
- shard-dg2-set2: [SKIP][392] ([Intel XE#2136]) -> [SKIP][393] ([Intel XE#651]) +16 other tests skip
[392]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-blt.html
[393]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move:
- shard-dg2-set2: [SKIP][394] ([Intel XE#2136]) -> [SKIP][395] ([Intel XE#656]) +8 other tests skip
[394]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move.html
[395]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-move.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-move:
- shard-dg2-set2: [SKIP][396] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][397] ([Intel XE#656]) +3 other tests skip
[396]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-move.html
[397]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt:
- shard-bmg: [SKIP][398] ([Intel XE#2312]) -> [SKIP][399] ([Intel XE#2311]) +10 other tests skip
[398]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt.html
[399]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen:
- shard-dg2-set2: [SKIP][400] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][401] ([Intel XE#651]) +5 other tests skip
[400]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html
[401]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render:
- shard-bmg: [DMESG-FAIL][402] ([Intel XE#3468]) -> [FAIL][403] ([Intel XE#2333]) +7 other tests fail
[402]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render.html
[403]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt:
- shard-dg2-set2: [SKIP][404] -> [SKIP][405] ([Intel XE#2136])
[404]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
[405]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
- shard-bmg: [FAIL][406] ([Intel XE#2333]) -> [DMESG-FAIL][407] ([Intel XE#3468]) +10 other tests dmesg-fail
[406]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html
[407]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render:
- shard-bmg: [INCOMPLETE][408] -> [FAIL][409] ([Intel XE#2333])
[408]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render.html
[409]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc:
- shard-dg2-set2: [SKIP][410] ([Intel XE#656]) -> [SKIP][411] ([Intel XE#2136] / [Intel XE#2351]) +5 other tests skip
[410]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html
[411]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-msflip-blt:
- shard-bmg: [FAIL][412] ([Intel XE#2333]) -> [SKIP][413] ([Intel XE#2312]) +1 other test skip
[412]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-msflip-blt.html
[413]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-pgflip-blt:
- shard-bmg: [SKIP][414] ([Intel XE#2312]) -> [FAIL][415] ([Intel XE#2333]) +2 other tests fail
[414]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-pgflip-blt.html
[415]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-bmg: [SKIP][416] ([Intel XE#2312]) -> [DMESG-FAIL][417] ([Intel XE#3468])
[416]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc.html
[417]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt:
- shard-bmg: [DMESG-FAIL][418] ([Intel XE#3468]) -> [SKIP][419] ([Intel XE#2312])
[418]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt.html
[419]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render:
- shard-dg2-set2: [SKIP][420] ([Intel XE#651]) -> [SKIP][421] ([Intel XE#2136]) +20 other tests skip
[420]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html
[421]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt:
- shard-dg2-set2: [SKIP][422] ([Intel XE#651]) -> [SKIP][423] ([Intel XE#656])
[422]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt.html
[423]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render:
- shard-bmg: [SKIP][424] ([Intel XE#2311]) -> [SKIP][425] ([Intel XE#2312]) +11 other tests skip
[424]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render.html
[425]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc:
- shard-dg2-set2: [SKIP][426] ([Intel XE#651]) -> [SKIP][427] ([Intel XE#2136] / [Intel XE#2351]) +6 other tests skip
[426]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc.html
[427]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
- shard-dg2-set2: [SKIP][428] ([Intel XE#658]) -> [SKIP][429] ([Intel XE#2136] / [Intel XE#2351])
[428]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
[429]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-msflip-blt:
- shard-dg2-set2: [SKIP][430] ([Intel XE#656]) -> [SKIP][431] ([Intel XE#653]) +1 other test skip
[430]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-msflip-blt.html
[431]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt:
- shard-bmg: [SKIP][432] ([Intel XE#2313]) -> [SKIP][433] ([Intel XE#2312]) +7 other tests skip
[432]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt.html
[433]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-render:
- shard-dg2-set2: [SKIP][434] ([Intel XE#653]) -> [SKIP][435] ([Intel XE#656])
[434]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-463/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-render.html
[435]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
- shard-bmg: [SKIP][436] ([Intel XE#2312]) -> [SKIP][437] ([Intel XE#2313]) +12 other tests skip
[436]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
[437]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-render:
- shard-dg2-set2: [SKIP][438] ([Intel XE#653]) -> [SKIP][439] ([Intel XE#2136] / [Intel XE#2351]) +3 other tests skip
[438]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-render.html
[439]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
- shard-dg2-set2: [SKIP][440] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][441] ([Intel XE#653]) +8 other tests skip
[440]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
[441]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
- shard-dg2-set2: [SKIP][442] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][443] ([Intel XE#658])
[442]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
[443]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
* igt@kms_frontbuffer_tracking@pipe-fbc-rte:
- shard-bmg: [FAIL][444] ([Intel XE#2333]) -> [INCOMPLETE][445] ([Intel XE#2050] / [Intel XE#3468])
[444]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
[445]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-1/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html
* igt@kms_frontbuffer_tracking@pipe-fbc-rte@pipe-b-dp-2:
- shard-bmg: [FAIL][446] ([Intel XE#2333]) -> [INCOMPLETE][447] ([Intel XE#3468])
[446]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@kms_frontbuffer_tracking@pipe-fbc-rte@pipe-b-dp-2.html
[447]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-1/igt@kms_frontbuffer_tracking@pipe-fbc-rte@pipe-b-dp-2.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render:
- shard-dg2-set2: [SKIP][448] ([Intel XE#656]) -> [SKIP][449] ([Intel XE#2136]) +4 other tests skip
[448]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html
[449]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-blt:
- shard-dg2-set2: [SKIP][450] ([Intel XE#653]) -> [SKIP][451] ([Intel XE#2136]) +23 other tests skip
[450]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-463/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-blt.html
[451]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc:
- shard-dg2-set2: [SKIP][452] ([Intel XE#2136]) -> [SKIP][453] ([Intel XE#653]) +13 other tests skip
[452]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc.html
[453]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-dg2-set2: [DMESG-WARN][454] ([Intel XE#3468]) -> [SKIP][455] ([Intel XE#2423] / [i915#2575])
[454]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_hdr@bpc-switch-suspend.html
[455]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_hdr@invalid-hdr:
- shard-dg2-set2: [SKIP][456] ([Intel XE#455]) -> [SKIP][457] ([Intel XE#2423] / [i915#2575]) +9 other tests skip
[456]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_hdr@invalid-hdr.html
[457]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_hdr@invalid-hdr.html
* igt@kms_joiner@invalid-modeset-big-joiner:
- shard-dg2-set2: [SKIP][458] ([Intel XE#346]) -> [SKIP][459] ([Intel XE#2136])
[458]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_joiner@invalid-modeset-big-joiner.html
[459]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_joiner@invalid-modeset-big-joiner.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-dg2-set2: [SKIP][460] ([Intel XE#356]) -> [SKIP][461] ([Intel XE#2423] / [i915#2575])
[460]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
[461]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_plane@pixel-format:
- shard-dg2-set2: [INCOMPLETE][462] ([Intel XE#1035] / [Intel XE#1727]) -> [SKIP][463] ([Intel XE#2423] / [i915#2575])
[462]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_plane@pixel-format.html
[463]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_plane@pixel-format.html
* igt@kms_plane_alpha_blend@alpha-basic@pipe-a-dp-2:
- shard-bmg: [DMESG-WARN][464] ([Intel XE#3468]) -> [DMESG-FAIL][465] ([Intel XE#3468]) +2 other tests dmesg-fail
[464]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-2/igt@kms_plane_alpha_blend@alpha-basic@pipe-a-dp-2.html
[465]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@kms_plane_alpha_blend@alpha-basic@pipe-a-dp-2.html
* igt@kms_plane_cursor@primary:
- shard-dg2-set2: [FAIL][466] ([Intel XE#616]) -> [SKIP][467] ([Intel XE#2423] / [i915#2575])
[466]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-463/igt@kms_plane_cursor@primary.html
[467]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_plane_cursor@primary.html
* igt@kms_plane_multiple@tiling-y:
- shard-dg2-set2: [SKIP][468] ([Intel XE#2423] / [i915#2575]) -> [SKIP][469] ([Intel XE#455]) +8 other tests skip
[468]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_plane_multiple@tiling-y.html
[469]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_plane_multiple@tiling-y.html
* igt@kms_plane_scaling@intel-max-src-size:
- shard-dg2-set2: [SKIP][470] ([Intel XE#2423] / [i915#2575]) -> [FAIL][471] ([Intel XE#361])
[470]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_plane_scaling@intel-max-src-size.html
[471]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_plane_scaling@intel-max-src-size.html
* igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format:
- shard-dg2-set2: [SKIP][472] ([Intel XE#2763] / [Intel XE#455]) -> [SKIP][473] ([Intel XE#2423] / [i915#2575])
[472]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-463/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html
[473]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format.html
* igt@kms_plane_scaling@planes-downscale-factor-0-25:
- shard-dg2-set2: [SKIP][474] ([Intel XE#2423] / [i915#2575]) -> [SKIP][475] ([Intel XE#2763] / [Intel XE#455]) +2 other tests skip
[474]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_plane_scaling@planes-downscale-factor-0-25.html
[475]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_plane_scaling@planes-downscale-factor-0-25.html
* igt@kms_pm_backlight@bad-brightness:
- shard-dg2-set2: [SKIP][476] ([Intel XE#2136]) -> [SKIP][477] ([Intel XE#870]) +1 other test skip
[476]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_pm_backlight@bad-brightness.html
[477]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@kms_pm_backlight@bad-brightness.html
* igt@kms_pm_backlight@brightness-with-dpms:
- shard-dg2-set2: [SKIP][478] ([Intel XE#2938]) -> [SKIP][479] ([Intel XE#2136])
[478]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_pm_backlight@brightness-with-dpms.html
[479]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_pm_backlight@brightness-with-dpms.html
* igt@kms_pm_dc@dc3co-vpb-simulation:
- shard-dg2-set2: [SKIP][480] ([Intel XE#1122]) -> [SKIP][481] ([Intel XE#2136] / [Intel XE#2351])
[480]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_pm_dc@dc3co-vpb-simulation.html
[481]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_pm_dc@dc3co-vpb-simulation.html
* igt@kms_pm_dc@dc5-psr:
- shard-dg2-set2: [SKIP][482] ([Intel XE#1129]) -> [SKIP][483] ([Intel XE#2136])
[482]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_pm_dc@dc5-psr.html
[483]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_pm_dc@dc5-psr.html
* igt@kms_pm_dc@dc6-dpms:
- shard-dg2-set2: [SKIP][484] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][485] ([Intel XE#908])
[484]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_pm_dc@dc6-dpms.html
[485]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_pm_dc@dc6-dpms.html
* igt@kms_pm_dc@dc6-psr:
- shard-dg2-set2: [SKIP][486] ([Intel XE#1129]) -> [SKIP][487] ([Intel XE#2136] / [Intel XE#2351])
[486]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_pm_dc@dc6-psr.html
[487]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_pm_dc@dc6-psr.html
* igt@kms_pm_dc@deep-pkgc:
- shard-dg2-set2: [SKIP][488] ([Intel XE#908]) -> [SKIP][489] ([Intel XE#2136])
[488]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_pm_dc@deep-pkgc.html
[489]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_pm_dc@deep-pkgc.html
* igt@kms_pm_lpsp@kms-lpsp:
- shard-dg2-set2: [FAIL][490] ([Intel XE#3527]) -> [SKIP][491] ([Intel XE#2136])
[490]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-463/igt@kms_pm_lpsp@kms-lpsp.html
[491]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_pm_lpsp@kms-lpsp.html
* igt@kms_pm_rpm@basic-pci-d3-state:
- shard-dg2-set2: [DMESG-WARN][492] ([Intel XE#1727] / [Intel XE#3468]) -> [SKIP][493] ([Intel XE#2446])
[492]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_pm_rpm@basic-pci-d3-state.html
[493]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_pm_rpm@basic-pci-d3-state.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-dg2-set2: [SKIP][494] ([Intel XE#2446]) -> [DMESG-WARN][495] ([Intel XE#1727] / [Intel XE#3468])
[494]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
[495]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area:
- shard-dg2-set2: [SKIP][496] ([Intel XE#2136]) -> [SKIP][497] ([Intel XE#1489]) +8 other tests skip
[496]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html
[497]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area:
- shard-dg2-set2: [SKIP][498] ([Intel XE#1489]) -> [SKIP][499] ([Intel XE#2136]) +6 other tests skip
[498]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html
[499]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html
* igt@kms_psr2_su@page_flip-nv12:
- shard-dg2-set2: [SKIP][500] ([Intel XE#2136]) -> [SKIP][501] ([Intel XE#1122])
[500]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_psr2_su@page_flip-nv12.html
[501]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_psr2_su@page_flip-nv12.html
* igt@kms_psr@fbc-pr-sprite-plane-onoff:
- shard-dg2-set2: [SKIP][502] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][503] ([Intel XE#2136] / [Intel XE#2351]) +4 other tests skip
[502]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_psr@fbc-pr-sprite-plane-onoff.html
[503]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_psr@fbc-pr-sprite-plane-onoff.html
* igt@kms_psr@fbc-psr-sprite-plane-move:
- shard-dg2-set2: [SKIP][504] ([Intel XE#2136] / [Intel XE#2351]) -> [SKIP][505] ([Intel XE#2850] / [Intel XE#929]) +4 other tests skip
[504]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_psr@fbc-psr-sprite-plane-move.html
[505]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_psr@fbc-psr-sprite-plane-move.html
* igt@kms_psr@fbc-psr2-primary-render:
- shard-dg2-set2: [SKIP][506] ([Intel XE#2136]) -> [SKIP][507] ([Intel XE#2850] / [Intel XE#929]) +11 other tests skip
[506]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_psr@fbc-psr2-primary-render.html
[507]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@kms_psr@fbc-psr2-primary-render.html
* igt@kms_psr@psr-sprite-plane-onoff:
- shard-dg2-set2: [SKIP][508] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][509] ([Intel XE#2351])
[508]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_psr@psr-sprite-plane-onoff.html
[509]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@kms_psr@psr2-cursor-plane-onoff:
- shard-dg2-set2: [SKIP][510] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][511] ([Intel XE#2136]) +7 other tests skip
[510]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-463/igt@kms_psr@psr2-cursor-plane-onoff.html
[511]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_psr@psr2-cursor-plane-onoff.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
- shard-dg2-set2: [SKIP][512] ([Intel XE#1127]) -> [SKIP][513] ([Intel XE#2423] / [i915#2575]) +1 other test skip
[512]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
[513]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-90:
- shard-dg2-set2: [SKIP][514] ([Intel XE#3414]) -> [SKIP][515] ([Intel XE#2423] / [i915#2575]) +4 other tests skip
[514]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html
[515]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][516] ([Intel XE#2426]) -> [FAIL][517] ([Intel XE#1729])
[516]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern.html
[517]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern.html
- shard-dg2-set2: [SKIP][518] ([Intel XE#2423] / [i915#2575]) -> [SKIP][519] ([Intel XE#362])
[518]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@kms_tiled_display@basic-test-pattern.html
[519]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-dg2-set2: [SKIP][520] ([Intel XE#1500]) -> [SKIP][521] ([Intel XE#2423] / [i915#2575])
[520]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[521]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_vblank@ts-continuation-suspend:
- shard-dg2-set2: [SKIP][522] ([Intel XE#2423] / [i915#2575]) -> [ABORT][523] ([Intel XE#1034] / [Intel XE#2625])
[522]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_vblank@ts-continuation-suspend.html
[523]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@kms_vblank@ts-continuation-suspend.html
* igt@kms_vrr@cmrr:
- shard-dg2-set2: [SKIP][524] ([Intel XE#2423] / [i915#2575]) -> [SKIP][525] ([Intel XE#2168])
[524]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@kms_vrr@cmrr.html
[525]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@kms_vrr@cmrr.html
* igt@kms_writeback@writeback-check-output:
- shard-dg2-set2: [SKIP][526] ([Intel XE#756]) -> [SKIP][527] ([Intel XE#2423] / [i915#2575])
[526]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@kms_writeback@writeback-check-output.html
[527]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@kms_writeback@writeback-check-output.html
* igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
- shard-dg2-set2: [SKIP][528] ([Intel XE#2423] / [i915#2575]) -> [SKIP][529] ([Intel XE#1091] / [Intel XE#2849])
[528]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
[529]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
* igt@xe_copy_basic@mem-copy-linear-0xfffe:
- shard-dg2-set2: [SKIP][530] ([Intel XE#1123]) -> [SKIP][531] ([Intel XE#1130]) +1 other test skip
[530]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@xe_copy_basic@mem-copy-linear-0xfffe.html
[531]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@xe_copy_basic@mem-copy-linear-0xfffe.html
* igt@xe_copy_basic@mem-set-linear-0x3fff:
- shard-dg2-set2: [SKIP][532] ([Intel XE#1130]) -> [SKIP][533] ([Intel XE#1126]) +1 other test skip
[532]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@xe_copy_basic@mem-set-linear-0x3fff.html
[533]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_copy_basic@mem-set-linear-0x3fff.html
* igt@xe_eudebug@basic-close:
- shard-dg2-set2: [SKIP][534] ([Intel XE#2905]) -> [SKIP][535] ([Intel XE#1130]) +9 other tests skip
[534]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@xe_eudebug@basic-close.html
[535]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_eudebug@basic-close.html
* igt@xe_eudebug_online@basic-breakpoint:
- shard-dg2-set2: [SKIP][536] ([Intel XE#1130]) -> [SKIP][537] ([Intel XE#2905]) +10 other tests skip
[536]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@xe_eudebug_online@basic-breakpoint.html
[537]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@xe_eudebug_online@basic-breakpoint.html
* igt@xe_evict@evict-beng-large-external:
- shard-dg2-set2: [DMESG-WARN][538] -> [SKIP][539] ([Intel XE#1130])
[538]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@xe_evict@evict-beng-large-external.html
[539]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_evict@evict-beng-large-external.html
* igt@xe_exec_balancer@twice-cm-parallel-rebind:
- shard-dg2-set2: [DMESG-WARN][540] ([Intel XE#1727]) -> [SKIP][541] ([Intel XE#1130]) +4 other tests skip
[540]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@xe_exec_balancer@twice-cm-parallel-rebind.html
[541]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@xe_exec_balancer@twice-cm-parallel-rebind.html
* igt@xe_exec_fault_mode@once-bindexecqueue-userptr-invalidate-prefetch:
- shard-dg2-set2: [SKIP][542] ([Intel XE#288]) -> [SKIP][543] ([Intel XE#1130]) +23 other tests skip
[542]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@xe_exec_fault_mode@once-bindexecqueue-userptr-invalidate-prefetch.html
[543]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_exec_fault_mode@once-bindexecqueue-userptr-invalidate-prefetch.html
* igt@xe_exec_fault_mode@once-userptr-invalidate-race-prefetch:
- shard-dg2-set2: [SKIP][544] ([Intel XE#1130]) -> [SKIP][545] ([Intel XE#288]) +19 other tests skip
[544]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@xe_exec_fault_mode@once-userptr-invalidate-race-prefetch.html
[545]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@xe_exec_fault_mode@once-userptr-invalidate-race-prefetch.html
* igt@xe_exec_mix_modes@exec-simple-batch-store-lr:
- shard-dg2-set2: [SKIP][546] ([Intel XE#1130]) -> [SKIP][547] ([Intel XE#2360])
[546]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@xe_exec_mix_modes@exec-simple-batch-store-lr.html
[547]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@xe_exec_mix_modes@exec-simple-batch-store-lr.html
* igt@xe_exec_threads@threads-bal-shared-vm-userptr:
- shard-dg2-set2: [SKIP][548] ([Intel XE#1130]) -> [DMESG-WARN][549] ([Intel XE#1727])
[548]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@xe_exec_threads@threads-bal-shared-vm-userptr.html
[549]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@xe_exec_threads@threads-bal-shared-vm-userptr.html
* igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ct_init:
- shard-bmg: [DMESG-WARN][550] ([Intel XE#3343]) -> [DMESG-WARN][551] ([Intel XE#3343] / [Intel XE#3468])
[550]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-2/igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ct_init.html
[551]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ct_init.html
* igt@xe_fault_injection@inject-fault-probe-function-xe_sriov_init:
- shard-bmg: [DMESG-WARN][552] ([Intel XE#3467]) -> [DMESG-WARN][553] ([Intel XE#3467] / [Intel XE#3468])
[552]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-1/igt@xe_fault_injection@inject-fault-probe-function-xe_sriov_init.html
[553]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@xe_fault_injection@inject-fault-probe-function-xe_sriov_init.html
* igt@xe_fault_injection@inject-fault-probe-function-xe_uc_fw_init:
- shard-dg2-set2: [SKIP][554] ([Intel XE#1130]) -> [DMESG-WARN][555] ([Intel XE#3343])
[554]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@xe_fault_injection@inject-fault-probe-function-xe_uc_fw_init.html
[555]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-435/igt@xe_fault_injection@inject-fault-probe-function-xe_uc_fw_init.html
* igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_create:
- shard-bmg: [FAIL][556] ([Intel XE#3499]) -> [DMESG-FAIL][557] ([Intel XE#3467])
[556]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_create.html
[557]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-7/igt@xe_fault_injection@vm-bind-fail-vm_bind_ioctl_ops_create.html
* igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_prepare:
- shard-bmg: [DMESG-FAIL][558] ([Intel XE#3467]) -> [FAIL][559] ([Intel XE#3499])
[558]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-7/igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_prepare.html
[559]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-1/igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_prepare.html
* igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_run:
- shard-dg2-set2: [DMESG-WARN][560] ([Intel XE#3467]) -> [SKIP][561] ([Intel XE#1130]) +1 other test skip
[560]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_run.html
[561]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_run.html
- shard-bmg: [FAIL][562] ([Intel XE#3499]) -> [DMESG-FAIL][563] ([Intel XE#3467] / [Intel XE#3468])
[562]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-5/igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_run.html
[563]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-2/igt@xe_fault_injection@vm-bind-fail-xe_pt_update_ops_run.html
* igt@xe_fault_injection@vm-bind-fail-xe_vma_ops_alloc:
- shard-bmg: [DMESG-FAIL][564] ([Intel XE#3467] / [Intel XE#3468]) -> [FAIL][565] ([Intel XE#3499])
[564]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-5/igt@xe_fault_injection@vm-bind-fail-xe_vma_ops_alloc.html
[565]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-5/igt@xe_fault_injection@vm-bind-fail-xe_vma_ops_alloc.html
* igt@xe_fault_injection@vm-create-fail-xe_exec_queue_create_bind:
- shard-dg2-set2: [SKIP][566] ([Intel XE#1130]) -> [DMESG-WARN][567] ([Intel XE#3467])
[566]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@xe_fault_injection@vm-create-fail-xe_exec_queue_create_bind.html
[567]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@xe_fault_injection@vm-create-fail-xe_exec_queue_create_bind.html
* igt@xe_fault_injection@vm-create-fail-xe_pt_create:
- shard-bmg: [DMESG-WARN][568] ([Intel XE#3467] / [Intel XE#3468]) -> [DMESG-WARN][569] ([Intel XE#3467])
[568]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-bmg-3/igt@xe_fault_injection@vm-create-fail-xe_pt_create.html
[569]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-bmg-6/igt@xe_fault_injection@vm-create-fail-xe_pt_create.html
* igt@xe_huc_copy@huc_copy:
- shard-dg2-set2: [SKIP][570] ([Intel XE#255]) -> [SKIP][571] ([Intel XE#1130])
[570]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@xe_huc_copy@huc_copy.html
[571]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_huc_copy@huc_copy.html
* igt@xe_media_fill@media-fill:
- shard-dg2-set2: [SKIP][572] ([Intel XE#1130]) -> [SKIP][573] ([Intel XE#560])
[572]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@xe_media_fill@media-fill.html
[573]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_media_fill@media-fill.html
* igt@xe_module_load@reload:
- shard-dg2-set2: [FAIL][574] ([Intel XE#3546]) -> [DMESG-WARN][575] ([Intel XE#3467])
[574]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@xe_module_load@reload.html
[575]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-463/igt@xe_module_load@reload.html
* igt@xe_oa@oa-unit-concurrent-oa-buffer-read:
- shard-dg2-set2: [SKIP][576] ([Intel XE#1130]) -> [SKIP][577] ([Intel XE#3573]) +5 other tests skip
[576]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@xe_oa@oa-unit-concurrent-oa-buffer-read.html
[577]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_oa@oa-unit-concurrent-oa-buffer-read.html
* igt@xe_oa@syncs-ufence-wait:
- shard-dg2-set2: [SKIP][578] ([Intel XE#3573]) -> [SKIP][579] ([Intel XE#1130]) +6 other tests skip
[578]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@xe_oa@syncs-ufence-wait.html
[579]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@xe_oa@syncs-ufence-wait.html
* igt@xe_pat@pat-index-xe2:
- shard-dg2-set2: [SKIP][580] ([Intel XE#977]) -> [SKIP][581] ([Intel XE#1130])
[580]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@xe_pat@pat-index-xe2.html
[581]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_pat@pat-index-xe2.html
* igt@xe_peer2peer@write:
- shard-dg2-set2: [FAIL][582] ([Intel XE#1173]) -> [SKIP][583] ([Intel XE#1061])
[582]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-463/igt@xe_peer2peer@write.html
[583]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_peer2peer@write.html
* igt@xe_pm@d3cold-mocs:
- shard-dg2-set2: [SKIP][584] ([Intel XE#2284]) -> [SKIP][585] ([Intel XE#1130])
[584]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-463/igt@xe_pm@d3cold-mocs.html
[585]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_pm@d3cold-mocs.html
* igt@xe_pm@d3cold-multiple-execs:
- shard-dg2-set2: [SKIP][586] ([Intel XE#1130]) -> [SKIP][587] ([Intel XE#2284] / [Intel XE#366]) +1 other test skip
[586]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@xe_pm@d3cold-multiple-execs.html
[587]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_pm@d3cold-multiple-execs.html
* igt@xe_pm@d3hot-mmap-vram:
- shard-dg2-set2: [DMESG-WARN][588] ([Intel XE#1727] / [Intel XE#3468]) -> [SKIP][589] ([Intel XE#1130]) +1 other test skip
[588]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@xe_pm@d3hot-mmap-vram.html
[589]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@xe_pm@d3hot-mmap-vram.html
* igt@xe_pm@s3-d3cold-basic-exec:
- shard-dg2-set2: [SKIP][590] ([Intel XE#2284] / [Intel XE#366]) -> [SKIP][591] ([Intel XE#1130])
[590]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@xe_pm@s3-d3cold-basic-exec.html
[591]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_pm@s3-d3cold-basic-exec.html
* igt@xe_pm@s4-basic:
- shard-dg2-set2: [SKIP][592] ([Intel XE#1130]) -> [DMESG-WARN][593] ([Intel XE#1727] / [Intel XE#3468]) +1 other test dmesg-warn
[592]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@xe_pm@s4-basic.html
[593]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@xe_pm@s4-basic.html
* igt@xe_pm@s4-multiple-execs:
- shard-dg2-set2: [SKIP][594] ([Intel XE#1130]) -> [DMESG-WARN][595] ([Intel XE#3468])
[594]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-434/igt@xe_pm@s4-multiple-execs.html
[595]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_pm@s4-multiple-execs.html
* igt@xe_pm@s4-vm-bind-userptr:
- shard-dg2-set2: [SKIP][596] ([Intel XE#1130]) -> [DMESG-WARN][597] ([Intel XE#2280] / [Intel XE#3468])
[596]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@xe_pm@s4-vm-bind-userptr.html
[597]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-432/igt@xe_pm@s4-vm-bind-userptr.html
* igt@xe_query@multigpu-query-engines:
- shard-dg2-set2: [SKIP][598] ([Intel XE#1130]) -> [SKIP][599] ([Intel XE#944]) +4 other tests skip
[598]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-466/igt@xe_query@multigpu-query-engines.html
[599]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-436/igt@xe_query@multigpu-query-engines.html
* igt@xe_query@multigpu-query-oa-units:
- shard-dg2-set2: [SKIP][600] ([Intel XE#944]) -> [SKIP][601] ([Intel XE#1130]) +2 other tests skip
[600]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-432/igt@xe_query@multigpu-query-oa-units.html
[601]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_query@multigpu-query-oa-units.html
* igt@xe_sriov_flr@flr-each-isolation:
- shard-dg2-set2: [SKIP][602] ([Intel XE#3342]) -> [SKIP][603] ([Intel XE#1130])
[602]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-436/igt@xe_sriov_flr@flr-each-isolation.html
[603]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@xe_sriov_flr@flr-each-isolation.html
* igt@xe_tlb@basic-tlb:
- shard-dg2-set2: [FAIL][604] ([Intel XE#2922]) -> [SKIP][605] ([Intel XE#1130])
[604]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@xe_tlb@basic-tlb.html
[605]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-466/igt@xe_tlb@basic-tlb.html
* igt@xe_wedged@wedged-mode-toggle:
- shard-dg2-set2: [ABORT][606] ([Intel XE#3075] / [Intel XE#3084]) -> [SKIP][607] ([Intel XE#1130])
[606]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8125/shard-dg2-435/igt@xe_wedged@wedged-mode-toggle.html
[607]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/shard-dg2-434/igt@xe_wedged@wedged-mode-toggle.html
[Intel XE#1034]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1034
[Intel XE#1035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1035
[Intel XE#1061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1061
[Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
[Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122
[Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1129
[Intel XE#1130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1130
[Intel XE#1135]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1135
[Intel XE#1137]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1137
[Intel XE#1173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1173
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1192]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1192
[Intel XE#1358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1358
[Intel XE#1430]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1430
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[Intel XE#1473]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1473
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
[Intel XE#1500]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1500
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1616
[Intel XE#1695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1695
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#1885]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1885
[Intel XE#2050]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2050
[Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
[Intel XE#2136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2136
[Intel XE#2141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2141
[Intel XE#2159]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2159
[Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2280]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2280
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
[Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
[Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328
[Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
[Intel XE#2333]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2333
[Intel XE#2351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2351
[Intel XE#2360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2360
[Intel XE#2370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2370
[Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
[Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
[Intel XE#2423]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2423
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2446]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2446
[Intel XE#2457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2457
[Intel XE#2472]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2472
[Intel XE#2514]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2514
[Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#2625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2625
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[Intel XE#2715]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2715
[Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#2882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2882
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
[Intel XE#2905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2905
[Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
[Intel XE#2919]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2919
[Intel XE#2922]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2922
[Intel XE#2938]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2938
[Intel XE#2998]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2998
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#3075]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3075
[Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
[Intel XE#3084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3084
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
[Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#3249]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3249
[Intel XE#3309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3309
[Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
[Intel XE#3339]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3339
[Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
[Intel XE#3343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3343
[Intel XE#3371]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3371
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3421
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3442
[Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
[Intel XE#3467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3467
[Intel XE#3468]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3468
[Intel XE#3486]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3486
[Intel XE#3487]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3487
[Intel XE#3499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3499
[Intel XE#3515]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3515
[Intel XE#3521]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3521
[Intel XE#3527]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3527
[Intel XE#3546]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3546
[Intel XE#356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/356
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[Intel XE#361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/361
[Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#560]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/560
[Intel XE#569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/569
[Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
[Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
[Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
[Intel XE#619]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/619
[Intel XE#623]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/623
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/658
[Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
[Intel XE#756]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/756
[Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#873]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/873
[Intel XE#877]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/877
[Intel XE#886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/886
[Intel XE#908]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/908
[Intel XE#911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/911
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
[i915#2575]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2575
[i915#5274]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274
Build changes
-------------
* IGT: IGT_8125 -> IGTPW_12193
* Linux: xe-2275-6510562075d8541c218e72188f9ef339f8ba371f -> xe-2276-ae312905c5a9fc7ce599a74422f068725101c475
IGTPW_12193: 12193
IGT_8125: fbfda23ba003aab3454436d95c233dcf5e3bee54 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-2275-6510562075d8541c218e72188f9ef339f8ba371f: 6510562075d8541c218e72188f9ef339f8ba371f
xe-2276-ae312905c5a9fc7ce599a74422f068725101c475: ae312905c5a9fc7ce599a74422f068725101c475
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12193/index.html
[-- Attachment #2: Type: text/html, Size: 184880 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
[not found] ` <CAJ=qYWRYeg7mbbQGAGHbkHu8sAC0+Rq5J2CfZinFVniX7jsjMg@mail.gmail.com>
@ 2024-11-26 8:07 ` Juha-Pekka Heikkilä
2024-11-26 12:59 ` Rodrigo Vivi
0 siblings, 1 reply; 17+ messages in thread
From: Juha-Pekka Heikkilä @ 2024-11-26 8:07 UTC (permalink / raw)
To: Development mailing list for IGT GPU Tools
Seems I accidentally replied only to Rodrigo so I'll add igt-dev back here.
On Mon, Nov 25, 2024 at 10:03 PM Juha-Pekka Heikkilä
<juhapekka.heikkila@gmail.com> wrote:
>
> On Mon, Nov 25, 2024 at 8:20 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> >
> > On Mon, Nov 25, 2024 at 06:19:58PM +0200, Juha-Pekka Heikkila wrote:
> > > Add hibernate test which bring entire system down for short
> > > hibernate. This mode is added to suspend tests to be run
> > > manually with '-r' flag because this is not ci friendly test,
> > > on hibernate ci would lose connection to the hibernated box.
> >
> > I know that nowadays it is a beast to get hibernate to work in the distros,
> > but afaik our CI is prepared for that, otherwise we wouldn't be able to
> > get these:
> >
> > https://intel-gfx-ci.01.org/tree/intel-xe/index.html?testfilter=s4
>
> If you go see those test machine bootlogs you see there is no resume
> configured. I think all these current s4 tests work with pm_test hence
> also original problem where tests didn't reproduce that broken ccs
> after resume. If you try running on your own box any of these s4 tests
> you'll see they don't go fully down. I wanted to have a test that does
> the same as real hibernate.
>
> >
> > >
> > > For this test to work kernel resume point need to be set using swapfile, from
> > > kernel command line is checked if there is found something along the lines of
> > > "resume=/dev/nvme0n1p2 resume_offset=73527296" or so to verify hibernate
> > > will be successfull.
> >
> > Indeed painful nowadays... I can't even believe this gap came from user
> > report... is anyone really still using hibernation nowadays?! :)
> >
> > >
> > > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > > ---
> > > tests/intel/kms_ccs.c | 162 +++++++++++++++++++++++++++++++++++++++++-
> > > 1 file changed, 159 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
> > > index 3e9a57863..fd2fe9d3d 100644
> > > --- a/tests/intel/kms_ccs.c
> > > +++ b/tests/intel/kms_ccs.c
> > > @@ -190,6 +190,7 @@ typedef struct {
> > > bool user_seed;
> > > enum igt_commit_style commit;
> > > int fb_list_length;
> > > + bool do_hibernate;
> > > struct {
> > > struct igt_fb fb;
> > > int width, height;
> > > @@ -271,6 +272,154 @@ static const struct {
> > > */
> > > #define MAX_SPRITE_PLANE_WIDTH 2000
> > >
> > > +/* constants for hibenate test */
> > > +#define RTC_WAKE_CMD "rtcwake -m no -s %d"
> >
> > Why are you calling rtcwake directly instead of using
> > igt_system_suspend_autoresume(SUSPEND_STATE_DISK...) ?!
> >
> > Please check lib/igt_aux lib/igt_pm and tests/xe/xe_pm
>
> I wanted rtc only to wake up the machine. On
> igt_system_suspend_autoresume(..) I'd get pm_test handling which I
> want to avoid here.
>
> >
> > > +#define PROC_CMDLINE "/proc/cmdline"
> > > +#define SYS_POWER_STATE "/sys/power/state"
> > > +#define GRUB_CFG_PATH "/boot/grub/grub.cfg"
> > > +
> > > +static void check_hibernation_support(void)
> > > +{
> > > + int fd;
> > > + char buffer[2048];
> > > + ssize_t bytes_read;
> > > + FILE *cmdline;
> > > +
> > > + /* Check if hibernation is supported in /sys/power/state */
> > > + fd = open(SYS_POWER_STATE, O_RDONLY);
> > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > + bytes_read = read(fd, buffer, sizeof(buffer) - 1);
> > > + close(fd);
> > > +
> > > + igt_require_f(bytes_read > 0, "Failed to read /sys/power/state");
> > > +
> > > + buffer[bytes_read] = '\0';
> > > + igt_require_f(strstr(buffer, "disk") != NULL,
> > > + "Hibernation (suspend to disk) is not supported on this system.\n");
> > > +
> > > + /* Check if resume is configured in kernel command line */
> > > + cmdline = fopen(PROC_CMDLINE, "r");
> > > + igt_require_f(cmdline, "Failed to open /proc/cmdline");
> > > + fread(buffer, 1, sizeof(buffer) - 1, cmdline);
> > > + fclose(cmdline);
> > > +
> > > + igt_require_f(strstr(buffer, "resume="),
> > > + "Kernel does not have 'resume' parameter configured for hibernation.\n");
> > > +}
> >
> > we should probably have this in the igt_pm lib to be used in other places
> > like xe_pm. I remember we had discussions when s4 started failing in CI,
> > but apparently the solution was to make CI to work with it instead of
> > protecting our s4 tests...
>
> I was last week talking with Jari Tahvanainen about this. Our ci is
> not configured for the machines really hibernating, he suggested we
> first start with one test, start to run it in special box, and we go
> on from there .. so, here we are :)
> I agree final destination for this function should be in lib/ like in
> igt_pm or so.
>
> >
> > > +
> > > +static void set_rtc_wake_timer(int seconds)
> > > +{
> > > + char command[256];
> > > +
> > > + snprintf(command, sizeof(command), RTC_WAKE_CMD, seconds);
> > > +
> > > + igt_require_f(system(command) == 0,
> > > + "Failed to set RTC wake timer.\n");
> > > +}
> > > +
> > > +static void hibernate_system(void)
> > > +{
> > > + int fd;
> > > +
> > > + fd = open(SYS_POWER_STATE, O_WRONLY);
> > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > +
> > > + if (write(fd, "disk", 4) != 4) {
> > > + close(fd);
> > > + igt_require_f(0, "Failed to write 'disk' to /sys/power/state");
> > > + }
> > > + close(fd);
> > > +}
> > > +
> > > +static void ensure_grub_boots_same_kernel(void)
> >
> > I don't believe that this should be to the test case to ensure.
> > This should be ensured by the infra to support these s4 testcases.
>
> This is bit so-so. If guys would run this test on their own boxes to
> do some debugging, forgetting to always set the correct kernel for the
> next in-test reboot would cause incorrect results.
>
> >
> > > +{
> > > + char cmdline[1024];
> > > + char current_kernel[256];
> > > + char last_menuentry[512] = "";
> > > + char grub_entry[512];
> > > + char command[1024];
> > > + FILE *cmdline_file, *grub_cfg;
> > > + char line[1024];
> > > + bool kernel_found = false;
> > > + char *kernel_arg;
> > > + char *kernel_end;
> > > +
> > > + /* Read /proc/cmdline to get the current kernel image */
> > > + cmdline_file = fopen(PROC_CMDLINE, "r");
> > > + igt_require_f(cmdline_file, "Failed to open /proc/cmdline");
> > > +
> > > + if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
> > > + fclose(cmdline_file);
> > > + igt_require_f(0, "Failed to read /proc/cmdline");
> > > + }
> > > + fclose(cmdline_file);
> > > +
> > > + /* Parse the kernel image from cmdline */
> > > + kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
> > > + igt_require_f(kernel_arg, "BOOT_IMAGE= not found in /proc/cmdline\n");
> > > +
> > > + kernel_arg += strlen("BOOT_IMAGE=");
> > > + kernel_end = strchr(kernel_arg, ' ');
> > > +
> > > + if (!kernel_end)
> > > + kernel_end = kernel_arg + strlen(kernel_arg);
> > > +
> > > + snprintf(current_kernel, sizeof(current_kernel), "%.*s",
> > > + (int)(kernel_end - kernel_arg), kernel_arg);
> > > + igt_debug("Current kernel image: %s\n", current_kernel);
> > > +
> > > + /* Open GRUB config file to find matching entry */
> > > + grub_cfg = fopen(GRUB_CFG_PATH, "r");
> > > + igt_require_f(grub_cfg, "Failed to open GRUB configuration file");
> > > +
> > > +
> > > + while (fgets(line, sizeof(line), grub_cfg)) {
> > > + /* Check if the line contains a menuentry */
> > > + if (strstr(line, "menuentry")) {
> > > + /* Store the menuentry line */
> > > + char *start = strchr(line, '\'');
> > > + char *end = start ? strchr(start + 1, '\'') : NULL;
> > > +
> > > + if (start && end) {
> > > + snprintf(last_menuentry,
> > > + sizeof(last_menuentry),
> > > + "%.*s", (int)(end - start - 1),
> > > + start + 1);
> > > + }
> > > + }
> > > +
> > > + /* Check if the current line contains the kernel */
> > > + if (strstr(line, current_kernel)) {
> > > + /* Use the last seen menuentry as the match */
> > > + snprintf(grub_entry, sizeof(grub_entry), "%s",
> > > + last_menuentry);
> > > + kernel_found = true;
> > > + break;
> > > + }
> > > + }
> > > +
> > > + fclose(grub_cfg);
> > > +
> > > + igt_require_f(kernel_found, "Failed to find matching GRUB entry for kernel: %s\n",
> > > + current_kernel);
> > > +
> > > + /* Set the GRUB boot target using grub-reboot */
> > > + snprintf(command, sizeof(command), "grub-reboot \"%s\"", grub_entry);
> > > + igt_require_f(system(command) == 0, "Failed to set GRUB boot target to: %s\n",
> > > + grub_entry);
> > > +
> > > + igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
> > > + current_kernel, grub_entry);
> > > +}
> > > +
> > > +static void hibernate_autoresume(int resume_delay)
> > > +{
> > > + check_hibernation_support();
> > > + set_rtc_wake_timer(resume_delay);
> > > + ensure_grub_boots_same_kernel();
> > > + hibernate_system();
> > > +}
> > > +
> > > static void addfb_init(struct igt_fb *fb, struct drm_mode_fb_cmd2 *f)
> > > {
> > > int i;
> > > @@ -839,8 +988,11 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
> > >
> > > if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
> > > if (data->flags & TEST_SUSPEND && fb_flags & FB_COMPRESSED) {
> > > - igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > - SUSPEND_TEST_NONE);
> > > + if (data->do_hibernate)
> > > + hibernate_autoresume(30);
> > > + else
> > > + igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > + SUSPEND_TEST_NONE);
> > >
> > > /* on resume check flat ccs is still compressed */
> > > if (is_xe_device(data->drm_fd) &&
> > > @@ -1044,6 +1196,9 @@ static int opt_handler(int opt, int opt_index, void *opt_data)
> > > data->user_seed = true;
> > > data->seed = strtoul(optarg, NULL, 0);
> > > break;
> > > + case 'r':
> > > + data->do_hibernate = true;
> > > + break;
> > > default:
> > > return IGT_OPT_HANDLER_ERROR;
> > > }
> > > @@ -1056,9 +1211,10 @@ static data_t data;
> > > static const char *help_str =
> > > " -c\t\tCheck the presence of compression meta-data\n"
> > > " -s <seed>\tSeed for random number generator\n"
> > > +" -r\t\tOn suspend test do full hibernate with reboot\n"
> > > ;
> > >
> > > -igt_main_args("cs:", NULL, help_str, opt_handler, &data)
> > > +igt_main_args("csr:", NULL, help_str, opt_handler, &data)
> > > {
> > > igt_fixture {
> > > data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> > > --
> > > 2.45.2
> > >
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
2024-11-26 8:07 ` Juha-Pekka Heikkilä
@ 2024-11-26 12:59 ` Rodrigo Vivi
2024-11-26 17:12 ` Juha-Pekka Heikkilä
0 siblings, 1 reply; 17+ messages in thread
From: Rodrigo Vivi @ 2024-11-26 12:59 UTC (permalink / raw)
To: Juha-Pekka Heikkilä; +Cc: Development mailing list for IGT GPU Tools
On Tue, Nov 26, 2024 at 10:07:37AM +0200, Juha-Pekka Heikkilä wrote:
> Seems I accidentally replied only to Rodrigo so I'll add igt-dev back here.
>
> On Mon, Nov 25, 2024 at 10:03 PM Juha-Pekka Heikkilä
> <juhapekka.heikkila@gmail.com> wrote:
> >
> > On Mon, Nov 25, 2024 at 8:20 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> > >
> > > On Mon, Nov 25, 2024 at 06:19:58PM +0200, Juha-Pekka Heikkila wrote:
> > > > Add hibernate test which bring entire system down for short
> > > > hibernate. This mode is added to suspend tests to be run
> > > > manually with '-r' flag because this is not ci friendly test,
> > > > on hibernate ci would lose connection to the hibernated box.
> > >
> > > I know that nowadays it is a beast to get hibernate to work in the distros,
> > > but afaik our CI is prepared for that, otherwise we wouldn't be able to
> > > get these:
> > >
> > > https://intel-gfx-ci.01.org/tree/intel-xe/index.html?testfilter=s4
> >
> > If you go see those test machine bootlogs you see there is no resume
> > configured. I think all these current s4 tests work with pm_test hence
> > also original problem where tests didn't reproduce that broken ccs
> > after resume. If you try running on your own box any of these s4 tests
> > you'll see they don't go fully down. I wanted to have a test that does
> > the same as real hibernate.
hmmm... something indeed changed because of CI.
I originally implemented them without SUSPEND_TEST_DEVICES, in a way that
the machine was going fully down in my ADL+DG2 machine.
But commit 4b767566bbc ("tests/intel/xe_pm: S4 to go up to devices only")
modified that to make it work for CI.
So, perhaps we can do both, have the manual setup with -r and no TEST
and have the one with TEST but not fully down.
Have you reproduced the CSS reported bug? Then have you tried the solution
with the TEST?
> >
> > >
> > > >
> > > > For this test to work kernel resume point need to be set using swapfile, from
> > > > kernel command line is checked if there is found something along the lines of
> > > > "resume=/dev/nvme0n1p2 resume_offset=73527296" or so to verify hibernate
> > > > will be successfull.
> > >
> > > Indeed painful nowadays... I can't even believe this gap came from user
> > > report... is anyone really still using hibernation nowadays?! :)
> > >
> > > >
> > > > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > > > ---
> > > > tests/intel/kms_ccs.c | 162 +++++++++++++++++++++++++++++++++++++++++-
> > > > 1 file changed, 159 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
> > > > index 3e9a57863..fd2fe9d3d 100644
> > > > --- a/tests/intel/kms_ccs.c
> > > > +++ b/tests/intel/kms_ccs.c
> > > > @@ -190,6 +190,7 @@ typedef struct {
> > > > bool user_seed;
> > > > enum igt_commit_style commit;
> > > > int fb_list_length;
> > > > + bool do_hibernate;
> > > > struct {
> > > > struct igt_fb fb;
> > > > int width, height;
> > > > @@ -271,6 +272,154 @@ static const struct {
> > > > */
> > > > #define MAX_SPRITE_PLANE_WIDTH 2000
> > > >
> > > > +/* constants for hibenate test */
> > > > +#define RTC_WAKE_CMD "rtcwake -m no -s %d"
> > >
> > > Why are you calling rtcwake directly instead of using
> > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK...) ?!
> > >
> > > Please check lib/igt_aux lib/igt_pm and tests/xe/xe_pm
> >
> > I wanted rtc only to wake up the machine. On
> > igt_system_suspend_autoresume(..) I'd get pm_test handling which I
> > want to avoid here.
you can do that.... just pass SUSPEND_TEST_NONE instead of
SUSPEND_TEST_DEVICES as the second argument. So, a lot of the logic
here can be simplified.
And as I told perhaps we can have 3 cases:
hibernate-manual:
igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
SUSPEND_TEST_NONE);
hibernate-auto:
igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
SUSPEND_TEST_DEVICES);
suspend:
igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
SUSPEND_TEST_NONE);
> >
> > >
> > > > +#define PROC_CMDLINE "/proc/cmdline"
> > > > +#define SYS_POWER_STATE "/sys/power/state"
> > > > +#define GRUB_CFG_PATH "/boot/grub/grub.cfg"
> > > > +
> > > > +static void check_hibernation_support(void)
> > > > +{
> > > > + int fd;
> > > > + char buffer[2048];
> > > > + ssize_t bytes_read;
> > > > + FILE *cmdline;
> > > > +
> > > > + /* Check if hibernation is supported in /sys/power/state */
> > > > + fd = open(SYS_POWER_STATE, O_RDONLY);
> > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > + bytes_read = read(fd, buffer, sizeof(buffer) - 1);
> > > > + close(fd);
> > > > +
> > > > + igt_require_f(bytes_read > 0, "Failed to read /sys/power/state");
> > > > +
> > > > + buffer[bytes_read] = '\0';
> > > > + igt_require_f(strstr(buffer, "disk") != NULL,
> > > > + "Hibernation (suspend to disk) is not supported on this system.\n");
> > > > +
> > > > + /* Check if resume is configured in kernel command line */
> > > > + cmdline = fopen(PROC_CMDLINE, "r");
> > > > + igt_require_f(cmdline, "Failed to open /proc/cmdline");
> > > > + fread(buffer, 1, sizeof(buffer) - 1, cmdline);
> > > > + fclose(cmdline);
> > > > +
> > > > + igt_require_f(strstr(buffer, "resume="),
> > > > + "Kernel does not have 'resume' parameter configured for hibernation.\n");
> > > > +}
> > >
> > > we should probably have this in the igt_pm lib to be used in other places
> > > like xe_pm. I remember we had discussions when s4 started failing in CI,
> > > but apparently the solution was to make CI to work with it instead of
> > > protecting our s4 tests...
> >
> > I was last week talking with Jari Tahvanainen about this. Our ci is
> > not configured for the machines really hibernating, he suggested we
> > first start with one test, start to run it in special box, and we go
> > on from there .. so, here we are :)
> > I agree final destination for this function should be in lib/ like in
> > igt_pm or so.
> >
> > >
> > > > +
> > > > +static void set_rtc_wake_timer(int seconds)
> > > > +{
> > > > + char command[256];
> > > > +
> > > > + snprintf(command, sizeof(command), RTC_WAKE_CMD, seconds);
> > > > +
> > > > + igt_require_f(system(command) == 0,
> > > > + "Failed to set RTC wake timer.\n");
> > > > +}
> > > > +
> > > > +static void hibernate_system(void)
> > > > +{
> > > > + int fd;
> > > > +
> > > > + fd = open(SYS_POWER_STATE, O_WRONLY);
> > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > +
> > > > + if (write(fd, "disk", 4) != 4) {
> > > > + close(fd);
> > > > + igt_require_f(0, "Failed to write 'disk' to /sys/power/state");
> > > > + }
> > > > + close(fd);
> > > > +}
> > > > +
> > > > +static void ensure_grub_boots_same_kernel(void)
> > >
> > > I don't believe that this should be to the test case to ensure.
> > > This should be ensured by the infra to support these s4 testcases.
> >
> > This is bit so-so. If guys would run this test on their own boxes to
> > do some debugging, forgetting to always set the correct kernel for the
> > next in-test reboot would cause incorrect results.
> >
> > >
> > > > +{
> > > > + char cmdline[1024];
> > > > + char current_kernel[256];
> > > > + char last_menuentry[512] = "";
> > > > + char grub_entry[512];
> > > > + char command[1024];
> > > > + FILE *cmdline_file, *grub_cfg;
> > > > + char line[1024];
> > > > + bool kernel_found = false;
> > > > + char *kernel_arg;
> > > > + char *kernel_end;
> > > > +
> > > > + /* Read /proc/cmdline to get the current kernel image */
> > > > + cmdline_file = fopen(PROC_CMDLINE, "r");
> > > > + igt_require_f(cmdline_file, "Failed to open /proc/cmdline");
> > > > +
> > > > + if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
> > > > + fclose(cmdline_file);
> > > > + igt_require_f(0, "Failed to read /proc/cmdline");
> > > > + }
> > > > + fclose(cmdline_file);
> > > > +
> > > > + /* Parse the kernel image from cmdline */
> > > > + kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
> > > > + igt_require_f(kernel_arg, "BOOT_IMAGE= not found in /proc/cmdline\n");
> > > > +
> > > > + kernel_arg += strlen("BOOT_IMAGE=");
> > > > + kernel_end = strchr(kernel_arg, ' ');
> > > > +
> > > > + if (!kernel_end)
> > > > + kernel_end = kernel_arg + strlen(kernel_arg);
> > > > +
> > > > + snprintf(current_kernel, sizeof(current_kernel), "%.*s",
> > > > + (int)(kernel_end - kernel_arg), kernel_arg);
> > > > + igt_debug("Current kernel image: %s\n", current_kernel);
> > > > +
> > > > + /* Open GRUB config file to find matching entry */
> > > > + grub_cfg = fopen(GRUB_CFG_PATH, "r");
> > > > + igt_require_f(grub_cfg, "Failed to open GRUB configuration file");
> > > > +
> > > > +
> > > > + while (fgets(line, sizeof(line), grub_cfg)) {
> > > > + /* Check if the line contains a menuentry */
> > > > + if (strstr(line, "menuentry")) {
> > > > + /* Store the menuentry line */
> > > > + char *start = strchr(line, '\'');
> > > > + char *end = start ? strchr(start + 1, '\'') : NULL;
> > > > +
> > > > + if (start && end) {
> > > > + snprintf(last_menuentry,
> > > > + sizeof(last_menuentry),
> > > > + "%.*s", (int)(end - start - 1),
> > > > + start + 1);
> > > > + }
> > > > + }
> > > > +
> > > > + /* Check if the current line contains the kernel */
> > > > + if (strstr(line, current_kernel)) {
> > > > + /* Use the last seen menuentry as the match */
> > > > + snprintf(grub_entry, sizeof(grub_entry), "%s",
> > > > + last_menuentry);
> > > > + kernel_found = true;
> > > > + break;
> > > > + }
> > > > + }
> > > > +
> > > > + fclose(grub_cfg);
> > > > +
> > > > + igt_require_f(kernel_found, "Failed to find matching GRUB entry for kernel: %s\n",
> > > > + current_kernel);
> > > > +
> > > > + /* Set the GRUB boot target using grub-reboot */
> > > > + snprintf(command, sizeof(command), "grub-reboot \"%s\"", grub_entry);
> > > > + igt_require_f(system(command) == 0, "Failed to set GRUB boot target to: %s\n",
> > > > + grub_entry);
> > > > +
> > > > + igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
> > > > + current_kernel, grub_entry);
> > > > +}
> > > > +
> > > > +static void hibernate_autoresume(int resume_delay)
> > > > +{
> > > > + check_hibernation_support();
> > > > + set_rtc_wake_timer(resume_delay);
> > > > + ensure_grub_boots_same_kernel();
> > > > + hibernate_system();
> > > > +}
> > > > +
> > > > static void addfb_init(struct igt_fb *fb, struct drm_mode_fb_cmd2 *f)
> > > > {
> > > > int i;
> > > > @@ -839,8 +988,11 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
> > > >
> > > > if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
> > > > if (data->flags & TEST_SUSPEND && fb_flags & FB_COMPRESSED) {
> > > > - igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > - SUSPEND_TEST_NONE);
> > > > + if (data->do_hibernate)
> > > > + hibernate_autoresume(30);
> > > > + else
> > > > + igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > + SUSPEND_TEST_NONE);
> > > >
> > > > /* on resume check flat ccs is still compressed */
> > > > if (is_xe_device(data->drm_fd) &&
> > > > @@ -1044,6 +1196,9 @@ static int opt_handler(int opt, int opt_index, void *opt_data)
> > > > data->user_seed = true;
> > > > data->seed = strtoul(optarg, NULL, 0);
> > > > break;
> > > > + case 'r':
> > > > + data->do_hibernate = true;
> > > > + break;
> > > > default:
> > > > return IGT_OPT_HANDLER_ERROR;
> > > > }
> > > > @@ -1056,9 +1211,10 @@ static data_t data;
> > > > static const char *help_str =
> > > > " -c\t\tCheck the presence of compression meta-data\n"
> > > > " -s <seed>\tSeed for random number generator\n"
> > > > +" -r\t\tOn suspend test do full hibernate with reboot\n"
> > > > ;
> > > >
> > > > -igt_main_args("cs:", NULL, help_str, opt_handler, &data)
> > > > +igt_main_args("csr:", NULL, help_str, opt_handler, &data)
> > > > {
> > > > igt_fixture {
> > > > data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> > > > --
> > > > 2.45.2
> > > >
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
2024-11-26 12:59 ` Rodrigo Vivi
@ 2024-11-26 17:12 ` Juha-Pekka Heikkilä
2024-11-27 13:21 ` Juha-Pekka Heikkilä
0 siblings, 1 reply; 17+ messages in thread
From: Juha-Pekka Heikkilä @ 2024-11-26 17:12 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: Development mailing list for IGT GPU Tools
On Tue, Nov 26, 2024 at 3:00 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
>
> On Tue, Nov 26, 2024 at 10:07:37AM +0200, Juha-Pekka Heikkilä wrote:
> > Seems I accidentally replied only to Rodrigo so I'll add igt-dev back here.
> >
> > On Mon, Nov 25, 2024 at 10:03 PM Juha-Pekka Heikkilä
> > <juhapekka.heikkila@gmail.com> wrote:
> > >
> > > On Mon, Nov 25, 2024 at 8:20 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> > > >
> > > > On Mon, Nov 25, 2024 at 06:19:58PM +0200, Juha-Pekka Heikkila wrote:
> > > > > Add hibernate test which bring entire system down for short
> > > > > hibernate. This mode is added to suspend tests to be run
> > > > > manually with '-r' flag because this is not ci friendly test,
> > > > > on hibernate ci would lose connection to the hibernated box.
> > > >
> > > > I know that nowadays it is a beast to get hibernate to work in the distros,
> > > > but afaik our CI is prepared for that, otherwise we wouldn't be able to
> > > > get these:
> > > >
> > > > https://intel-gfx-ci.01.org/tree/intel-xe/index.html?testfilter=s4
> > >
> > > If you go see those test machine bootlogs you see there is no resume
> > > configured. I think all these current s4 tests work with pm_test hence
> > > also original problem where tests didn't reproduce that broken ccs
> > > after resume. If you try running on your own box any of these s4 tests
> > > you'll see they don't go fully down. I wanted to have a test that does
> > > the same as real hibernate.
>
> hmmm... something indeed changed because of CI.
>
> I originally implemented them without SUSPEND_TEST_DEVICES, in a way that
> the machine was going fully down in my ADL+DG2 machine.
>
> But commit 4b767566bbc ("tests/intel/xe_pm: S4 to go up to devices only")
> modified that to make it work for CI.
>
> So, perhaps we can do both, have the manual setup with -r and no TEST
> and have the one with TEST but not fully down.
>
> Have you reproduced the CSS reported bug? Then have you tried the solution
> with the TEST?
I suspect I earlier got lot of frozen test machines, with these test
it always affect testing of new test. This test I now have here does
reproduce that ccs bug with kernel where it's not fixed.
>
> > >
> > > >
> > > > >
> > > > > For this test to work kernel resume point need to be set using swapfile, from
> > > > > kernel command line is checked if there is found something along the lines of
> > > > > "resume=/dev/nvme0n1p2 resume_offset=73527296" or so to verify hibernate
> > > > > will be successfull.
> > > >
> > > > Indeed painful nowadays... I can't even believe this gap came from user
> > > > report... is anyone really still using hibernation nowadays?! :)
> > > >
> > > > >
> > > > > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > > > > ---
> > > > > tests/intel/kms_ccs.c | 162 +++++++++++++++++++++++++++++++++++++++++-
> > > > > 1 file changed, 159 insertions(+), 3 deletions(-)
> > > > >
> > > > > diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
> > > > > index 3e9a57863..fd2fe9d3d 100644
> > > > > --- a/tests/intel/kms_ccs.c
> > > > > +++ b/tests/intel/kms_ccs.c
> > > > > @@ -190,6 +190,7 @@ typedef struct {
> > > > > bool user_seed;
> > > > > enum igt_commit_style commit;
> > > > > int fb_list_length;
> > > > > + bool do_hibernate;
> > > > > struct {
> > > > > struct igt_fb fb;
> > > > > int width, height;
> > > > > @@ -271,6 +272,154 @@ static const struct {
> > > > > */
> > > > > #define MAX_SPRITE_PLANE_WIDTH 2000
> > > > >
> > > > > +/* constants for hibenate test */
> > > > > +#define RTC_WAKE_CMD "rtcwake -m no -s %d"
> > > >
> > > > Why are you calling rtcwake directly instead of using
> > > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK...) ?!
> > > >
> > > > Please check lib/igt_aux lib/igt_pm and tests/xe/xe_pm
> > >
> > > I wanted rtc only to wake up the machine. On
> > > igt_system_suspend_autoresume(..) I'd get pm_test handling which I
> > > want to avoid here.
>
> you can do that.... just pass SUSPEND_TEST_NONE instead of
> SUSPEND_TEST_DEVICES as the second argument. So, a lot of the logic
> here can be simplified.
>
> And as I told perhaps we can have 3 cases:
>
> hibernate-manual:
> igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> SUSPEND_TEST_NONE);
> hibernate-auto:
> igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> SUSPEND_TEST_DEVICES);
> suspend:
> igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> SUSPEND_TEST_NONE);
I'll try that, if that reproduce the bug then I can cut out those
hibernate_system(..) and set_rtc_wake_timer(..) and move
check_hibernation_support(..) to libigt. For reproducing I'll anyway
need to go to lab to see the machine, when I try these on ril system
it seems to want to restore my machine when it first time stay down
instead of resuming.
>
>
> > >
> > > >
> > > > > +#define PROC_CMDLINE "/proc/cmdline"
> > > > > +#define SYS_POWER_STATE "/sys/power/state"
> > > > > +#define GRUB_CFG_PATH "/boot/grub/grub.cfg"
> > > > > +
> > > > > +static void check_hibernation_support(void)
> > > > > +{
> > > > > + int fd;
> > > > > + char buffer[2048];
> > > > > + ssize_t bytes_read;
> > > > > + FILE *cmdline;
> > > > > +
> > > > > + /* Check if hibernation is supported in /sys/power/state */
> > > > > + fd = open(SYS_POWER_STATE, O_RDONLY);
> > > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > > + bytes_read = read(fd, buffer, sizeof(buffer) - 1);
> > > > > + close(fd);
> > > > > +
> > > > > + igt_require_f(bytes_read > 0, "Failed to read /sys/power/state");
> > > > > +
> > > > > + buffer[bytes_read] = '\0';
> > > > > + igt_require_f(strstr(buffer, "disk") != NULL,
> > > > > + "Hibernation (suspend to disk) is not supported on this system.\n");
> > > > > +
> > > > > + /* Check if resume is configured in kernel command line */
> > > > > + cmdline = fopen(PROC_CMDLINE, "r");
> > > > > + igt_require_f(cmdline, "Failed to open /proc/cmdline");
> > > > > + fread(buffer, 1, sizeof(buffer) - 1, cmdline);
> > > > > + fclose(cmdline);
> > > > > +
> > > > > + igt_require_f(strstr(buffer, "resume="),
> > > > > + "Kernel does not have 'resume' parameter configured for hibernation.\n");
> > > > > +}
> > > >
> > > > we should probably have this in the igt_pm lib to be used in other places
> > > > like xe_pm. I remember we had discussions when s4 started failing in CI,
> > > > but apparently the solution was to make CI to work with it instead of
> > > > protecting our s4 tests...
> > >
> > > I was last week talking with Jari Tahvanainen about this. Our ci is
> > > not configured for the machines really hibernating, he suggested we
> > > first start with one test, start to run it in special box, and we go
> > > on from there .. so, here we are :)
> > > I agree final destination for this function should be in lib/ like in
> > > igt_pm or so.
> > >
> > > >
> > > > > +
> > > > > +static void set_rtc_wake_timer(int seconds)
> > > > > +{
> > > > > + char command[256];
> > > > > +
> > > > > + snprintf(command, sizeof(command), RTC_WAKE_CMD, seconds);
> > > > > +
> > > > > + igt_require_f(system(command) == 0,
> > > > > + "Failed to set RTC wake timer.\n");
> > > > > +}
> > > > > +
> > > > > +static void hibernate_system(void)
> > > > > +{
> > > > > + int fd;
> > > > > +
> > > > > + fd = open(SYS_POWER_STATE, O_WRONLY);
> > > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > > +
> > > > > + if (write(fd, "disk", 4) != 4) {
> > > > > + close(fd);
> > > > > + igt_require_f(0, "Failed to write 'disk' to /sys/power/state");
> > > > > + }
> > > > > + close(fd);
> > > > > +}
> > > > > +
> > > > > +static void ensure_grub_boots_same_kernel(void)
> > > >
> > > > I don't believe that this should be to the test case to ensure.
> > > > This should be ensured by the infra to support these s4 testcases.
> > >
> > > This is bit so-so. If guys would run this test on their own boxes to
> > > do some debugging, forgetting to always set the correct kernel for the
> > > next in-test reboot would cause incorrect results.
> > >
> > > >
> > > > > +{
> > > > > + char cmdline[1024];
> > > > > + char current_kernel[256];
> > > > > + char last_menuentry[512] = "";
> > > > > + char grub_entry[512];
> > > > > + char command[1024];
> > > > > + FILE *cmdline_file, *grub_cfg;
> > > > > + char line[1024];
> > > > > + bool kernel_found = false;
> > > > > + char *kernel_arg;
> > > > > + char *kernel_end;
> > > > > +
> > > > > + /* Read /proc/cmdline to get the current kernel image */
> > > > > + cmdline_file = fopen(PROC_CMDLINE, "r");
> > > > > + igt_require_f(cmdline_file, "Failed to open /proc/cmdline");
> > > > > +
> > > > > + if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
> > > > > + fclose(cmdline_file);
> > > > > + igt_require_f(0, "Failed to read /proc/cmdline");
> > > > > + }
> > > > > + fclose(cmdline_file);
> > > > > +
> > > > > + /* Parse the kernel image from cmdline */
> > > > > + kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
> > > > > + igt_require_f(kernel_arg, "BOOT_IMAGE= not found in /proc/cmdline\n");
> > > > > +
> > > > > + kernel_arg += strlen("BOOT_IMAGE=");
> > > > > + kernel_end = strchr(kernel_arg, ' ');
> > > > > +
> > > > > + if (!kernel_end)
> > > > > + kernel_end = kernel_arg + strlen(kernel_arg);
> > > > > +
> > > > > + snprintf(current_kernel, sizeof(current_kernel), "%.*s",
> > > > > + (int)(kernel_end - kernel_arg), kernel_arg);
> > > > > + igt_debug("Current kernel image: %s\n", current_kernel);
> > > > > +
> > > > > + /* Open GRUB config file to find matching entry */
> > > > > + grub_cfg = fopen(GRUB_CFG_PATH, "r");
> > > > > + igt_require_f(grub_cfg, "Failed to open GRUB configuration file");
> > > > > +
> > > > > +
> > > > > + while (fgets(line, sizeof(line), grub_cfg)) {
> > > > > + /* Check if the line contains a menuentry */
> > > > > + if (strstr(line, "menuentry")) {
> > > > > + /* Store the menuentry line */
> > > > > + char *start = strchr(line, '\'');
> > > > > + char *end = start ? strchr(start + 1, '\'') : NULL;
> > > > > +
> > > > > + if (start && end) {
> > > > > + snprintf(last_menuentry,
> > > > > + sizeof(last_menuentry),
> > > > > + "%.*s", (int)(end - start - 1),
> > > > > + start + 1);
> > > > > + }
> > > > > + }
> > > > > +
> > > > > + /* Check if the current line contains the kernel */
> > > > > + if (strstr(line, current_kernel)) {
> > > > > + /* Use the last seen menuentry as the match */
> > > > > + snprintf(grub_entry, sizeof(grub_entry), "%s",
> > > > > + last_menuentry);
> > > > > + kernel_found = true;
> > > > > + break;
> > > > > + }
> > > > > + }
> > > > > +
> > > > > + fclose(grub_cfg);
> > > > > +
> > > > > + igt_require_f(kernel_found, "Failed to find matching GRUB entry for kernel: %s\n",
> > > > > + current_kernel);
> > > > > +
> > > > > + /* Set the GRUB boot target using grub-reboot */
> > > > > + snprintf(command, sizeof(command), "grub-reboot \"%s\"", grub_entry);
> > > > > + igt_require_f(system(command) == 0, "Failed to set GRUB boot target to: %s\n",
> > > > > + grub_entry);
> > > > > +
> > > > > + igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
> > > > > + current_kernel, grub_entry);
> > > > > +}
> > > > > +
> > > > > +static void hibernate_autoresume(int resume_delay)
> > > > > +{
> > > > > + check_hibernation_support();
> > > > > + set_rtc_wake_timer(resume_delay);
> > > > > + ensure_grub_boots_same_kernel();
> > > > > + hibernate_system();
> > > > > +}
> > > > > +
> > > > > static void addfb_init(struct igt_fb *fb, struct drm_mode_fb_cmd2 *f)
> > > > > {
> > > > > int i;
> > > > > @@ -839,8 +988,11 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
> > > > >
> > > > > if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
> > > > > if (data->flags & TEST_SUSPEND && fb_flags & FB_COMPRESSED) {
> > > > > - igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > - SUSPEND_TEST_NONE);
> > > > > + if (data->do_hibernate)
> > > > > + hibernate_autoresume(30);
> > > > > + else
> > > > > + igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > + SUSPEND_TEST_NONE);
> > > > >
> > > > > /* on resume check flat ccs is still compressed */
> > > > > if (is_xe_device(data->drm_fd) &&
> > > > > @@ -1044,6 +1196,9 @@ static int opt_handler(int opt, int opt_index, void *opt_data)
> > > > > data->user_seed = true;
> > > > > data->seed = strtoul(optarg, NULL, 0);
> > > > > break;
> > > > > + case 'r':
> > > > > + data->do_hibernate = true;
> > > > > + break;
> > > > > default:
> > > > > return IGT_OPT_HANDLER_ERROR;
> > > > > }
> > > > > @@ -1056,9 +1211,10 @@ static data_t data;
> > > > > static const char *help_str =
> > > > > " -c\t\tCheck the presence of compression meta-data\n"
> > > > > " -s <seed>\tSeed for random number generator\n"
> > > > > +" -r\t\tOn suspend test do full hibernate with reboot\n"
> > > > > ;
> > > > >
> > > > > -igt_main_args("cs:", NULL, help_str, opt_handler, &data)
> > > > > +igt_main_args("csr:", NULL, help_str, opt_handler, &data)
> > > > > {
> > > > > igt_fixture {
> > > > > data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> > > > > --
> > > > > 2.45.2
> > > > >
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
2024-11-26 17:12 ` Juha-Pekka Heikkilä
@ 2024-11-27 13:21 ` Juha-Pekka Heikkilä
2024-11-28 6:19 ` Gupta, Anshuman
2024-11-28 12:44 ` Rodrigo Vivi
0 siblings, 2 replies; 17+ messages in thread
From: Juha-Pekka Heikkilä @ 2024-11-27 13:21 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: Development mailing list for IGT GPU Tools
On Tue, Nov 26, 2024 at 7:12 PM Juha-Pekka Heikkilä
<juhapekka.heikkila@gmail.com> wrote:
>
> On Tue, Nov 26, 2024 at 3:00 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> >
> > On Tue, Nov 26, 2024 at 10:07:37AM +0200, Juha-Pekka Heikkilä wrote:
> > > Seems I accidentally replied only to Rodrigo so I'll add igt-dev back here.
> > >
> > > On Mon, Nov 25, 2024 at 10:03 PM Juha-Pekka Heikkilä
> > > <juhapekka.heikkila@gmail.com> wrote:
> > > >
> > > > On Mon, Nov 25, 2024 at 8:20 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> > > > >
> > > > > On Mon, Nov 25, 2024 at 06:19:58PM +0200, Juha-Pekka Heikkila wrote:
> > > > > > Add hibernate test which bring entire system down for short
> > > > > > hibernate. This mode is added to suspend tests to be run
> > > > > > manually with '-r' flag because this is not ci friendly test,
> > > > > > on hibernate ci would lose connection to the hibernated box.
> > > > >
> > > > > I know that nowadays it is a beast to get hibernate to work in the distros,
> > > > > but afaik our CI is prepared for that, otherwise we wouldn't be able to
> > > > > get these:
> > > > >
> > > > > https://intel-gfx-ci.01.org/tree/intel-xe/index.html?testfilter=s4
> > > >
> > > > If you go see those test machine bootlogs you see there is no resume
> > > > configured. I think all these current s4 tests work with pm_test hence
> > > > also original problem where tests didn't reproduce that broken ccs
> > > > after resume. If you try running on your own box any of these s4 tests
> > > > you'll see they don't go fully down. I wanted to have a test that does
> > > > the same as real hibernate.
> >
> > hmmm... something indeed changed because of CI.
> >
> > I originally implemented them without SUSPEND_TEST_DEVICES, in a way that
> > the machine was going fully down in my ADL+DG2 machine.
> >
> > But commit 4b767566bbc ("tests/intel/xe_pm: S4 to go up to devices only")
> > modified that to make it work for CI.
> >
> > So, perhaps we can do both, have the manual setup with -r and no TEST
> > and have the one with TEST but not fully down.
> >
> > Have you reproduced the CSS reported bug? Then have you tried the solution
> > with the TEST?
>
> I suspect I earlier got lot of frozen test machines, with these test
> it always affect testing of new test. This test I now have here does
> reproduce that ccs bug with kernel where it's not fixed.
>
> >
> > > >
> > > > >
> > > > > >
> > > > > > For this test to work kernel resume point need to be set using swapfile, from
> > > > > > kernel command line is checked if there is found something along the lines of
> > > > > > "resume=/dev/nvme0n1p2 resume_offset=73527296" or so to verify hibernate
> > > > > > will be successfull.
> > > > >
> > > > > Indeed painful nowadays... I can't even believe this gap came from user
> > > > > report... is anyone really still using hibernation nowadays?! :)
> > > > >
> > > > > >
> > > > > > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > > > > > ---
> > > > > > tests/intel/kms_ccs.c | 162 +++++++++++++++++++++++++++++++++++++++++-
> > > > > > 1 file changed, 159 insertions(+), 3 deletions(-)
> > > > > >
> > > > > > diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
> > > > > > index 3e9a57863..fd2fe9d3d 100644
> > > > > > --- a/tests/intel/kms_ccs.c
> > > > > > +++ b/tests/intel/kms_ccs.c
> > > > > > @@ -190,6 +190,7 @@ typedef struct {
> > > > > > bool user_seed;
> > > > > > enum igt_commit_style commit;
> > > > > > int fb_list_length;
> > > > > > + bool do_hibernate;
> > > > > > struct {
> > > > > > struct igt_fb fb;
> > > > > > int width, height;
> > > > > > @@ -271,6 +272,154 @@ static const struct {
> > > > > > */
> > > > > > #define MAX_SPRITE_PLANE_WIDTH 2000
> > > > > >
> > > > > > +/* constants for hibenate test */
> > > > > > +#define RTC_WAKE_CMD "rtcwake -m no -s %d"
> > > > >
> > > > > Why are you calling rtcwake directly instead of using
> > > > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK...) ?!
> > > > >
> > > > > Please check lib/igt_aux lib/igt_pm and tests/xe/xe_pm
> > > >
> > > > I wanted rtc only to wake up the machine. On
> > > > igt_system_suspend_autoresume(..) I'd get pm_test handling which I
> > > > want to avoid here.
> >
> > you can do that.... just pass SUSPEND_TEST_NONE instead of
> > SUSPEND_TEST_DEVICES as the second argument. So, a lot of the logic
> > here can be simplified.
> >
> > And as I told perhaps we can have 3 cases:
> >
> > hibernate-manual:
> > igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> > SUSPEND_TEST_NONE);
> > hibernate-auto:
> > igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> > SUSPEND_TEST_DEVICES);
> > suspend:
> > igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > SUSPEND_TEST_NONE);
>
> I'll try that, if that reproduce the bug then I can cut out those
> hibernate_system(..) and set_rtc_wake_timer(..) and move
> check_hibernation_support(..) to libigt. For reproducing I'll anyway
> need to go to lab to see the machine, when I try these on ril system
> it seems to want to restore my machine when it first time stay down
> instead of resuming.
There is something fishy going on with
igt_system_suspend_autoresume(..). When I try to use
SUSPEND_STATE_DISK and SUSPEND_TEST_NONE, lnl boxes I've tried never
successfully hibernated. These boxes start to go down but don't power
off and I see same code always stuck on board led display. I'm not
able to pinpoint the issue since I'm not so familiar with pm code. On
same boxes, the hibernate code I have on this patch did work 5/5. As
above mentioned difference is I use rtc to wake the system but I on my
own go write /sys/power/state. While it should do the same thing,
something is different..no idea could it be just some firmware issue
vs timing but result is anyway different. I had quick try with mtl and
i915 igt_system_suspend_autoresume(..) where things did work as
expected.
>
> >
> >
> > > >
> > > > >
> > > > > > +#define PROC_CMDLINE "/proc/cmdline"
> > > > > > +#define SYS_POWER_STATE "/sys/power/state"
> > > > > > +#define GRUB_CFG_PATH "/boot/grub/grub.cfg"
> > > > > > +
> > > > > > +static void check_hibernation_support(void)
> > > > > > +{
> > > > > > + int fd;
> > > > > > + char buffer[2048];
> > > > > > + ssize_t bytes_read;
> > > > > > + FILE *cmdline;
> > > > > > +
> > > > > > + /* Check if hibernation is supported in /sys/power/state */
> > > > > > + fd = open(SYS_POWER_STATE, O_RDONLY);
> > > > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > > > + bytes_read = read(fd, buffer, sizeof(buffer) - 1);
> > > > > > + close(fd);
> > > > > > +
> > > > > > + igt_require_f(bytes_read > 0, "Failed to read /sys/power/state");
> > > > > > +
> > > > > > + buffer[bytes_read] = '\0';
> > > > > > + igt_require_f(strstr(buffer, "disk") != NULL,
> > > > > > + "Hibernation (suspend to disk) is not supported on this system.\n");
> > > > > > +
> > > > > > + /* Check if resume is configured in kernel command line */
> > > > > > + cmdline = fopen(PROC_CMDLINE, "r");
> > > > > > + igt_require_f(cmdline, "Failed to open /proc/cmdline");
> > > > > > + fread(buffer, 1, sizeof(buffer) - 1, cmdline);
> > > > > > + fclose(cmdline);
> > > > > > +
> > > > > > + igt_require_f(strstr(buffer, "resume="),
> > > > > > + "Kernel does not have 'resume' parameter configured for hibernation.\n");
> > > > > > +}
> > > > >
> > > > > we should probably have this in the igt_pm lib to be used in other places
> > > > > like xe_pm. I remember we had discussions when s4 started failing in CI,
> > > > > but apparently the solution was to make CI to work with it instead of
> > > > > protecting our s4 tests...
> > > >
> > > > I was last week talking with Jari Tahvanainen about this. Our ci is
> > > > not configured for the machines really hibernating, he suggested we
> > > > first start with one test, start to run it in special box, and we go
> > > > on from there .. so, here we are :)
> > > > I agree final destination for this function should be in lib/ like in
> > > > igt_pm or so.
> > > >
> > > > >
> > > > > > +
> > > > > > +static void set_rtc_wake_timer(int seconds)
> > > > > > +{
> > > > > > + char command[256];
> > > > > > +
> > > > > > + snprintf(command, sizeof(command), RTC_WAKE_CMD, seconds);
> > > > > > +
> > > > > > + igt_require_f(system(command) == 0,
> > > > > > + "Failed to set RTC wake timer.\n");
> > > > > > +}
> > > > > > +
> > > > > > +static void hibernate_system(void)
> > > > > > +{
> > > > > > + int fd;
> > > > > > +
> > > > > > + fd = open(SYS_POWER_STATE, O_WRONLY);
> > > > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > > > +
> > > > > > + if (write(fd, "disk", 4) != 4) {
> > > > > > + close(fd);
> > > > > > + igt_require_f(0, "Failed to write 'disk' to /sys/power/state");
> > > > > > + }
> > > > > > + close(fd);
> > > > > > +}
> > > > > > +
> > > > > > +static void ensure_grub_boots_same_kernel(void)
> > > > >
> > > > > I don't believe that this should be to the test case to ensure.
> > > > > This should be ensured by the infra to support these s4 testcases.
> > > >
> > > > This is bit so-so. If guys would run this test on their own boxes to
> > > > do some debugging, forgetting to always set the correct kernel for the
> > > > next in-test reboot would cause incorrect results.
> > > >
> > > > >
> > > > > > +{
> > > > > > + char cmdline[1024];
> > > > > > + char current_kernel[256];
> > > > > > + char last_menuentry[512] = "";
> > > > > > + char grub_entry[512];
> > > > > > + char command[1024];
> > > > > > + FILE *cmdline_file, *grub_cfg;
> > > > > > + char line[1024];
> > > > > > + bool kernel_found = false;
> > > > > > + char *kernel_arg;
> > > > > > + char *kernel_end;
> > > > > > +
> > > > > > + /* Read /proc/cmdline to get the current kernel image */
> > > > > > + cmdline_file = fopen(PROC_CMDLINE, "r");
> > > > > > + igt_require_f(cmdline_file, "Failed to open /proc/cmdline");
> > > > > > +
> > > > > > + if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
> > > > > > + fclose(cmdline_file);
> > > > > > + igt_require_f(0, "Failed to read /proc/cmdline");
> > > > > > + }
> > > > > > + fclose(cmdline_file);
> > > > > > +
> > > > > > + /* Parse the kernel image from cmdline */
> > > > > > + kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
> > > > > > + igt_require_f(kernel_arg, "BOOT_IMAGE= not found in /proc/cmdline\n");
> > > > > > +
> > > > > > + kernel_arg += strlen("BOOT_IMAGE=");
> > > > > > + kernel_end = strchr(kernel_arg, ' ');
> > > > > > +
> > > > > > + if (!kernel_end)
> > > > > > + kernel_end = kernel_arg + strlen(kernel_arg);
> > > > > > +
> > > > > > + snprintf(current_kernel, sizeof(current_kernel), "%.*s",
> > > > > > + (int)(kernel_end - kernel_arg), kernel_arg);
> > > > > > + igt_debug("Current kernel image: %s\n", current_kernel);
> > > > > > +
> > > > > > + /* Open GRUB config file to find matching entry */
> > > > > > + grub_cfg = fopen(GRUB_CFG_PATH, "r");
> > > > > > + igt_require_f(grub_cfg, "Failed to open GRUB configuration file");
> > > > > > +
> > > > > > +
> > > > > > + while (fgets(line, sizeof(line), grub_cfg)) {
> > > > > > + /* Check if the line contains a menuentry */
> > > > > > + if (strstr(line, "menuentry")) {
> > > > > > + /* Store the menuentry line */
> > > > > > + char *start = strchr(line, '\'');
> > > > > > + char *end = start ? strchr(start + 1, '\'') : NULL;
> > > > > > +
> > > > > > + if (start && end) {
> > > > > > + snprintf(last_menuentry,
> > > > > > + sizeof(last_menuentry),
> > > > > > + "%.*s", (int)(end - start - 1),
> > > > > > + start + 1);
> > > > > > + }
> > > > > > + }
> > > > > > +
> > > > > > + /* Check if the current line contains the kernel */
> > > > > > + if (strstr(line, current_kernel)) {
> > > > > > + /* Use the last seen menuentry as the match */
> > > > > > + snprintf(grub_entry, sizeof(grub_entry), "%s",
> > > > > > + last_menuentry);
> > > > > > + kernel_found = true;
> > > > > > + break;
> > > > > > + }
> > > > > > + }
> > > > > > +
> > > > > > + fclose(grub_cfg);
> > > > > > +
> > > > > > + igt_require_f(kernel_found, "Failed to find matching GRUB entry for kernel: %s\n",
> > > > > > + current_kernel);
> > > > > > +
> > > > > > + /* Set the GRUB boot target using grub-reboot */
> > > > > > + snprintf(command, sizeof(command), "grub-reboot \"%s\"", grub_entry);
> > > > > > + igt_require_f(system(command) == 0, "Failed to set GRUB boot target to: %s\n",
> > > > > > + grub_entry);
> > > > > > +
> > > > > > + igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
> > > > > > + current_kernel, grub_entry);
> > > > > > +}
> > > > > > +
> > > > > > +static void hibernate_autoresume(int resume_delay)
> > > > > > +{
> > > > > > + check_hibernation_support();
> > > > > > + set_rtc_wake_timer(resume_delay);
> > > > > > + ensure_grub_boots_same_kernel();
> > > > > > + hibernate_system();
> > > > > > +}
> > > > > > +
> > > > > > static void addfb_init(struct igt_fb *fb, struct drm_mode_fb_cmd2 *f)
> > > > > > {
> > > > > > int i;
> > > > > > @@ -839,8 +988,11 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
> > > > > >
> > > > > > if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
> > > > > > if (data->flags & TEST_SUSPEND && fb_flags & FB_COMPRESSED) {
> > > > > > - igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > > - SUSPEND_TEST_NONE);
> > > > > > + if (data->do_hibernate)
> > > > > > + hibernate_autoresume(30);
> > > > > > + else
> > > > > > + igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > > + SUSPEND_TEST_NONE);
> > > > > >
> > > > > > /* on resume check flat ccs is still compressed */
> > > > > > if (is_xe_device(data->drm_fd) &&
> > > > > > @@ -1044,6 +1196,9 @@ static int opt_handler(int opt, int opt_index, void *opt_data)
> > > > > > data->user_seed = true;
> > > > > > data->seed = strtoul(optarg, NULL, 0);
> > > > > > break;
> > > > > > + case 'r':
> > > > > > + data->do_hibernate = true;
> > > > > > + break;
> > > > > > default:
> > > > > > return IGT_OPT_HANDLER_ERROR;
> > > > > > }
> > > > > > @@ -1056,9 +1211,10 @@ static data_t data;
> > > > > > static const char *help_str =
> > > > > > " -c\t\tCheck the presence of compression meta-data\n"
> > > > > > " -s <seed>\tSeed for random number generator\n"
> > > > > > +" -r\t\tOn suspend test do full hibernate with reboot\n"
> > > > > > ;
> > > > > >
> > > > > > -igt_main_args("cs:", NULL, help_str, opt_handler, &data)
> > > > > > +igt_main_args("csr:", NULL, help_str, opt_handler, &data)
> > > > > > {
> > > > > > igt_fixture {
> > > > > > data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> > > > > > --
> > > > > > 2.45.2
> > > > > >
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
2024-11-27 13:21 ` Juha-Pekka Heikkilä
@ 2024-11-28 6:19 ` Gupta, Anshuman
2024-11-28 15:50 ` Juha-Pekka Heikkilä
2024-11-28 12:44 ` Rodrigo Vivi
1 sibling, 1 reply; 17+ messages in thread
From: Gupta, Anshuman @ 2024-11-28 6:19 UTC (permalink / raw)
To: Juha-Pekka Heikkilä, Vivi, Rodrigo
Cc: Development mailing list for IGT GPU Tools
> -----Original Message-----
> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Juha-
> Pekka Heikkilä
> Sent: Wednesday, November 27, 2024 6:51 PM
> To: Vivi, Rodrigo <rodrigo.vivi@intel.com>
> Cc: Development mailing list for IGT GPU Tools <igt-dev@lists.freedesktop.org>
> Subject: Re: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
>
> On Tue, Nov 26, 2024 at 7:12 PM Juha-Pekka Heikkilä
> <juhapekka.heikkila@gmail.com> wrote:
> >
> > On Tue, Nov 26, 2024 at 3:00 PM Rodrigo Vivi <rodrigo.vivi@intel.com>
> wrote:
> > >
> > > On Tue, Nov 26, 2024 at 10:07:37AM +0200, Juha-Pekka Heikkilä wrote:
> > > > Seems I accidentally replied only to Rodrigo so I'll add igt-dev back here.
> > > >
> > > > On Mon, Nov 25, 2024 at 10:03 PM Juha-Pekka Heikkilä
> > > > <juhapekka.heikkila@gmail.com> wrote:
> > > > >
> > > > > On Mon, Nov 25, 2024 at 8:20 PM Rodrigo Vivi
> <rodrigo.vivi@intel.com> wrote:
> > > > > >
> > > > > > On Mon, Nov 25, 2024 at 06:19:58PM +0200, Juha-Pekka Heikkila
> wrote:
> > > > > > > Add hibernate test which bring entire system down for short
> > > > > > > hibernate. This mode is added to suspend tests to be run
> > > > > > > manually with '-r' flag because this is not ci friendly
> > > > > > > test, on hibernate ci would lose connection to the hibernated box.
> > > > > >
> > > > > > I know that nowadays it is a beast to get hibernate to work in
> > > > > > the distros, but afaik our CI is prepared for that, otherwise
> > > > > > we wouldn't be able to get these:
> > > > > >
> > > > > > https://intel-gfx-ci.01.org/tree/intel-xe/index.html?testfilte
> > > > > > r=s4
> > > > >
> > > > > If you go see those test machine bootlogs you see there is no
> > > > > resume configured. I think all these current s4 tests work with
> > > > > pm_test hence also original problem where tests didn't reproduce
> > > > > that broken ccs after resume. If you try running on your own box
> > > > > any of these s4 tests you'll see they don't go fully down. I
> > > > > wanted to have a test that does the same as real hibernate.
> > >
> > > hmmm... something indeed changed because of CI.
Network driver does not resume properly and take time during actual hibernation,
AFAIU the problem might br igt tests are forked by igt_runner and igt_runner is a child of bash ssh instance.
Ssh connection are prone to disconnect on loss of network that will kill the bash and igt runner and igt test will be zombie.
If we can run igt runner as a background process or as native on console, and should make igt_runner to wait for network resume.
Thanks,
Anshuman.
> > >
> > > I originally implemented them without SUSPEND_TEST_DEVICES, in a way
> > > that the machine was going fully down in my ADL+DG2 machine.
> > >
> > > But commit 4b767566bbc ("tests/intel/xe_pm: S4 to go up to devices
> > > only") modified that to make it work for CI.
> > >
> > > So, perhaps we can do both, have the manual setup with -r and no
> > > TEST and have the one with TEST but not fully down.
> > >
> > > Have you reproduced the CSS reported bug? Then have you tried the
> > > solution with the TEST?
> >
> > I suspect I earlier got lot of frozen test machines, with these test
> > it always affect testing of new test. This test I now have here does
> > reproduce that ccs bug with kernel where it's not fixed.
> >
> > >
> > > > >
> > > > > >
> > > > > > >
> > > > > > > For this test to work kernel resume point need to be set
> > > > > > > using swapfile, from kernel command line is checked if there
> > > > > > > is found something along the lines of
> > > > > > > "resume=/dev/nvme0n1p2 resume_offset=73527296" or so to
> > > > > > > verify hibernate will be successfull.
> > > > > >
> > > > > > Indeed painful nowadays... I can't even believe this gap came
> > > > > > from user report... is anyone really still using hibernation
> > > > > > nowadays?! :)
> > > > > >
> > > > > > >
> > > > > > > Signed-off-by: Juha-Pekka Heikkila
> > > > > > > <juhapekka.heikkila@gmail.com>
> > > > > > > ---
> > > > > > > tests/intel/kms_ccs.c | 162
> > > > > > > +++++++++++++++++++++++++++++++++++++++++-
> > > > > > > 1 file changed, 159 insertions(+), 3 deletions(-)
> > > > > > >
> > > > > > > diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
> > > > > > > index 3e9a57863..fd2fe9d3d 100644
> > > > > > > --- a/tests/intel/kms_ccs.c
> > > > > > > +++ b/tests/intel/kms_ccs.c
> > > > > > > @@ -190,6 +190,7 @@ typedef struct {
> > > > > > > bool user_seed;
> > > > > > > enum igt_commit_style commit;
> > > > > > > int fb_list_length;
> > > > > > > + bool do_hibernate;
> > > > > > > struct {
> > > > > > > struct igt_fb fb;
> > > > > > > int width, height; @@ -271,6 +272,154 @@
> > > > > > > static const struct {
> > > > > > > */
> > > > > > > #define MAX_SPRITE_PLANE_WIDTH 2000
> > > > > > >
> > > > > > > +/* constants for hibenate test */ #define RTC_WAKE_CMD
> > > > > > > +"rtcwake -m no -s %d"
> > > > > >
> > > > > > Why are you calling rtcwake directly instead of using
> > > > > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK...) ?!
> > > > > >
> > > > > > Please check lib/igt_aux lib/igt_pm and tests/xe/xe_pm
> > > > >
> > > > > I wanted rtc only to wake up the machine. On
> > > > > igt_system_suspend_autoresume(..) I'd get pm_test handling which
> > > > > I want to avoid here.
> > >
> > > you can do that.... just pass SUSPEND_TEST_NONE instead of
> > > SUSPEND_TEST_DEVICES as the second argument. So, a lot of the logic
> > > here can be simplified.
> > >
> > > And as I told perhaps we can have 3 cases:
> > >
> > > hibernate-manual:
> > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> > > SUSPEND_TEST_NONE);
> > > hibernate-auto:
> > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> > > SUSPEND_TEST_DEVICES);
> > > suspend:
> > > igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > SUSPEND_TEST_NONE);
> >
> > I'll try that, if that reproduce the bug then I can cut out those
> > hibernate_system(..) and set_rtc_wake_timer(..) and move
> > check_hibernation_support(..) to libigt. For reproducing I'll anyway
> > need to go to lab to see the machine, when I try these on ril system
> > it seems to want to restore my machine when it first time stay down
> > instead of resuming.
>
> There is something fishy going on with
> igt_system_suspend_autoresume(..). When I try to use SUSPEND_STATE_DISK
> and SUSPEND_TEST_NONE, lnl boxes I've tried never successfully hibernated.
> These boxes start to go down but don't power off and I see same code always
> stuck on board led display. I'm not able to pinpoint the issue since I'm not so
> familiar with pm code. On same boxes, the hibernate code I have on this patch
> did work 5/5. As above mentioned difference is I use rtc to wake the system
> but I on my own go write /sys/power/state. While it should do the same
> thing, something is different..no idea could it be just some firmware issue vs
> timing but result is anyway different. I had quick try with mtl and
> i915 igt_system_suspend_autoresume(..) where things did work as expected.
>
> >
> > >
> > >
> > > > >
> > > > > >
> > > > > > > +#define PROC_CMDLINE "/proc/cmdline"
> > > > > > > +#define SYS_POWER_STATE "/sys/power/state"
> > > > > > > +#define GRUB_CFG_PATH "/boot/grub/grub.cfg"
> > > > > > > +
> > > > > > > +static void check_hibernation_support(void) {
> > > > > > > + int fd;
> > > > > > > + char buffer[2048];
> > > > > > > + ssize_t bytes_read;
> > > > > > > + FILE *cmdline;
> > > > > > > +
> > > > > > > + /* Check if hibernation is supported in /sys/power/state */
> > > > > > > + fd = open(SYS_POWER_STATE, O_RDONLY);
> > > > > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > > > > + bytes_read = read(fd, buffer, sizeof(buffer) - 1);
> > > > > > > + close(fd);
> > > > > > > +
> > > > > > > + igt_require_f(bytes_read > 0, "Failed to read
> > > > > > > + /sys/power/state");
> > > > > > > +
> > > > > > > + buffer[bytes_read] = '\0';
> > > > > > > + igt_require_f(strstr(buffer, "disk") != NULL,
> > > > > > > + "Hibernation (suspend to disk) is not
> > > > > > > + supported on this system.\n");
> > > > > > > +
> > > > > > > + /* Check if resume is configured in kernel command line */
> > > > > > > + cmdline = fopen(PROC_CMDLINE, "r");
> > > > > > > + igt_require_f(cmdline, "Failed to open /proc/cmdline");
> > > > > > > + fread(buffer, 1, sizeof(buffer) - 1, cmdline);
> > > > > > > + fclose(cmdline);
> > > > > > > +
> > > > > > > + igt_require_f(strstr(buffer, "resume="),
> > > > > > > + "Kernel does not have 'resume' parameter
> > > > > > > +configured for hibernation.\n"); }
> > > > > >
> > > > > > we should probably have this in the igt_pm lib to be used in
> > > > > > other places like xe_pm. I remember we had discussions when s4
> > > > > > started failing in CI, but apparently the solution was to make
> > > > > > CI to work with it instead of protecting our s4 tests...
> > > > >
> > > > > I was last week talking with Jari Tahvanainen about this. Our ci
> > > > > is not configured for the machines really hibernating, he
> > > > > suggested we first start with one test, start to run it in
> > > > > special box, and we go on from there .. so, here we are :) I
> > > > > agree final destination for this function should be in lib/ like
> > > > > in igt_pm or so.
> > > > >
> > > > > >
> > > > > > > +
> > > > > > > +static void set_rtc_wake_timer(int seconds) {
> > > > > > > + char command[256];
> > > > > > > +
> > > > > > > + snprintf(command, sizeof(command), RTC_WAKE_CMD,
> > > > > > > + seconds);
> > > > > > > +
> > > > > > > + igt_require_f(system(command) == 0,
> > > > > > > + "Failed to set RTC wake timer.\n"); }
> > > > > > > +
> > > > > > > +static void hibernate_system(void) {
> > > > > > > + int fd;
> > > > > > > +
> > > > > > > + fd = open(SYS_POWER_STATE, O_WRONLY);
> > > > > > > + igt_require_f(fd > 0, "Failed to open
> > > > > > > + /sys/power/state");
> > > > > > > +
> > > > > > > + if (write(fd, "disk", 4) != 4) {
> > > > > > > + close(fd);
> > > > > > > + igt_require_f(0, "Failed to write 'disk' to /sys/power/state");
> > > > > > > + }
> > > > > > > + close(fd);
> > > > > > > +}
> > > > > > > +
> > > > > > > +static void ensure_grub_boots_same_kernel(void)
> > > > > >
> > > > > > I don't believe that this should be to the test case to ensure.
> > > > > > This should be ensured by the infra to support these s4 testcases.
> > > > >
> > > > > This is bit so-so. If guys would run this test on their own
> > > > > boxes to do some debugging, forgetting to always set the correct
> > > > > kernel for the next in-test reboot would cause incorrect results.
> > > > >
> > > > > >
> > > > > > > +{
> > > > > > > + char cmdline[1024];
> > > > > > > + char current_kernel[256];
> > > > > > > + char last_menuentry[512] = "";
> > > > > > > + char grub_entry[512];
> > > > > > > + char command[1024];
> > > > > > > + FILE *cmdline_file, *grub_cfg;
> > > > > > > + char line[1024];
> > > > > > > + bool kernel_found = false;
> > > > > > > + char *kernel_arg;
> > > > > > > + char *kernel_end;
> > > > > > > +
> > > > > > > + /* Read /proc/cmdline to get the current kernel image */
> > > > > > > + cmdline_file = fopen(PROC_CMDLINE, "r");
> > > > > > > + igt_require_f(cmdline_file, "Failed to open
> > > > > > > + /proc/cmdline");
> > > > > > > +
> > > > > > > + if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
> > > > > > > + fclose(cmdline_file);
> > > > > > > + igt_require_f(0, "Failed to read /proc/cmdline");
> > > > > > > + }
> > > > > > > + fclose(cmdline_file);
> > > > > > > +
> > > > > > > + /* Parse the kernel image from cmdline */
> > > > > > > + kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
> > > > > > > + igt_require_f(kernel_arg, "BOOT_IMAGE= not found in
> > > > > > > + /proc/cmdline\n");
> > > > > > > +
> > > > > > > + kernel_arg += strlen("BOOT_IMAGE=");
> > > > > > > + kernel_end = strchr(kernel_arg, ' ');
> > > > > > > +
> > > > > > > + if (!kernel_end)
> > > > > > > + kernel_end = kernel_arg + strlen(kernel_arg);
> > > > > > > +
> > > > > > > + snprintf(current_kernel, sizeof(current_kernel), "%.*s",
> > > > > > > + (int)(kernel_end - kernel_arg), kernel_arg);
> > > > > > > + igt_debug("Current kernel image: %s\n",
> > > > > > > + current_kernel);
> > > > > > > +
> > > > > > > + /* Open GRUB config file to find matching entry */
> > > > > > > + grub_cfg = fopen(GRUB_CFG_PATH, "r");
> > > > > > > + igt_require_f(grub_cfg, "Failed to open GRUB
> > > > > > > + configuration file");
> > > > > > > +
> > > > > > > +
> > > > > > > + while (fgets(line, sizeof(line), grub_cfg)) {
> > > > > > > + /* Check if the line contains a menuentry */
> > > > > > > + if (strstr(line, "menuentry")) {
> > > > > > > + /* Store the menuentry line */
> > > > > > > + char *start = strchr(line, '\'');
> > > > > > > + char *end = start ? strchr(start + 1,
> > > > > > > + '\'') : NULL;
> > > > > > > +
> > > > > > > + if (start && end) {
> > > > > > > + snprintf(last_menuentry,
> > > > > > > + sizeof(last_menuentry),
> > > > > > > + "%.*s", (int)(end - start - 1),
> > > > > > > + start + 1);
> > > > > > > + }
> > > > > > > + }
> > > > > > > +
> > > > > > > + /* Check if the current line contains the kernel */
> > > > > > > + if (strstr(line, current_kernel)) {
> > > > > > > + /* Use the last seen menuentry as the match */
> > > > > > > + snprintf(grub_entry, sizeof(grub_entry), "%s",
> > > > > > > + last_menuentry);
> > > > > > > + kernel_found = true;
> > > > > > > + break;
> > > > > > > + }
> > > > > > > + }
> > > > > > > +
> > > > > > > + fclose(grub_cfg);
> > > > > > > +
> > > > > > > + igt_require_f(kernel_found, "Failed to find matching GRUB entry
> for kernel: %s\n",
> > > > > > > + current_kernel);
> > > > > > > +
> > > > > > > + /* Set the GRUB boot target using grub-reboot */
> > > > > > > + snprintf(command, sizeof(command), "grub-reboot \"%s\"",
> grub_entry);
> > > > > > > + igt_require_f(system(command) == 0, "Failed to set GRUB boot
> target to: %s\n",
> > > > > > > + grub_entry);
> > > > > > > +
> > > > > > > + igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
> > > > > > > + current_kernel, grub_entry); }
> > > > > > > +
> > > > > > > +static void hibernate_autoresume(int resume_delay) {
> > > > > > > + check_hibernation_support();
> > > > > > > + set_rtc_wake_timer(resume_delay);
> > > > > > > + ensure_grub_boots_same_kernel();
> > > > > > > + hibernate_system();
> > > > > > > +}
> > > > > > > +
> > > > > > > static void addfb_init(struct igt_fb *fb, struct
> > > > > > > drm_mode_fb_cmd2 *f) {
> > > > > > > int i;
> > > > > > > @@ -839,8 +988,11 @@ static bool try_config(data_t *data,
> > > > > > > enum test_fb_flags fb_flags,
> > > > > > >
> > > > > > > if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
> > > > > > > if (data->flags & TEST_SUSPEND && fb_flags &
> FB_COMPRESSED) {
> > > > > > > -
> igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > > > - SUSPEND_TEST_NONE);
> > > > > > > + if (data->do_hibernate)
> > > > > > > + hibernate_autoresume(30);
> > > > > > > + else
> > > > > > > +
> igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > > > +
> > > > > > > + SUSPEND_TEST_NONE);
> > > > > > >
> > > > > > > /* on resume check flat ccs is still compressed */
> > > > > > > if (is_xe_device(data->drm_fd) && @@
> > > > > > > -1044,6 +1196,9 @@ static int opt_handler(int opt, int opt_index,
> void *opt_data)
> > > > > > > data->user_seed = true;
> > > > > > > data->seed = strtoul(optarg, NULL, 0);
> > > > > > > break;
> > > > > > > + case 'r':
> > > > > > > + data->do_hibernate = true;
> > > > > > > + break;
> > > > > > > default:
> > > > > > > return IGT_OPT_HANDLER_ERROR;
> > > > > > > }
> > > > > > > @@ -1056,9 +1211,10 @@ static data_t data; static const
> > > > > > > char *help_str = " -c\t\tCheck the presence of compression
> > > > > > > meta-data\n"
> > > > > > > " -s <seed>\tSeed for random number generator\n"
> > > > > > > +" -r\t\tOn suspend test do full hibernate with reboot\n"
> > > > > > > ;
> > > > > > >
> > > > > > > -igt_main_args("cs:", NULL, help_str, opt_handler, &data)
> > > > > > > +igt_main_args("csr:", NULL, help_str, opt_handler, &data)
> > > > > > > {
> > > > > > > igt_fixture {
> > > > > > > data.drm_fd =
> > > > > > > drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> > > > > > > --
> > > > > > > 2.45.2
> > > > > > >
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
2024-11-27 13:21 ` Juha-Pekka Heikkilä
2024-11-28 6:19 ` Gupta, Anshuman
@ 2024-11-28 12:44 ` Rodrigo Vivi
2024-11-28 15:40 ` Juha-Pekka Heikkilä
1 sibling, 1 reply; 17+ messages in thread
From: Rodrigo Vivi @ 2024-11-28 12:44 UTC (permalink / raw)
To: Juha-Pekka Heikkilä; +Cc: Development mailing list for IGT GPU Tools
On Wed, Nov 27, 2024 at 03:21:17PM +0200, Juha-Pekka Heikkilä wrote:
> On Tue, Nov 26, 2024 at 7:12 PM Juha-Pekka Heikkilä
> <juhapekka.heikkila@gmail.com> wrote:
> >
> > On Tue, Nov 26, 2024 at 3:00 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> > >
> > > On Tue, Nov 26, 2024 at 10:07:37AM +0200, Juha-Pekka Heikkilä wrote:
> > > > Seems I accidentally replied only to Rodrigo so I'll add igt-dev back here.
> > > >
> > > > On Mon, Nov 25, 2024 at 10:03 PM Juha-Pekka Heikkilä
> > > > <juhapekka.heikkila@gmail.com> wrote:
> > > > >
> > > > > On Mon, Nov 25, 2024 at 8:20 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> > > > > >
> > > > > > On Mon, Nov 25, 2024 at 06:19:58PM +0200, Juha-Pekka Heikkila wrote:
> > > > > > > Add hibernate test which bring entire system down for short
> > > > > > > hibernate. This mode is added to suspend tests to be run
> > > > > > > manually with '-r' flag because this is not ci friendly test,
> > > > > > > on hibernate ci would lose connection to the hibernated box.
> > > > > >
> > > > > > I know that nowadays it is a beast to get hibernate to work in the distros,
> > > > > > but afaik our CI is prepared for that, otherwise we wouldn't be able to
> > > > > > get these:
> > > > > >
> > > > > > https://intel-gfx-ci.01.org/tree/intel-xe/index.html?testfilter=s4
> > > > >
> > > > > If you go see those test machine bootlogs you see there is no resume
> > > > > configured. I think all these current s4 tests work with pm_test hence
> > > > > also original problem where tests didn't reproduce that broken ccs
> > > > > after resume. If you try running on your own box any of these s4 tests
> > > > > you'll see they don't go fully down. I wanted to have a test that does
> > > > > the same as real hibernate.
> > >
> > > hmmm... something indeed changed because of CI.
> > >
> > > I originally implemented them without SUSPEND_TEST_DEVICES, in a way that
> > > the machine was going fully down in my ADL+DG2 machine.
> > >
> > > But commit 4b767566bbc ("tests/intel/xe_pm: S4 to go up to devices only")
> > > modified that to make it work for CI.
> > >
> > > So, perhaps we can do both, have the manual setup with -r and no TEST
> > > and have the one with TEST but not fully down.
> > >
> > > Have you reproduced the CSS reported bug? Then have you tried the solution
> > > with the TEST?
> >
> > I suspect I earlier got lot of frozen test machines, with these test
> > it always affect testing of new test. This test I now have here does
> > reproduce that ccs bug with kernel where it's not fixed.
> >
> > >
> > > > >
> > > > > >
> > > > > > >
> > > > > > > For this test to work kernel resume point need to be set using swapfile, from
> > > > > > > kernel command line is checked if there is found something along the lines of
> > > > > > > "resume=/dev/nvme0n1p2 resume_offset=73527296" or so to verify hibernate
> > > > > > > will be successfull.
> > > > > >
> > > > > > Indeed painful nowadays... I can't even believe this gap came from user
> > > > > > report... is anyone really still using hibernation nowadays?! :)
> > > > > >
> > > > > > >
> > > > > > > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > > > > > > ---
> > > > > > > tests/intel/kms_ccs.c | 162 +++++++++++++++++++++++++++++++++++++++++-
> > > > > > > 1 file changed, 159 insertions(+), 3 deletions(-)
> > > > > > >
> > > > > > > diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
> > > > > > > index 3e9a57863..fd2fe9d3d 100644
> > > > > > > --- a/tests/intel/kms_ccs.c
> > > > > > > +++ b/tests/intel/kms_ccs.c
> > > > > > > @@ -190,6 +190,7 @@ typedef struct {
> > > > > > > bool user_seed;
> > > > > > > enum igt_commit_style commit;
> > > > > > > int fb_list_length;
> > > > > > > + bool do_hibernate;
> > > > > > > struct {
> > > > > > > struct igt_fb fb;
> > > > > > > int width, height;
> > > > > > > @@ -271,6 +272,154 @@ static const struct {
> > > > > > > */
> > > > > > > #define MAX_SPRITE_PLANE_WIDTH 2000
> > > > > > >
> > > > > > > +/* constants for hibenate test */
> > > > > > > +#define RTC_WAKE_CMD "rtcwake -m no -s %d"
> > > > > >
> > > > > > Why are you calling rtcwake directly instead of using
> > > > > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK...) ?!
> > > > > >
> > > > > > Please check lib/igt_aux lib/igt_pm and tests/xe/xe_pm
> > > > >
> > > > > I wanted rtc only to wake up the machine. On
> > > > > igt_system_suspend_autoresume(..) I'd get pm_test handling which I
> > > > > want to avoid here.
> > >
> > > you can do that.... just pass SUSPEND_TEST_NONE instead of
> > > SUSPEND_TEST_DEVICES as the second argument. So, a lot of the logic
> > > here can be simplified.
> > >
> > > And as I told perhaps we can have 3 cases:
> > >
> > > hibernate-manual:
> > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> > > SUSPEND_TEST_NONE);
> > > hibernate-auto:
> > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> > > SUSPEND_TEST_DEVICES);
> > > suspend:
> > > igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > SUSPEND_TEST_NONE);
> >
> > I'll try that, if that reproduce the bug then I can cut out those
> > hibernate_system(..) and set_rtc_wake_timer(..) and move
> > check_hibernation_support(..) to libigt. For reproducing I'll anyway
> > need to go to lab to see the machine, when I try these on ril system
> > it seems to want to restore my machine when it first time stay down
> > instead of resuming.
>
> There is something fishy going on with
> igt_system_suspend_autoresume(..). When I try to use
> SUSPEND_STATE_DISK and SUSPEND_TEST_NONE, lnl boxes I've tried never
> successfully hibernated. These boxes start to go down but don't power
> off and I see same code always stuck on board led display. I'm not
> able to pinpoint the issue since I'm not so familiar with pm code. On
> same boxes, the hibernate code I have on this patch did work 5/5. As
> above mentioned difference is I use rtc to wake the system but I on my
> own go write /sys/power/state. While it should do the same thing,
> something is different..no idea could it be just some firmware issue
> vs timing but result is anyway different. I had quick try with mtl and
> i915 igt_system_suspend_autoresume(..) where things did work as
> expected.
hmm that's indeed interesting... the autoresume uses rtcwake anyway no?
perhaps some different option passed to rtcwake?
well, to be honest, I have seen many cases where our autoresume gets
stuck in different platforms with differents levels of suspend :/
Maybe we could try to improve our autoresume to ensure it is taking
your safer sequence here? or at least have your safer sequence as
an alternative inside the lib/igt_pm as well?
Thanks a lot for all the experiments
>
> >
> > >
> > >
> > > > >
> > > > > >
> > > > > > > +#define PROC_CMDLINE "/proc/cmdline"
> > > > > > > +#define SYS_POWER_STATE "/sys/power/state"
> > > > > > > +#define GRUB_CFG_PATH "/boot/grub/grub.cfg"
> > > > > > > +
> > > > > > > +static void check_hibernation_support(void)
> > > > > > > +{
> > > > > > > + int fd;
> > > > > > > + char buffer[2048];
> > > > > > > + ssize_t bytes_read;
> > > > > > > + FILE *cmdline;
> > > > > > > +
> > > > > > > + /* Check if hibernation is supported in /sys/power/state */
> > > > > > > + fd = open(SYS_POWER_STATE, O_RDONLY);
> > > > > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > > > > + bytes_read = read(fd, buffer, sizeof(buffer) - 1);
> > > > > > > + close(fd);
> > > > > > > +
> > > > > > > + igt_require_f(bytes_read > 0, "Failed to read /sys/power/state");
> > > > > > > +
> > > > > > > + buffer[bytes_read] = '\0';
> > > > > > > + igt_require_f(strstr(buffer, "disk") != NULL,
> > > > > > > + "Hibernation (suspend to disk) is not supported on this system.\n");
> > > > > > > +
> > > > > > > + /* Check if resume is configured in kernel command line */
> > > > > > > + cmdline = fopen(PROC_CMDLINE, "r");
> > > > > > > + igt_require_f(cmdline, "Failed to open /proc/cmdline");
> > > > > > > + fread(buffer, 1, sizeof(buffer) - 1, cmdline);
> > > > > > > + fclose(cmdline);
> > > > > > > +
> > > > > > > + igt_require_f(strstr(buffer, "resume="),
> > > > > > > + "Kernel does not have 'resume' parameter configured for hibernation.\n");
> > > > > > > +}
> > > > > >
> > > > > > we should probably have this in the igt_pm lib to be used in other places
> > > > > > like xe_pm. I remember we had discussions when s4 started failing in CI,
> > > > > > but apparently the solution was to make CI to work with it instead of
> > > > > > protecting our s4 tests...
> > > > >
> > > > > I was last week talking with Jari Tahvanainen about this. Our ci is
> > > > > not configured for the machines really hibernating, he suggested we
> > > > > first start with one test, start to run it in special box, and we go
> > > > > on from there .. so, here we are :)
> > > > > I agree final destination for this function should be in lib/ like in
> > > > > igt_pm or so.
> > > > >
> > > > > >
> > > > > > > +
> > > > > > > +static void set_rtc_wake_timer(int seconds)
> > > > > > > +{
> > > > > > > + char command[256];
> > > > > > > +
> > > > > > > + snprintf(command, sizeof(command), RTC_WAKE_CMD, seconds);
> > > > > > > +
> > > > > > > + igt_require_f(system(command) == 0,
> > > > > > > + "Failed to set RTC wake timer.\n");
> > > > > > > +}
> > > > > > > +
> > > > > > > +static void hibernate_system(void)
> > > > > > > +{
> > > > > > > + int fd;
> > > > > > > +
> > > > > > > + fd = open(SYS_POWER_STATE, O_WRONLY);
> > > > > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > > > > +
> > > > > > > + if (write(fd, "disk", 4) != 4) {
> > > > > > > + close(fd);
> > > > > > > + igt_require_f(0, "Failed to write 'disk' to /sys/power/state");
> > > > > > > + }
> > > > > > > + close(fd);
> > > > > > > +}
> > > > > > > +
> > > > > > > +static void ensure_grub_boots_same_kernel(void)
> > > > > >
> > > > > > I don't believe that this should be to the test case to ensure.
> > > > > > This should be ensured by the infra to support these s4 testcases.
> > > > >
> > > > > This is bit so-so. If guys would run this test on their own boxes to
> > > > > do some debugging, forgetting to always set the correct kernel for the
> > > > > next in-test reboot would cause incorrect results.
> > > > >
> > > > > >
> > > > > > > +{
> > > > > > > + char cmdline[1024];
> > > > > > > + char current_kernel[256];
> > > > > > > + char last_menuentry[512] = "";
> > > > > > > + char grub_entry[512];
> > > > > > > + char command[1024];
> > > > > > > + FILE *cmdline_file, *grub_cfg;
> > > > > > > + char line[1024];
> > > > > > > + bool kernel_found = false;
> > > > > > > + char *kernel_arg;
> > > > > > > + char *kernel_end;
> > > > > > > +
> > > > > > > + /* Read /proc/cmdline to get the current kernel image */
> > > > > > > + cmdline_file = fopen(PROC_CMDLINE, "r");
> > > > > > > + igt_require_f(cmdline_file, "Failed to open /proc/cmdline");
> > > > > > > +
> > > > > > > + if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
> > > > > > > + fclose(cmdline_file);
> > > > > > > + igt_require_f(0, "Failed to read /proc/cmdline");
> > > > > > > + }
> > > > > > > + fclose(cmdline_file);
> > > > > > > +
> > > > > > > + /* Parse the kernel image from cmdline */
> > > > > > > + kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
> > > > > > > + igt_require_f(kernel_arg, "BOOT_IMAGE= not found in /proc/cmdline\n");
> > > > > > > +
> > > > > > > + kernel_arg += strlen("BOOT_IMAGE=");
> > > > > > > + kernel_end = strchr(kernel_arg, ' ');
> > > > > > > +
> > > > > > > + if (!kernel_end)
> > > > > > > + kernel_end = kernel_arg + strlen(kernel_arg);
> > > > > > > +
> > > > > > > + snprintf(current_kernel, sizeof(current_kernel), "%.*s",
> > > > > > > + (int)(kernel_end - kernel_arg), kernel_arg);
> > > > > > > + igt_debug("Current kernel image: %s\n", current_kernel);
> > > > > > > +
> > > > > > > + /* Open GRUB config file to find matching entry */
> > > > > > > + grub_cfg = fopen(GRUB_CFG_PATH, "r");
> > > > > > > + igt_require_f(grub_cfg, "Failed to open GRUB configuration file");
> > > > > > > +
> > > > > > > +
> > > > > > > + while (fgets(line, sizeof(line), grub_cfg)) {
> > > > > > > + /* Check if the line contains a menuentry */
> > > > > > > + if (strstr(line, "menuentry")) {
> > > > > > > + /* Store the menuentry line */
> > > > > > > + char *start = strchr(line, '\'');
> > > > > > > + char *end = start ? strchr(start + 1, '\'') : NULL;
> > > > > > > +
> > > > > > > + if (start && end) {
> > > > > > > + snprintf(last_menuentry,
> > > > > > > + sizeof(last_menuentry),
> > > > > > > + "%.*s", (int)(end - start - 1),
> > > > > > > + start + 1);
> > > > > > > + }
> > > > > > > + }
> > > > > > > +
> > > > > > > + /* Check if the current line contains the kernel */
> > > > > > > + if (strstr(line, current_kernel)) {
> > > > > > > + /* Use the last seen menuentry as the match */
> > > > > > > + snprintf(grub_entry, sizeof(grub_entry), "%s",
> > > > > > > + last_menuentry);
> > > > > > > + kernel_found = true;
> > > > > > > + break;
> > > > > > > + }
> > > > > > > + }
> > > > > > > +
> > > > > > > + fclose(grub_cfg);
> > > > > > > +
> > > > > > > + igt_require_f(kernel_found, "Failed to find matching GRUB entry for kernel: %s\n",
> > > > > > > + current_kernel);
> > > > > > > +
> > > > > > > + /* Set the GRUB boot target using grub-reboot */
> > > > > > > + snprintf(command, sizeof(command), "grub-reboot \"%s\"", grub_entry);
> > > > > > > + igt_require_f(system(command) == 0, "Failed to set GRUB boot target to: %s\n",
> > > > > > > + grub_entry);
> > > > > > > +
> > > > > > > + igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
> > > > > > > + current_kernel, grub_entry);
> > > > > > > +}
> > > > > > > +
> > > > > > > +static void hibernate_autoresume(int resume_delay)
> > > > > > > +{
> > > > > > > + check_hibernation_support();
> > > > > > > + set_rtc_wake_timer(resume_delay);
> > > > > > > + ensure_grub_boots_same_kernel();
> > > > > > > + hibernate_system();
> > > > > > > +}
> > > > > > > +
> > > > > > > static void addfb_init(struct igt_fb *fb, struct drm_mode_fb_cmd2 *f)
> > > > > > > {
> > > > > > > int i;
> > > > > > > @@ -839,8 +988,11 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
> > > > > > >
> > > > > > > if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
> > > > > > > if (data->flags & TEST_SUSPEND && fb_flags & FB_COMPRESSED) {
> > > > > > > - igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > > > - SUSPEND_TEST_NONE);
> > > > > > > + if (data->do_hibernate)
> > > > > > > + hibernate_autoresume(30);
> > > > > > > + else
> > > > > > > + igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > > > + SUSPEND_TEST_NONE);
> > > > > > >
> > > > > > > /* on resume check flat ccs is still compressed */
> > > > > > > if (is_xe_device(data->drm_fd) &&
> > > > > > > @@ -1044,6 +1196,9 @@ static int opt_handler(int opt, int opt_index, void *opt_data)
> > > > > > > data->user_seed = true;
> > > > > > > data->seed = strtoul(optarg, NULL, 0);
> > > > > > > break;
> > > > > > > + case 'r':
> > > > > > > + data->do_hibernate = true;
> > > > > > > + break;
> > > > > > > default:
> > > > > > > return IGT_OPT_HANDLER_ERROR;
> > > > > > > }
> > > > > > > @@ -1056,9 +1211,10 @@ static data_t data;
> > > > > > > static const char *help_str =
> > > > > > > " -c\t\tCheck the presence of compression meta-data\n"
> > > > > > > " -s <seed>\tSeed for random number generator\n"
> > > > > > > +" -r\t\tOn suspend test do full hibernate with reboot\n"
> > > > > > > ;
> > > > > > >
> > > > > > > -igt_main_args("cs:", NULL, help_str, opt_handler, &data)
> > > > > > > +igt_main_args("csr:", NULL, help_str, opt_handler, &data)
> > > > > > > {
> > > > > > > igt_fixture {
> > > > > > > data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> > > > > > > --
> > > > > > > 2.45.2
> > > > > > >
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
2024-11-28 12:44 ` Rodrigo Vivi
@ 2024-11-28 15:40 ` Juha-Pekka Heikkilä
0 siblings, 0 replies; 17+ messages in thread
From: Juha-Pekka Heikkilä @ 2024-11-28 15:40 UTC (permalink / raw)
To: Rodrigo Vivi; +Cc: Development mailing list for IGT GPU Tools
On Thu, Nov 28, 2024 at 2:45 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
>
> On Wed, Nov 27, 2024 at 03:21:17PM +0200, Juha-Pekka Heikkilä wrote:
> > On Tue, Nov 26, 2024 at 7:12 PM Juha-Pekka Heikkilä
> > <juhapekka.heikkila@gmail.com> wrote:
> > >
> > > On Tue, Nov 26, 2024 at 3:00 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> > > >
> > > > On Tue, Nov 26, 2024 at 10:07:37AM +0200, Juha-Pekka Heikkilä wrote:
> > > > > Seems I accidentally replied only to Rodrigo so I'll add igt-dev back here.
> > > > >
> > > > > On Mon, Nov 25, 2024 at 10:03 PM Juha-Pekka Heikkilä
> > > > > <juhapekka.heikkila@gmail.com> wrote:
> > > > > >
> > > > > > On Mon, Nov 25, 2024 at 8:20 PM Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> > > > > > >
> > > > > > > On Mon, Nov 25, 2024 at 06:19:58PM +0200, Juha-Pekka Heikkila wrote:
> > > > > > > > Add hibernate test which bring entire system down for short
> > > > > > > > hibernate. This mode is added to suspend tests to be run
> > > > > > > > manually with '-r' flag because this is not ci friendly test,
> > > > > > > > on hibernate ci would lose connection to the hibernated box.
> > > > > > >
> > > > > > > I know that nowadays it is a beast to get hibernate to work in the distros,
> > > > > > > but afaik our CI is prepared for that, otherwise we wouldn't be able to
> > > > > > > get these:
> > > > > > >
> > > > > > > https://intel-gfx-ci.01.org/tree/intel-xe/index.html?testfilter=s4
> > > > > >
> > > > > > If you go see those test machine bootlogs you see there is no resume
> > > > > > configured. I think all these current s4 tests work with pm_test hence
> > > > > > also original problem where tests didn't reproduce that broken ccs
> > > > > > after resume. If you try running on your own box any of these s4 tests
> > > > > > you'll see they don't go fully down. I wanted to have a test that does
> > > > > > the same as real hibernate.
> > > >
> > > > hmmm... something indeed changed because of CI.
> > > >
> > > > I originally implemented them without SUSPEND_TEST_DEVICES, in a way that
> > > > the machine was going fully down in my ADL+DG2 machine.
> > > >
> > > > But commit 4b767566bbc ("tests/intel/xe_pm: S4 to go up to devices only")
> > > > modified that to make it work for CI.
> > > >
> > > > So, perhaps we can do both, have the manual setup with -r and no TEST
> > > > and have the one with TEST but not fully down.
> > > >
> > > > Have you reproduced the CSS reported bug? Then have you tried the solution
> > > > with the TEST?
> > >
> > > I suspect I earlier got lot of frozen test machines, with these test
> > > it always affect testing of new test. This test I now have here does
> > > reproduce that ccs bug with kernel where it's not fixed.
> > >
> > > >
> > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > > For this test to work kernel resume point need to be set using swapfile, from
> > > > > > > > kernel command line is checked if there is found something along the lines of
> > > > > > > > "resume=/dev/nvme0n1p2 resume_offset=73527296" or so to verify hibernate
> > > > > > > > will be successfull.
> > > > > > >
> > > > > > > Indeed painful nowadays... I can't even believe this gap came from user
> > > > > > > report... is anyone really still using hibernation nowadays?! :)
> > > > > > >
> > > > > > > >
> > > > > > > > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > > > > > > > ---
> > > > > > > > tests/intel/kms_ccs.c | 162 +++++++++++++++++++++++++++++++++++++++++-
> > > > > > > > 1 file changed, 159 insertions(+), 3 deletions(-)
> > > > > > > >
> > > > > > > > diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
> > > > > > > > index 3e9a57863..fd2fe9d3d 100644
> > > > > > > > --- a/tests/intel/kms_ccs.c
> > > > > > > > +++ b/tests/intel/kms_ccs.c
> > > > > > > > @@ -190,6 +190,7 @@ typedef struct {
> > > > > > > > bool user_seed;
> > > > > > > > enum igt_commit_style commit;
> > > > > > > > int fb_list_length;
> > > > > > > > + bool do_hibernate;
> > > > > > > > struct {
> > > > > > > > struct igt_fb fb;
> > > > > > > > int width, height;
> > > > > > > > @@ -271,6 +272,154 @@ static const struct {
> > > > > > > > */
> > > > > > > > #define MAX_SPRITE_PLANE_WIDTH 2000
> > > > > > > >
> > > > > > > > +/* constants for hibenate test */
> > > > > > > > +#define RTC_WAKE_CMD "rtcwake -m no -s %d"
> > > > > > >
> > > > > > > Why are you calling rtcwake directly instead of using
> > > > > > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK...) ?!
> > > > > > >
> > > > > > > Please check lib/igt_aux lib/igt_pm and tests/xe/xe_pm
> > > > > >
> > > > > > I wanted rtc only to wake up the machine. On
> > > > > > igt_system_suspend_autoresume(..) I'd get pm_test handling which I
> > > > > > want to avoid here.
> > > >
> > > > you can do that.... just pass SUSPEND_TEST_NONE instead of
> > > > SUSPEND_TEST_DEVICES as the second argument. So, a lot of the logic
> > > > here can be simplified.
> > > >
> > > > And as I told perhaps we can have 3 cases:
> > > >
> > > > hibernate-manual:
> > > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> > > > SUSPEND_TEST_NONE);
> > > > hibernate-auto:
> > > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> > > > SUSPEND_TEST_DEVICES);
> > > > suspend:
> > > > igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > SUSPEND_TEST_NONE);
> > >
> > > I'll try that, if that reproduce the bug then I can cut out those
> > > hibernate_system(..) and set_rtc_wake_timer(..) and move
> > > check_hibernation_support(..) to libigt. For reproducing I'll anyway
> > > need to go to lab to see the machine, when I try these on ril system
> > > it seems to want to restore my machine when it first time stay down
> > > instead of resuming.
> >
> > There is something fishy going on with
> > igt_system_suspend_autoresume(..). When I try to use
> > SUSPEND_STATE_DISK and SUSPEND_TEST_NONE, lnl boxes I've tried never
> > successfully hibernated. These boxes start to go down but don't power
> > off and I see same code always stuck on board led display. I'm not
> > able to pinpoint the issue since I'm not so familiar with pm code. On
> > same boxes, the hibernate code I have on this patch did work 5/5. As
> > above mentioned difference is I use rtc to wake the system but I on my
> > own go write /sys/power/state. While it should do the same thing,
> > something is different..no idea could it be just some firmware issue
> > vs timing but result is anyway different. I had quick try with mtl and
> > i915 igt_system_suspend_autoresume(..) where things did work as
> > expected.
>
> hmm that's indeed interesting... the autoresume uses rtcwake anyway no?
> perhaps some different option passed to rtcwake?
>
> well, to be honest, I have seen many cases where our autoresume gets
> stuck in different platforms with differents levels of suspend :/
>
> Maybe we could try to improve our autoresume to ensure it is taking
> your safer sequence here? or at least have your safer sequence as
> an alternative inside the lib/igt_pm as well?
>
I now know what affect the hibernate. I'll need to get lnl boxes here
updated with new fw. Disconnecting all type-c cables made hibernate
through igt_system_suspend_autoresume(..) reliable. I think I would
prefer igt_system_suspend_autoresume type hibernate for test as it
probably is closer to what distros are doing.
Once have latest fw will need to see does this problem still exist. In
any case I'll move code around a bit and move that resume point check
into libigt
/Juha-Pekka
> >
> > >
> > > >
> > > >
> > > > > >
> > > > > > >
> > > > > > > > +#define PROC_CMDLINE "/proc/cmdline"
> > > > > > > > +#define SYS_POWER_STATE "/sys/power/state"
> > > > > > > > +#define GRUB_CFG_PATH "/boot/grub/grub.cfg"
> > > > > > > > +
> > > > > > > > +static void check_hibernation_support(void)
> > > > > > > > +{
> > > > > > > > + int fd;
> > > > > > > > + char buffer[2048];
> > > > > > > > + ssize_t bytes_read;
> > > > > > > > + FILE *cmdline;
> > > > > > > > +
> > > > > > > > + /* Check if hibernation is supported in /sys/power/state */
> > > > > > > > + fd = open(SYS_POWER_STATE, O_RDONLY);
> > > > > > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > > > > > + bytes_read = read(fd, buffer, sizeof(buffer) - 1);
> > > > > > > > + close(fd);
> > > > > > > > +
> > > > > > > > + igt_require_f(bytes_read > 0, "Failed to read /sys/power/state");
> > > > > > > > +
> > > > > > > > + buffer[bytes_read] = '\0';
> > > > > > > > + igt_require_f(strstr(buffer, "disk") != NULL,
> > > > > > > > + "Hibernation (suspend to disk) is not supported on this system.\n");
> > > > > > > > +
> > > > > > > > + /* Check if resume is configured in kernel command line */
> > > > > > > > + cmdline = fopen(PROC_CMDLINE, "r");
> > > > > > > > + igt_require_f(cmdline, "Failed to open /proc/cmdline");
> > > > > > > > + fread(buffer, 1, sizeof(buffer) - 1, cmdline);
> > > > > > > > + fclose(cmdline);
> > > > > > > > +
> > > > > > > > + igt_require_f(strstr(buffer, "resume="),
> > > > > > > > + "Kernel does not have 'resume' parameter configured for hibernation.\n");
> > > > > > > > +}
> > > > > > >
> > > > > > > we should probably have this in the igt_pm lib to be used in other places
> > > > > > > like xe_pm. I remember we had discussions when s4 started failing in CI,
> > > > > > > but apparently the solution was to make CI to work with it instead of
> > > > > > > protecting our s4 tests...
> > > > > >
> > > > > > I was last week talking with Jari Tahvanainen about this. Our ci is
> > > > > > not configured for the machines really hibernating, he suggested we
> > > > > > first start with one test, start to run it in special box, and we go
> > > > > > on from there .. so, here we are :)
> > > > > > I agree final destination for this function should be in lib/ like in
> > > > > > igt_pm or so.
> > > > > >
> > > > > > >
> > > > > > > > +
> > > > > > > > +static void set_rtc_wake_timer(int seconds)
> > > > > > > > +{
> > > > > > > > + char command[256];
> > > > > > > > +
> > > > > > > > + snprintf(command, sizeof(command), RTC_WAKE_CMD, seconds);
> > > > > > > > +
> > > > > > > > + igt_require_f(system(command) == 0,
> > > > > > > > + "Failed to set RTC wake timer.\n");
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > +static void hibernate_system(void)
> > > > > > > > +{
> > > > > > > > + int fd;
> > > > > > > > +
> > > > > > > > + fd = open(SYS_POWER_STATE, O_WRONLY);
> > > > > > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > > > > > +
> > > > > > > > + if (write(fd, "disk", 4) != 4) {
> > > > > > > > + close(fd);
> > > > > > > > + igt_require_f(0, "Failed to write 'disk' to /sys/power/state");
> > > > > > > > + }
> > > > > > > > + close(fd);
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > +static void ensure_grub_boots_same_kernel(void)
> > > > > > >
> > > > > > > I don't believe that this should be to the test case to ensure.
> > > > > > > This should be ensured by the infra to support these s4 testcases.
> > > > > >
> > > > > > This is bit so-so. If guys would run this test on their own boxes to
> > > > > > do some debugging, forgetting to always set the correct kernel for the
> > > > > > next in-test reboot would cause incorrect results.
> > > > > >
> > > > > > >
> > > > > > > > +{
> > > > > > > > + char cmdline[1024];
> > > > > > > > + char current_kernel[256];
> > > > > > > > + char last_menuentry[512] = "";
> > > > > > > > + char grub_entry[512];
> > > > > > > > + char command[1024];
> > > > > > > > + FILE *cmdline_file, *grub_cfg;
> > > > > > > > + char line[1024];
> > > > > > > > + bool kernel_found = false;
> > > > > > > > + char *kernel_arg;
> > > > > > > > + char *kernel_end;
> > > > > > > > +
> > > > > > > > + /* Read /proc/cmdline to get the current kernel image */
> > > > > > > > + cmdline_file = fopen(PROC_CMDLINE, "r");
> > > > > > > > + igt_require_f(cmdline_file, "Failed to open /proc/cmdline");
> > > > > > > > +
> > > > > > > > + if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
> > > > > > > > + fclose(cmdline_file);
> > > > > > > > + igt_require_f(0, "Failed to read /proc/cmdline");
> > > > > > > > + }
> > > > > > > > + fclose(cmdline_file);
> > > > > > > > +
> > > > > > > > + /* Parse the kernel image from cmdline */
> > > > > > > > + kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
> > > > > > > > + igt_require_f(kernel_arg, "BOOT_IMAGE= not found in /proc/cmdline\n");
> > > > > > > > +
> > > > > > > > + kernel_arg += strlen("BOOT_IMAGE=");
> > > > > > > > + kernel_end = strchr(kernel_arg, ' ');
> > > > > > > > +
> > > > > > > > + if (!kernel_end)
> > > > > > > > + kernel_end = kernel_arg + strlen(kernel_arg);
> > > > > > > > +
> > > > > > > > + snprintf(current_kernel, sizeof(current_kernel), "%.*s",
> > > > > > > > + (int)(kernel_end - kernel_arg), kernel_arg);
> > > > > > > > + igt_debug("Current kernel image: %s\n", current_kernel);
> > > > > > > > +
> > > > > > > > + /* Open GRUB config file to find matching entry */
> > > > > > > > + grub_cfg = fopen(GRUB_CFG_PATH, "r");
> > > > > > > > + igt_require_f(grub_cfg, "Failed to open GRUB configuration file");
> > > > > > > > +
> > > > > > > > +
> > > > > > > > + while (fgets(line, sizeof(line), grub_cfg)) {
> > > > > > > > + /* Check if the line contains a menuentry */
> > > > > > > > + if (strstr(line, "menuentry")) {
> > > > > > > > + /* Store the menuentry line */
> > > > > > > > + char *start = strchr(line, '\'');
> > > > > > > > + char *end = start ? strchr(start + 1, '\'') : NULL;
> > > > > > > > +
> > > > > > > > + if (start && end) {
> > > > > > > > + snprintf(last_menuentry,
> > > > > > > > + sizeof(last_menuentry),
> > > > > > > > + "%.*s", (int)(end - start - 1),
> > > > > > > > + start + 1);
> > > > > > > > + }
> > > > > > > > + }
> > > > > > > > +
> > > > > > > > + /* Check if the current line contains the kernel */
> > > > > > > > + if (strstr(line, current_kernel)) {
> > > > > > > > + /* Use the last seen menuentry as the match */
> > > > > > > > + snprintf(grub_entry, sizeof(grub_entry), "%s",
> > > > > > > > + last_menuentry);
> > > > > > > > + kernel_found = true;
> > > > > > > > + break;
> > > > > > > > + }
> > > > > > > > + }
> > > > > > > > +
> > > > > > > > + fclose(grub_cfg);
> > > > > > > > +
> > > > > > > > + igt_require_f(kernel_found, "Failed to find matching GRUB entry for kernel: %s\n",
> > > > > > > > + current_kernel);
> > > > > > > > +
> > > > > > > > + /* Set the GRUB boot target using grub-reboot */
> > > > > > > > + snprintf(command, sizeof(command), "grub-reboot \"%s\"", grub_entry);
> > > > > > > > + igt_require_f(system(command) == 0, "Failed to set GRUB boot target to: %s\n",
> > > > > > > > + grub_entry);
> > > > > > > > +
> > > > > > > > + igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
> > > > > > > > + current_kernel, grub_entry);
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > +static void hibernate_autoresume(int resume_delay)
> > > > > > > > +{
> > > > > > > > + check_hibernation_support();
> > > > > > > > + set_rtc_wake_timer(resume_delay);
> > > > > > > > + ensure_grub_boots_same_kernel();
> > > > > > > > + hibernate_system();
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > static void addfb_init(struct igt_fb *fb, struct drm_mode_fb_cmd2 *f)
> > > > > > > > {
> > > > > > > > int i;
> > > > > > > > @@ -839,8 +988,11 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
> > > > > > > >
> > > > > > > > if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
> > > > > > > > if (data->flags & TEST_SUSPEND && fb_flags & FB_COMPRESSED) {
> > > > > > > > - igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > > > > - SUSPEND_TEST_NONE);
> > > > > > > > + if (data->do_hibernate)
> > > > > > > > + hibernate_autoresume(30);
> > > > > > > > + else
> > > > > > > > + igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > > > > + SUSPEND_TEST_NONE);
> > > > > > > >
> > > > > > > > /* on resume check flat ccs is still compressed */
> > > > > > > > if (is_xe_device(data->drm_fd) &&
> > > > > > > > @@ -1044,6 +1196,9 @@ static int opt_handler(int opt, int opt_index, void *opt_data)
> > > > > > > > data->user_seed = true;
> > > > > > > > data->seed = strtoul(optarg, NULL, 0);
> > > > > > > > break;
> > > > > > > > + case 'r':
> > > > > > > > + data->do_hibernate = true;
> > > > > > > > + break;
> > > > > > > > default:
> > > > > > > > return IGT_OPT_HANDLER_ERROR;
> > > > > > > > }
> > > > > > > > @@ -1056,9 +1211,10 @@ static data_t data;
> > > > > > > > static const char *help_str =
> > > > > > > > " -c\t\tCheck the presence of compression meta-data\n"
> > > > > > > > " -s <seed>\tSeed for random number generator\n"
> > > > > > > > +" -r\t\tOn suspend test do full hibernate with reboot\n"
> > > > > > > > ;
> > > > > > > >
> > > > > > > > -igt_main_args("cs:", NULL, help_str, opt_handler, &data)
> > > > > > > > +igt_main_args("csr:", NULL, help_str, opt_handler, &data)
> > > > > > > > {
> > > > > > > > igt_fixture {
> > > > > > > > data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> > > > > > > > --
> > > > > > > > 2.45.2
> > > > > > > >
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
2024-11-28 6:19 ` Gupta, Anshuman
@ 2024-11-28 15:50 ` Juha-Pekka Heikkilä
0 siblings, 0 replies; 17+ messages in thread
From: Juha-Pekka Heikkilä @ 2024-11-28 15:50 UTC (permalink / raw)
To: Gupta, Anshuman; +Cc: Vivi, Rodrigo, Development mailing list for IGT GPU Tools
On Thu, Nov 28, 2024 at 8:19 AM Gupta, Anshuman
<anshuman.gupta@intel.com> wrote:
> > -----Original Message-----
> > From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Juha-
> > Pekka Heikkilä
> > Sent: Wednesday, November 27, 2024 6:51 PM
> > To: Vivi, Rodrigo <rodrigo.vivi@intel.com>
> > Cc: Development mailing list for IGT GPU Tools <igt-dev@lists.freedesktop.org>
> > Subject: Re: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
> >
> > On Tue, Nov 26, 2024 at 7:12 PM Juha-Pekka Heikkilä
> > <juhapekka.heikkila@gmail.com> wrote:
> > >
> > > On Tue, Nov 26, 2024 at 3:00 PM Rodrigo Vivi <rodrigo.vivi@intel.com>
> > wrote:
> > > >
> > > > On Tue, Nov 26, 2024 at 10:07:37AM +0200, Juha-Pekka Heikkilä wrote:
> > > > > Seems I accidentally replied only to Rodrigo so I'll add igt-dev back here.
> > > > >
> > > > > On Mon, Nov 25, 2024 at 10:03 PM Juha-Pekka Heikkilä
> > > > > <juhapekka.heikkila@gmail.com> wrote:
> > > > > >
> > > > > > On Mon, Nov 25, 2024 at 8:20 PM Rodrigo Vivi
> > <rodrigo.vivi@intel.com> wrote:
> > > > > > >
> > > > > > > On Mon, Nov 25, 2024 at 06:19:58PM +0200, Juha-Pekka Heikkila
> > wrote:
> > > > > > > > Add hibernate test which bring entire system down for short
> > > > > > > > hibernate. This mode is added to suspend tests to be run
> > > > > > > > manually with '-r' flag because this is not ci friendly
> > > > > > > > test, on hibernate ci would lose connection to the hibernated box.
> > > > > > >
> > > > > > > I know that nowadays it is a beast to get hibernate to work in
> > > > > > > the distros, but afaik our CI is prepared for that, otherwise
> > > > > > > we wouldn't be able to get these:
> > > > > > >
> > > > > > > https://intel-gfx-ci.01.org/tree/intel-xe/index.html?testfilte
> > > > > > > r=s4
> > > > > >
> > > > > > If you go see those test machine bootlogs you see there is no
> > > > > > resume configured. I think all these current s4 tests work with
> > > > > > pm_test hence also original problem where tests didn't reproduce
> > > > > > that broken ccs after resume. If you try running on your own box
> > > > > > any of these s4 tests you'll see they don't go fully down. I
> > > > > > wanted to have a test that does the same as real hibernate.
> > > >
> > > > hmmm... something indeed changed because of CI.
> Network driver does not resume properly and take time during actual hibernation,
> AFAIU the problem might br igt tests are forked by igt_runner and igt_runner is a child of bash ssh instance.
> Ssh connection are prone to disconnect on loss of network that will kill the bash and igt runner and igt test will be zombie.
> If we can run igt runner as a background process or as native on console, and should make igt_runner to wait for network resume.
You mean ssh connection gives up too soon? For that I have in my ssh
config these
ServerAliveInterval 500
ServerAliveCountMax 7
this gives the test box almost one hour time to respond back, ssh will
wait patiently. I use one hour here because I sometimes use kgdb.
/Juha-Pekka
> > > >
> > > > I originally implemented them without SUSPEND_TEST_DEVICES, in a way
> > > > that the machine was going fully down in my ADL+DG2 machine.
> > > >
> > > > But commit 4b767566bbc ("tests/intel/xe_pm: S4 to go up to devices
> > > > only") modified that to make it work for CI.
> > > >
> > > > So, perhaps we can do both, have the manual setup with -r and no
> > > > TEST and have the one with TEST but not fully down.
> > > >
> > > > Have you reproduced the CSS reported bug? Then have you tried the
> > > > solution with the TEST?
> > >
> > > I suspect I earlier got lot of frozen test machines, with these test
> > > it always affect testing of new test. This test I now have here does
> > > reproduce that ccs bug with kernel where it's not fixed.
> > >
> > > >
> > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > > For this test to work kernel resume point need to be set
> > > > > > > > using swapfile, from kernel command line is checked if there
> > > > > > > > is found something along the lines of
> > > > > > > > "resume=/dev/nvme0n1p2 resume_offset=73527296" or so to
> > > > > > > > verify hibernate will be successfull.
> > > > > > >
> > > > > > > Indeed painful nowadays... I can't even believe this gap came
> > > > > > > from user report... is anyone really still using hibernation
> > > > > > > nowadays?! :)
> > > > > > >
> > > > > > > >
> > > > > > > > Signed-off-by: Juha-Pekka Heikkila
> > > > > > > > <juhapekka.heikkila@gmail.com>
> > > > > > > > ---
> > > > > > > > tests/intel/kms_ccs.c | 162
> > > > > > > > +++++++++++++++++++++++++++++++++++++++++-
> > > > > > > > 1 file changed, 159 insertions(+), 3 deletions(-)
> > > > > > > >
> > > > > > > > diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
> > > > > > > > index 3e9a57863..fd2fe9d3d 100644
> > > > > > > > --- a/tests/intel/kms_ccs.c
> > > > > > > > +++ b/tests/intel/kms_ccs.c
> > > > > > > > @@ -190,6 +190,7 @@ typedef struct {
> > > > > > > > bool user_seed;
> > > > > > > > enum igt_commit_style commit;
> > > > > > > > int fb_list_length;
> > > > > > > > + bool do_hibernate;
> > > > > > > > struct {
> > > > > > > > struct igt_fb fb;
> > > > > > > > int width, height; @@ -271,6 +272,154 @@
> > > > > > > > static const struct {
> > > > > > > > */
> > > > > > > > #define MAX_SPRITE_PLANE_WIDTH 2000
> > > > > > > >
> > > > > > > > +/* constants for hibenate test */ #define RTC_WAKE_CMD
> > > > > > > > +"rtcwake -m no -s %d"
> > > > > > >
> > > > > > > Why are you calling rtcwake directly instead of using
> > > > > > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK...) ?!
> > > > > > >
> > > > > > > Please check lib/igt_aux lib/igt_pm and tests/xe/xe_pm
> > > > > >
> > > > > > I wanted rtc only to wake up the machine. On
> > > > > > igt_system_suspend_autoresume(..) I'd get pm_test handling which
> > > > > > I want to avoid here.
> > > >
> > > > you can do that.... just pass SUSPEND_TEST_NONE instead of
> > > > SUSPEND_TEST_DEVICES as the second argument. So, a lot of the logic
> > > > here can be simplified.
> > > >
> > > > And as I told perhaps we can have 3 cases:
> > > >
> > > > hibernate-manual:
> > > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> > > > SUSPEND_TEST_NONE);
> > > > hibernate-auto:
> > > > igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> > > > SUSPEND_TEST_DEVICES);
> > > > suspend:
> > > > igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > SUSPEND_TEST_NONE);
> > >
> > > I'll try that, if that reproduce the bug then I can cut out those
> > > hibernate_system(..) and set_rtc_wake_timer(..) and move
> > > check_hibernation_support(..) to libigt. For reproducing I'll anyway
> > > need to go to lab to see the machine, when I try these on ril system
> > > it seems to want to restore my machine when it first time stay down
> > > instead of resuming.
> >
> > There is something fishy going on with
> > igt_system_suspend_autoresume(..). When I try to use SUSPEND_STATE_DISK
> > and SUSPEND_TEST_NONE, lnl boxes I've tried never successfully hibernated.
> > These boxes start to go down but don't power off and I see same code always
> > stuck on board led display. I'm not able to pinpoint the issue since I'm not so
> > familiar with pm code. On same boxes, the hibernate code I have on this patch
> > did work 5/5. As above mentioned difference is I use rtc to wake the system
> > but I on my own go write /sys/power/state. While it should do the same
> > thing, something is different..no idea could it be just some firmware issue vs
> > timing but result is anyway different. I had quick try with mtl and
> > i915 igt_system_suspend_autoresume(..) where things did work as expected.
> >
> > >
> > > >
> > > >
> > > > > >
> > > > > > >
> > > > > > > > +#define PROC_CMDLINE "/proc/cmdline"
> > > > > > > > +#define SYS_POWER_STATE "/sys/power/state"
> > > > > > > > +#define GRUB_CFG_PATH "/boot/grub/grub.cfg"
> > > > > > > > +
> > > > > > > > +static void check_hibernation_support(void) {
> > > > > > > > + int fd;
> > > > > > > > + char buffer[2048];
> > > > > > > > + ssize_t bytes_read;
> > > > > > > > + FILE *cmdline;
> > > > > > > > +
> > > > > > > > + /* Check if hibernation is supported in /sys/power/state */
> > > > > > > > + fd = open(SYS_POWER_STATE, O_RDONLY);
> > > > > > > > + igt_require_f(fd > 0, "Failed to open /sys/power/state");
> > > > > > > > + bytes_read = read(fd, buffer, sizeof(buffer) - 1);
> > > > > > > > + close(fd);
> > > > > > > > +
> > > > > > > > + igt_require_f(bytes_read > 0, "Failed to read
> > > > > > > > + /sys/power/state");
> > > > > > > > +
> > > > > > > > + buffer[bytes_read] = '\0';
> > > > > > > > + igt_require_f(strstr(buffer, "disk") != NULL,
> > > > > > > > + "Hibernation (suspend to disk) is not
> > > > > > > > + supported on this system.\n");
> > > > > > > > +
> > > > > > > > + /* Check if resume is configured in kernel command line */
> > > > > > > > + cmdline = fopen(PROC_CMDLINE, "r");
> > > > > > > > + igt_require_f(cmdline, "Failed to open /proc/cmdline");
> > > > > > > > + fread(buffer, 1, sizeof(buffer) - 1, cmdline);
> > > > > > > > + fclose(cmdline);
> > > > > > > > +
> > > > > > > > + igt_require_f(strstr(buffer, "resume="),
> > > > > > > > + "Kernel does not have 'resume' parameter
> > > > > > > > +configured for hibernation.\n"); }
> > > > > > >
> > > > > > > we should probably have this in the igt_pm lib to be used in
> > > > > > > other places like xe_pm. I remember we had discussions when s4
> > > > > > > started failing in CI, but apparently the solution was to make
> > > > > > > CI to work with it instead of protecting our s4 tests...
> > > > > >
> > > > > > I was last week talking with Jari Tahvanainen about this. Our ci
> > > > > > is not configured for the machines really hibernating, he
> > > > > > suggested we first start with one test, start to run it in
> > > > > > special box, and we go on from there .. so, here we are :) I
> > > > > > agree final destination for this function should be in lib/ like
> > > > > > in igt_pm or so.
> > > > > >
> > > > > > >
> > > > > > > > +
> > > > > > > > +static void set_rtc_wake_timer(int seconds) {
> > > > > > > > + char command[256];
> > > > > > > > +
> > > > > > > > + snprintf(command, sizeof(command), RTC_WAKE_CMD,
> > > > > > > > + seconds);
> > > > > > > > +
> > > > > > > > + igt_require_f(system(command) == 0,
> > > > > > > > + "Failed to set RTC wake timer.\n"); }
> > > > > > > > +
> > > > > > > > +static void hibernate_system(void) {
> > > > > > > > + int fd;
> > > > > > > > +
> > > > > > > > + fd = open(SYS_POWER_STATE, O_WRONLY);
> > > > > > > > + igt_require_f(fd > 0, "Failed to open
> > > > > > > > + /sys/power/state");
> > > > > > > > +
> > > > > > > > + if (write(fd, "disk", 4) != 4) {
> > > > > > > > + close(fd);
> > > > > > > > + igt_require_f(0, "Failed to write 'disk' to /sys/power/state");
> > > > > > > > + }
> > > > > > > > + close(fd);
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > +static void ensure_grub_boots_same_kernel(void)
> > > > > > >
> > > > > > > I don't believe that this should be to the test case to ensure.
> > > > > > > This should be ensured by the infra to support these s4 testcases.
> > > > > >
> > > > > > This is bit so-so. If guys would run this test on their own
> > > > > > boxes to do some debugging, forgetting to always set the correct
> > > > > > kernel for the next in-test reboot would cause incorrect results.
> > > > > >
> > > > > > >
> > > > > > > > +{
> > > > > > > > + char cmdline[1024];
> > > > > > > > + char current_kernel[256];
> > > > > > > > + char last_menuentry[512] = "";
> > > > > > > > + char grub_entry[512];
> > > > > > > > + char command[1024];
> > > > > > > > + FILE *cmdline_file, *grub_cfg;
> > > > > > > > + char line[1024];
> > > > > > > > + bool kernel_found = false;
> > > > > > > > + char *kernel_arg;
> > > > > > > > + char *kernel_end;
> > > > > > > > +
> > > > > > > > + /* Read /proc/cmdline to get the current kernel image */
> > > > > > > > + cmdline_file = fopen(PROC_CMDLINE, "r");
> > > > > > > > + igt_require_f(cmdline_file, "Failed to open
> > > > > > > > + /proc/cmdline");
> > > > > > > > +
> > > > > > > > + if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
> > > > > > > > + fclose(cmdline_file);
> > > > > > > > + igt_require_f(0, "Failed to read /proc/cmdline");
> > > > > > > > + }
> > > > > > > > + fclose(cmdline_file);
> > > > > > > > +
> > > > > > > > + /* Parse the kernel image from cmdline */
> > > > > > > > + kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
> > > > > > > > + igt_require_f(kernel_arg, "BOOT_IMAGE= not found in
> > > > > > > > + /proc/cmdline\n");
> > > > > > > > +
> > > > > > > > + kernel_arg += strlen("BOOT_IMAGE=");
> > > > > > > > + kernel_end = strchr(kernel_arg, ' ');
> > > > > > > > +
> > > > > > > > + if (!kernel_end)
> > > > > > > > + kernel_end = kernel_arg + strlen(kernel_arg);
> > > > > > > > +
> > > > > > > > + snprintf(current_kernel, sizeof(current_kernel), "%.*s",
> > > > > > > > + (int)(kernel_end - kernel_arg), kernel_arg);
> > > > > > > > + igt_debug("Current kernel image: %s\n",
> > > > > > > > + current_kernel);
> > > > > > > > +
> > > > > > > > + /* Open GRUB config file to find matching entry */
> > > > > > > > + grub_cfg = fopen(GRUB_CFG_PATH, "r");
> > > > > > > > + igt_require_f(grub_cfg, "Failed to open GRUB
> > > > > > > > + configuration file");
> > > > > > > > +
> > > > > > > > +
> > > > > > > > + while (fgets(line, sizeof(line), grub_cfg)) {
> > > > > > > > + /* Check if the line contains a menuentry */
> > > > > > > > + if (strstr(line, "menuentry")) {
> > > > > > > > + /* Store the menuentry line */
> > > > > > > > + char *start = strchr(line, '\'');
> > > > > > > > + char *end = start ? strchr(start + 1,
> > > > > > > > + '\'') : NULL;
> > > > > > > > +
> > > > > > > > + if (start && end) {
> > > > > > > > + snprintf(last_menuentry,
> > > > > > > > + sizeof(last_menuentry),
> > > > > > > > + "%.*s", (int)(end - start - 1),
> > > > > > > > + start + 1);
> > > > > > > > + }
> > > > > > > > + }
> > > > > > > > +
> > > > > > > > + /* Check if the current line contains the kernel */
> > > > > > > > + if (strstr(line, current_kernel)) {
> > > > > > > > + /* Use the last seen menuentry as the match */
> > > > > > > > + snprintf(grub_entry, sizeof(grub_entry), "%s",
> > > > > > > > + last_menuentry);
> > > > > > > > + kernel_found = true;
> > > > > > > > + break;
> > > > > > > > + }
> > > > > > > > + }
> > > > > > > > +
> > > > > > > > + fclose(grub_cfg);
> > > > > > > > +
> > > > > > > > + igt_require_f(kernel_found, "Failed to find matching GRUB entry
> > for kernel: %s\n",
> > > > > > > > + current_kernel);
> > > > > > > > +
> > > > > > > > + /* Set the GRUB boot target using grub-reboot */
> > > > > > > > + snprintf(command, sizeof(command), "grub-reboot \"%s\"",
> > grub_entry);
> > > > > > > > + igt_require_f(system(command) == 0, "Failed to set GRUB boot
> > target to: %s\n",
> > > > > > > > + grub_entry);
> > > > > > > > +
> > > > > > > > + igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
> > > > > > > > + current_kernel, grub_entry); }
> > > > > > > > +
> > > > > > > > +static void hibernate_autoresume(int resume_delay) {
> > > > > > > > + check_hibernation_support();
> > > > > > > > + set_rtc_wake_timer(resume_delay);
> > > > > > > > + ensure_grub_boots_same_kernel();
> > > > > > > > + hibernate_system();
> > > > > > > > +}
> > > > > > > > +
> > > > > > > > static void addfb_init(struct igt_fb *fb, struct
> > > > > > > > drm_mode_fb_cmd2 *f) {
> > > > > > > > int i;
> > > > > > > > @@ -839,8 +988,11 @@ static bool try_config(data_t *data,
> > > > > > > > enum test_fb_flags fb_flags,
> > > > > > > >
> > > > > > > > if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
> > > > > > > > if (data->flags & TEST_SUSPEND && fb_flags &
> > FB_COMPRESSED) {
> > > > > > > > -
> > igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > > > > - SUSPEND_TEST_NONE);
> > > > > > > > + if (data->do_hibernate)
> > > > > > > > + hibernate_autoresume(30);
> > > > > > > > + else
> > > > > > > > +
> > igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> > > > > > > > +
> > > > > > > > + SUSPEND_TEST_NONE);
> > > > > > > >
> > > > > > > > /* on resume check flat ccs is still compressed */
> > > > > > > > if (is_xe_device(data->drm_fd) && @@
> > > > > > > > -1044,6 +1196,9 @@ static int opt_handler(int opt, int opt_index,
> > void *opt_data)
> > > > > > > > data->user_seed = true;
> > > > > > > > data->seed = strtoul(optarg, NULL, 0);
> > > > > > > > break;
> > > > > > > > + case 'r':
> > > > > > > > + data->do_hibernate = true;
> > > > > > > > + break;
> > > > > > > > default:
> > > > > > > > return IGT_OPT_HANDLER_ERROR;
> > > > > > > > }
> > > > > > > > @@ -1056,9 +1211,10 @@ static data_t data; static const
> > > > > > > > char *help_str = " -c\t\tCheck the presence of compression
> > > > > > > > meta-data\n"
> > > > > > > > " -s <seed>\tSeed for random number generator\n"
> > > > > > > > +" -r\t\tOn suspend test do full hibernate with reboot\n"
> > > > > > > > ;
> > > > > > > >
> > > > > > > > -igt_main_args("cs:", NULL, help_str, opt_handler, &data)
> > > > > > > > +igt_main_args("csr:", NULL, help_str, opt_handler, &data)
> > > > > > > > {
> > > > > > > > igt_fixture {
> > > > > > > > data.drm_fd =
> > > > > > > > drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> > > > > > > > --
> > > > > > > > 2.45.2
> > > > > > > >
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
2025-01-28 11:55 [PATCH i-g-t 0/1] Add manual hibernate test to kms_ccs Juha-Pekka Heikkila
@ 2025-01-28 11:55 ` Juha-Pekka Heikkila
2025-01-28 22:53 ` Rodrigo Vivi
0 siblings, 1 reply; 17+ messages in thread
From: Juha-Pekka Heikkila @ 2025-01-28 11:55 UTC (permalink / raw)
To: igt-dev; +Cc: Juha-Pekka Heikkila
Add hibernate test which bring entire system down for short
hibernate. This mode is added to suspend tests to be run
manually with '-r' flag because this is not ci friendly test,
on hibernate ci would lose connection to the hibernated box.
This test is written against Ubuntu distro relying grub
configuration found there.
For this test to work kernel resume point need to be set, from
kernel command line is checked if there is found something along
the lines of "resume=/dev/nvme0n1p2" or so to verify hibernate
will be successful.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
tests/intel/kms_ccs.c | 176 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 173 insertions(+), 3 deletions(-)
diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
index 3e9a57863..8be3c063a 100644
--- a/tests/intel/kms_ccs.c
+++ b/tests/intel/kms_ccs.c
@@ -190,6 +190,7 @@ typedef struct {
bool user_seed;
enum igt_commit_style commit;
int fb_list_length;
+ bool do_hibernate;
struct {
struct igt_fb fb;
int width, height;
@@ -271,6 +272,162 @@ static const struct {
*/
#define MAX_SPRITE_PLANE_WIDTH 2000
+
+/**
+ * check_hibernation_support:
+ *
+ * Return: True if kernel is configured with resume point for hibernate.
+ */
+static bool check_hibernation_support(void)
+{
+ int fd;
+ char buffer[2048];
+ ssize_t bytes_read;
+ FILE *cmdline;
+
+ /* Check if hibernation is supported in /sys/power/state */
+ fd = open("/sys/power/state", O_RDONLY);
+
+ if (fd <= 0) {
+ igt_debug("Failed to open /sys/power/state\n");
+ return false;
+ }
+
+ bytes_read = read(fd, buffer, sizeof(buffer) - 1);
+ close(fd);
+
+ if (bytes_read <= 0) {
+ igt_debug("Failed to read /sys/power/state");
+ return false;
+ }
+
+ buffer[bytes_read] = '\0';
+ if (strstr(buffer, "disk") == NULL) {
+ igt_debug("Hibernation (suspend to disk) is not supported on this system.\n");
+ return false;
+ }
+
+ /* Check if resume is configured in kernel command line */
+ cmdline = fopen("/proc/cmdline", "r");
+
+ if (!cmdline) {
+ igt_debug("Failed to open /proc/cmdline");
+ return false;
+ }
+
+ fread(buffer, 1, sizeof(buffer) - 1, cmdline);
+ fclose(cmdline);
+
+ if (strstr(buffer, "resume=") == NULL) {
+ igt_debug("Kernel does not have 'resume' parameter configured for hibernation.\n");
+ return false;
+ }
+
+ return true;
+}
+
+/**
+ * Ensure_grub_boots_same_kernel:
+ *
+ * Return: True if kernel was found and set for next reboot.
+ */
+static bool ensure_grub_boots_same_kernel(void)
+{
+ char cmdline[1024];
+ char current_kernel[256];
+ char last_menuentry[512] = "";
+ char grub_entry[512];
+ char command[1024];
+ FILE *cmdline_file, *grub_cfg;
+ char line[1024];
+ bool kernel_found = false;
+ char *kernel_arg;
+ char *kernel_end;
+
+ /* Read /proc/cmdline to get the current kernel image */
+ cmdline_file = fopen("/proc/cmdline", "r");
+ if (!cmdline_file) {
+ igt_debug("Failed to open /proc/cmdline");
+ return false;
+ }
+
+ if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
+ fclose(cmdline_file);
+ igt_debug("Failed to read /proc/cmdline");
+ return false;
+ }
+ fclose(cmdline_file);
+
+ /* Parse the kernel image from cmdline */
+ kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
+ if (!kernel_arg) {
+ igt_debug("BOOT_IMAGE= not found in /proc/cmdline\n");
+ return false;
+ }
+
+ kernel_arg += strlen("BOOT_IMAGE=");
+ kernel_end = strchr(kernel_arg, ' ');
+
+ if (!kernel_end)
+ kernel_end = kernel_arg + strlen(kernel_arg);
+
+ snprintf(current_kernel, sizeof(current_kernel), "%.*s",
+ (int)(kernel_end - kernel_arg), kernel_arg);
+ igt_debug("Current kernel image: %s\n", current_kernel);
+
+ /* Open GRUB config file to find matching entry */
+ grub_cfg = fopen("/boot/grub/grub.cfg", "r");
+ if (!grub_cfg) {
+ igt_debug("Failed to open GRUB configuration file");
+ return false;
+ }
+
+ while (fgets(line, sizeof(line), grub_cfg)) {
+ /* Check if the line contains a menuentry */
+ if (strstr(line, "menuentry")) {
+ /* Store the menuentry line */
+ char *start = strchr(line, '\'');
+ char *end = start ? strchr(start + 1, '\'') : NULL;
+
+ if (start && end) {
+ snprintf(last_menuentry,
+ sizeof(last_menuentry),
+ "%.*s", (int)(end - start - 1),
+ start + 1);
+ }
+ }
+
+ /* Check if the current line contains the kernel */
+ if (strstr(line, current_kernel)) {
+ /* Use the last seen menuentry as the match */
+ snprintf(grub_entry, sizeof(grub_entry), "%s",
+ last_menuentry);
+ kernel_found = true;
+ break;
+ }
+ }
+
+ fclose(grub_cfg);
+
+ if (!kernel_found) {
+ igt_debug("Failed to find matching GRUB entry for kernel: %s\n",
+ current_kernel);
+ return false;
+ }
+
+ /* Set the GRUB boot target using grub-reboot */
+ snprintf(command, sizeof(command), "grub-reboot \"%s\"", grub_entry);
+ if (system(command) != 0) {
+ igt_debug("Failed to set GRUB boot target to: %s\n",
+ grub_entry);
+ return false;
+ }
+
+ igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
+ current_kernel, grub_entry);
+ return true;
+}
+
static void addfb_init(struct igt_fb *fb, struct drm_mode_fb_cmd2 *f)
{
int i;
@@ -839,8 +996,17 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
if (data->flags & TEST_SUSPEND && fb_flags & FB_COMPRESSED) {
- igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
- SUSPEND_TEST_NONE);
+ if (data->do_hibernate) {
+ igt_require_f(check_hibernation_support(),
+ "Kernel is not cofigured for resume\n");
+ igt_require_f(ensure_grub_boots_same_kernel(),
+ "Couldn't find correct kernel in grub.cfg\n");
+ igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE);
+ } else {
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
+ }
/* on resume check flat ccs is still compressed */
if (is_xe_device(data->drm_fd) &&
@@ -1044,6 +1210,9 @@ static int opt_handler(int opt, int opt_index, void *opt_data)
data->user_seed = true;
data->seed = strtoul(optarg, NULL, 0);
break;
+ case 'r':
+ data->do_hibernate = true;
+ break;
default:
return IGT_OPT_HANDLER_ERROR;
}
@@ -1056,9 +1225,10 @@ static data_t data;
static const char *help_str =
" -c\t\tCheck the presence of compression meta-data\n"
" -s <seed>\tSeed for random number generator\n"
+" -r\t\tOn suspend test do full hibernate with reboot\n"
;
-igt_main_args("cs:", NULL, help_str, opt_handler, &data)
+igt_main_args("csr:", NULL, help_str, opt_handler, &data)
{
igt_fixture {
data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
--
2.45.2
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test
2025-01-28 11:55 ` [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test Juha-Pekka Heikkila
@ 2025-01-28 22:53 ` Rodrigo Vivi
0 siblings, 0 replies; 17+ messages in thread
From: Rodrigo Vivi @ 2025-01-28 22:53 UTC (permalink / raw)
To: Juha-Pekka Heikkila; +Cc: igt-dev
On Tue, Jan 28, 2025 at 01:55:58PM +0200, Juha-Pekka Heikkila wrote:
> Add hibernate test which bring entire system down for short
> hibernate. This mode is added to suspend tests to be run
> manually with '-r' flag because this is not ci friendly test,
hmm... why not '-f'?
-r won't get confused or accidentaly used since we have --r as an
alias for --run-subtest ?
But well, let's move ahead and add some option and you decide
the flag...
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> on hibernate ci would lose connection to the hibernated box.
>
> This test is written against Ubuntu distro relying grub
> configuration found there.
>
> For this test to work kernel resume point need to be set, from
> kernel command line is checked if there is found something along
> the lines of "resume=/dev/nvme0n1p2" or so to verify hibernate
> will be successful.
>
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> ---
> tests/intel/kms_ccs.c | 176 +++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 173 insertions(+), 3 deletions(-)
>
> diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
> index 3e9a57863..8be3c063a 100644
> --- a/tests/intel/kms_ccs.c
> +++ b/tests/intel/kms_ccs.c
> @@ -190,6 +190,7 @@ typedef struct {
> bool user_seed;
> enum igt_commit_style commit;
> int fb_list_length;
> + bool do_hibernate;
> struct {
> struct igt_fb fb;
> int width, height;
> @@ -271,6 +272,162 @@ static const struct {
> */
> #define MAX_SPRITE_PLANE_WIDTH 2000
>
> +
> +/**
> + * check_hibernation_support:
> + *
> + * Return: True if kernel is configured with resume point for hibernate.
> + */
> +static bool check_hibernation_support(void)
> +{
> + int fd;
> + char buffer[2048];
> + ssize_t bytes_read;
> + FILE *cmdline;
> +
> + /* Check if hibernation is supported in /sys/power/state */
> + fd = open("/sys/power/state", O_RDONLY);
> +
> + if (fd <= 0) {
> + igt_debug("Failed to open /sys/power/state\n");
> + return false;
> + }
> +
> + bytes_read = read(fd, buffer, sizeof(buffer) - 1);
> + close(fd);
> +
> + if (bytes_read <= 0) {
> + igt_debug("Failed to read /sys/power/state");
> + return false;
> + }
> +
> + buffer[bytes_read] = '\0';
> + if (strstr(buffer, "disk") == NULL) {
> + igt_debug("Hibernation (suspend to disk) is not supported on this system.\n");
> + return false;
> + }
> +
> + /* Check if resume is configured in kernel command line */
> + cmdline = fopen("/proc/cmdline", "r");
> +
> + if (!cmdline) {
> + igt_debug("Failed to open /proc/cmdline");
> + return false;
> + }
> +
> + fread(buffer, 1, sizeof(buffer) - 1, cmdline);
> + fclose(cmdline);
> +
> + if (strstr(buffer, "resume=") == NULL) {
> + igt_debug("Kernel does not have 'resume' parameter configured for hibernation.\n");
> + return false;
> + }
> +
> + return true;
> +}
> +
> +/**
> + * Ensure_grub_boots_same_kernel:
> + *
> + * Return: True if kernel was found and set for next reboot.
> + */
> +static bool ensure_grub_boots_same_kernel(void)
> +{
> + char cmdline[1024];
> + char current_kernel[256];
> + char last_menuentry[512] = "";
> + char grub_entry[512];
> + char command[1024];
> + FILE *cmdline_file, *grub_cfg;
> + char line[1024];
> + bool kernel_found = false;
> + char *kernel_arg;
> + char *kernel_end;
> +
> + /* Read /proc/cmdline to get the current kernel image */
> + cmdline_file = fopen("/proc/cmdline", "r");
> + if (!cmdline_file) {
> + igt_debug("Failed to open /proc/cmdline");
> + return false;
> + }
> +
> + if (!fgets(cmdline, sizeof(cmdline), cmdline_file)) {
> + fclose(cmdline_file);
> + igt_debug("Failed to read /proc/cmdline");
> + return false;
> + }
> + fclose(cmdline_file);
> +
> + /* Parse the kernel image from cmdline */
> + kernel_arg = strstr(cmdline, "BOOT_IMAGE=");
> + if (!kernel_arg) {
> + igt_debug("BOOT_IMAGE= not found in /proc/cmdline\n");
> + return false;
> + }
> +
> + kernel_arg += strlen("BOOT_IMAGE=");
> + kernel_end = strchr(kernel_arg, ' ');
> +
> + if (!kernel_end)
> + kernel_end = kernel_arg + strlen(kernel_arg);
> +
> + snprintf(current_kernel, sizeof(current_kernel), "%.*s",
> + (int)(kernel_end - kernel_arg), kernel_arg);
> + igt_debug("Current kernel image: %s\n", current_kernel);
> +
> + /* Open GRUB config file to find matching entry */
> + grub_cfg = fopen("/boot/grub/grub.cfg", "r");
> + if (!grub_cfg) {
> + igt_debug("Failed to open GRUB configuration file");
> + return false;
> + }
> +
> + while (fgets(line, sizeof(line), grub_cfg)) {
> + /* Check if the line contains a menuentry */
> + if (strstr(line, "menuentry")) {
> + /* Store the menuentry line */
> + char *start = strchr(line, '\'');
> + char *end = start ? strchr(start + 1, '\'') : NULL;
> +
> + if (start && end) {
> + snprintf(last_menuentry,
> + sizeof(last_menuentry),
> + "%.*s", (int)(end - start - 1),
> + start + 1);
> + }
> + }
> +
> + /* Check if the current line contains the kernel */
> + if (strstr(line, current_kernel)) {
> + /* Use the last seen menuentry as the match */
> + snprintf(grub_entry, sizeof(grub_entry), "%s",
> + last_menuentry);
> + kernel_found = true;
> + break;
> + }
> + }
> +
> + fclose(grub_cfg);
> +
> + if (!kernel_found) {
> + igt_debug("Failed to find matching GRUB entry for kernel: %s\n",
> + current_kernel);
> + return false;
> + }
> +
> + /* Set the GRUB boot target using grub-reboot */
> + snprintf(command, sizeof(command), "grub-reboot \"%s\"", grub_entry);
> + if (system(command) != 0) {
> + igt_debug("Failed to set GRUB boot target to: %s\n",
> + grub_entry);
> + return false;
> + }
> +
> + igt_debug("Set GRUB to boot kernel: %s (GRUB entry: %s)\n",
> + current_kernel, grub_entry);
> + return true;
> +}
> +
> static void addfb_init(struct igt_fb *fb, struct drm_mode_fb_cmd2 *f)
> {
> int i;
> @@ -839,8 +996,17 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
>
> if (ret == 0 && !(fb_flags & TEST_BAD_ROTATION_90) && crc) {
> if (data->flags & TEST_SUSPEND && fb_flags & FB_COMPRESSED) {
> - igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> - SUSPEND_TEST_NONE);
> + if (data->do_hibernate) {
> + igt_require_f(check_hibernation_support(),
> + "Kernel is not cofigured for resume\n");
> + igt_require_f(ensure_grub_boots_same_kernel(),
> + "Couldn't find correct kernel in grub.cfg\n");
> + igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
> + SUSPEND_TEST_NONE);
> + } else {
> + igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> + SUSPEND_TEST_NONE);
> + }
>
> /* on resume check flat ccs is still compressed */
> if (is_xe_device(data->drm_fd) &&
> @@ -1044,6 +1210,9 @@ static int opt_handler(int opt, int opt_index, void *opt_data)
> data->user_seed = true;
> data->seed = strtoul(optarg, NULL, 0);
> break;
> + case 'r':
> + data->do_hibernate = true;
> + break;
> default:
> return IGT_OPT_HANDLER_ERROR;
> }
> @@ -1056,9 +1225,10 @@ static data_t data;
> static const char *help_str =
> " -c\t\tCheck the presence of compression meta-data\n"
> " -s <seed>\tSeed for random number generator\n"
> +" -r\t\tOn suspend test do full hibernate with reboot\n"
> ;
>
> -igt_main_args("cs:", NULL, help_str, opt_handler, &data)
> +igt_main_args("csr:", NULL, help_str, opt_handler, &data)
> {
> igt_fixture {
> data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> --
> 2.45.2
>
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2025-01-28 22:53 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-25 16:19 [PATCH i-g-t 0/1] CCS hibernate test Juha-Pekka Heikkila
2024-11-25 16:19 ` [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test Juha-Pekka Heikkila
2024-11-25 18:20 ` Rodrigo Vivi
[not found] ` <CAJ=qYWRYeg7mbbQGAGHbkHu8sAC0+Rq5J2CfZinFVniX7jsjMg@mail.gmail.com>
2024-11-26 8:07 ` Juha-Pekka Heikkilä
2024-11-26 12:59 ` Rodrigo Vivi
2024-11-26 17:12 ` Juha-Pekka Heikkilä
2024-11-27 13:21 ` Juha-Pekka Heikkilä
2024-11-28 6:19 ` Gupta, Anshuman
2024-11-28 15:50 ` Juha-Pekka Heikkilä
2024-11-28 12:44 ` Rodrigo Vivi
2024-11-28 15:40 ` Juha-Pekka Heikkilä
2024-11-25 23:25 ` ✗ GitLab.Pipeline: warning for CCS hibernate test Patchwork
2024-11-25 23:32 ` ✓ Xe.CI.BAT: success " Patchwork
2024-11-25 23:41 ` ✗ i915.CI.BAT: failure " Patchwork
2024-11-26 2:26 ` ✗ Xe.CI.Full: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2025-01-28 11:55 [PATCH i-g-t 0/1] Add manual hibernate test to kms_ccs Juha-Pekka Heikkila
2025-01-28 11:55 ` [PATCH i-g-t 1/1] tests/intel/kms_ccs: add hiberbate test Juha-Pekka Heikkila
2025-01-28 22:53 ` Rodrigo Vivi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox