* [PATCH i-g-t 0/2] add new test for dark screen detection
@ 2023-12-13 10:34 Kunal Joshi
2023-12-13 10:34 ` [PATCH i-g-t 1/2] lib/igt_debugfs: added helper to enable/disable " Kunal Joshi
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Kunal Joshi @ 2023-12-13 10:34 UTC (permalink / raw)
To: igt-dev; +Cc: Kunal Joshi
dark screen detection feature when enable will monitor frames
and if black frame is detcted it will raise drm_error, added
two tests for positive (black frame) and negative case (white frame)
Kunal Joshi (2):
lib/igt_debugfs: added helper to enable/disable dark screen detection
tests/intel/kms_dark_screen_detection: Added IGT for validating dark
screen detection
lib/igt_debugfs.c | 39 +++++
lib/igt_debugfs.h | 2 +
tests/intel/kms_darkscreen_detection.c | 196 +++++++++++++++++++++++++
tests/meson.build | 1 +
4 files changed, 238 insertions(+)
create mode 100644 tests/intel/kms_darkscreen_detection.c
--
2.25.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH i-g-t 1/2] lib/igt_debugfs: added helper to enable/disable dark screen detection
2023-12-13 10:34 [PATCH i-g-t 0/2] add new test for dark screen detection Kunal Joshi
@ 2023-12-13 10:34 ` Kunal Joshi
2023-12-13 10:34 ` [PATCH i-g-t 2/2] tests/intel/kms_dark_screen_detection: Added IGT for validating " Kunal Joshi
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Kunal Joshi @ 2023-12-13 10:34 UTC (permalink / raw)
To: igt-dev; +Cc: Kunal Joshi, Nemesa Garg, Arun R Murthy
added helper function for dark screen detection
v2: Fix indentation (JP)
Reduce complexity and redundancy (JP)
v3: Close fd (JP)
Use ternary operator (JP)
v4: Added comments for functions (JP)
Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Nemesa Garg <nemesa.garg@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
lib/igt_debugfs.c | 39 +++++++++++++++++++++++++++++++++++++++
lib/igt_debugfs.h | 2 ++
2 files changed, 41 insertions(+)
diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
index a7b54bae5..323030b19 100644
--- a/lib/igt_debugfs.c
+++ b/lib/igt_debugfs.c
@@ -743,3 +743,42 @@ void __igt_debugfs_dump(int device, const char *filename, int level)
igt_log(IGT_LOG_DOMAIN, level, "%s:\n%s\n", filename, contents);
free(contents);
}
+
+/**
+ * igt_is_dark_screen_supported:
+ * @drm_fd: fd of the device
+ * @pipe: display pipe
+ *
+ * Returns true if dark screen detection supported on platform
+ */
+bool igt_is_dark_screen_supported(int drm_fd, enum pipe pipe)
+{
+ char buf[256];
+ int dir;
+
+ dir = igt_debugfs_pipe_dir(drm_fd, pipe, O_DIRECTORY);
+ igt_require_fd(dir);
+ igt_debugfs_simple_read(dir, "i915_darkscreen_status", buf, sizeof(buf));
+ close(dir);
+ return (*buf == '0' || *buf == '1');
+}
+
+/**
+ * igt_set_dark_screen_detection:
+ * @drm_fd: fd of the device
+ * @pipe: display pipe
+ * @enable: bool to enable/disable dark screen detection
+ *
+ * Enable/Disable dark screen detection for given @pipe
+ */
+ssize_t igt_set_dark_screen_detection(int drm_fd, enum pipe pipe, bool enable)
+{
+ int dir;
+ int size;
+
+ dir = igt_debugfs_pipe_dir(drm_fd, pipe, O_DIRECTORY);
+ igt_require_fd(dir);
+ size = igt_sysfs_write(dir, "i915_darkscreen_status", enable ? "1" : "0", 1);
+ close(dir);
+ return size;
+}
diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h
index 3e6194ade..68f25be59 100644
--- a/lib/igt_debugfs.h
+++ b/lib/igt_debugfs.h
@@ -77,6 +77,8 @@ void igt_hpd_storm_reset(int fd);
bool igt_hpd_storm_detected(int fd);
void igt_require_hpd_storm_ctl(int fd);
bool igt_ignore_long_hpd(int fd, bool enable);
+bool igt_is_dark_screen_supported(int drm_fd, enum pipe pipe);
+ssize_t igt_set_dark_screen_detection(int drm_fd, enum pipe pipe, bool enable);
/*
* Drop caches
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH i-g-t 2/2] tests/intel/kms_dark_screen_detection: Added IGT for validating dark screen detection
2023-12-13 10:34 [PATCH i-g-t 0/2] add new test for dark screen detection Kunal Joshi
2023-12-13 10:34 ` [PATCH i-g-t 1/2] lib/igt_debugfs: added helper to enable/disable " Kunal Joshi
@ 2023-12-13 10:34 ` Kunal Joshi
2023-12-13 10:52 ` Jani Nikula
2023-12-13 10:37 ` [PATCH i-g-t 0/2] add new test for " Jani Nikula
` (3 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Kunal Joshi @ 2023-12-13 10:34 UTC (permalink / raw)
To: igt-dev; +Cc: Kunal Joshi, Nemesa Garg, Arun R Murthy
Added new IGT for validation of dark screen
detection feature
Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Nemesa Garg <nemesa.garg@intel.com>
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
tests/intel/kms_darkscreen_detection.c | 196 +++++++++++++++++++++++++
tests/meson.build | 1 +
2 files changed, 197 insertions(+)
create mode 100644 tests/intel/kms_darkscreen_detection.c
diff --git a/tests/intel/kms_darkscreen_detection.c b/tests/intel/kms_darkscreen_detection.c
new file mode 100644
index 000000000..08d433305
--- /dev/null
+++ b/tests/intel/kms_darkscreen_detection.c
@@ -0,0 +1,196 @@
+/*
+ * Copyright © 2023 Intel Corporation
+*/
+
+/**
+ * TEST: kms darkscreen detection
+ * Category: Display
+ * Description: Testing darkscreen detection works
+ *
+ * SUBTEST: basic
+ * Description: Check that we get uevent when dark screen
+ * is detected
+ * Test category: functionality test
+ * Functionality: darkscreen
+ * Driver requirement: i915, xe
+ *
+ * SUBTEST: negative
+ * Description: Check dark screen detection doesn't report
+ * false positives
+ * Test category: functionality test
+ * Functionality: darkscreen
+ * Driver requirement: i915, xe
+ */
+#include "igt.h"
+#include "igt_sysfs.h"
+
+typedef struct {
+ int drm_fd;
+ uint32_t devid;
+ struct igt_fb fb;
+ igt_display_t display;
+} data_t;
+
+enum test {
+ BASIC,
+ NEGATIVE,
+};
+
+struct flip_data {
+ int drm_fd;
+ enum pipe pipe;
+ enum test test;
+ igt_output_t *output;
+};
+
+pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+pthread_cond_t condA = PTHREAD_COND_INITIALIZER;
+bool flips_competed;
+
+static void enable_dark_screen_and_flip_black_frame(struct flip_data *flip_data)
+{
+ unsigned int fb_id;
+ double r, g, b;
+ struct igt_fb fb;
+ drmModeModeInfo *mode;
+
+ mode = igt_output_get_mode(flip_data->output);
+ switch (flip_data->test) {
+ case BASIC:
+ r = g = b = 0.0;
+ break;
+ case NEGATIVE:
+ r = g = b = 1.0;
+ break;
+ default:
+ igt_assert_f(false, "Unknown test case\n");
+ }
+ fb_id = igt_create_color_fb(flip_data->drm_fd, mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR,
+ r, g, b, &fb);
+ pthread_mutex_lock(&mutex);
+ while (flips_competed != true)
+ pthread_cond_wait(&condA, &mutex);
+ pthread_mutex_unlock(&mutex);
+ igt_set_dark_screen_detection(flip_data->drm_fd, flip_data->pipe, true);
+ drmModePageFlip(flip_data->drm_fd,
+ flip_data->output->config.crtc->crtc_id,
+ fb_id, DRM_MODE_PAGE_FLIP_EVENT,
+ NULL);
+ igt_remove_fb(flip_data->drm_fd, &fb);
+}
+
+static void *flip_frames_untill_dark_screen_enabled(void *data)
+{
+ int i;
+ unsigned int fb_id1, fb_id2;
+ unsigned int flip_fb;
+ struct flip_data *args = data;
+ struct igt_fb fb_1, fb_2;
+ drmModeModeInfo *mode;
+
+ pthread_mutex_lock(&mutex);
+ mode = igt_output_get_mode(args->output);
+ fb_id1 = igt_create_color_fb(args->drm_fd, mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR,
+ 1.0, 0.0, 0.0, &fb_1);
+ fb_id2 = igt_create_color_fb(args->drm_fd, mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR,
+ 0.0, 0.0, 1.0, &fb_2);
+
+ for (i = 1; i < 6; i++) {
+ flip_fb = (((i) % 2) == 0) ? fb_id2 : fb_id1;
+ drmModePageFlip(args->drm_fd,
+ args->output->config.crtc->crtc_id,
+ flip_fb, DRM_MODE_PAGE_FLIP_EVENT,
+ NULL);
+ }
+ flips_competed = true;
+ pthread_cond_broadcast(&condA);
+ pthread_mutex_unlock(&mutex);
+ pthread_exit(NULL);
+ igt_remove_fb(args->drm_fd, &fb_1);
+ igt_remove_fb(args->drm_fd, &fb_2);
+}
+
+static void do_modeset(data_t *data, igt_display_t *display,
+ enum pipe pipe, igt_output_t *output,
+ enum test test)
+{
+ unsigned int fb_id;
+ struct igt_fb fb;
+ igt_plane_t *primary;
+ drmModeModeInfo *mode;
+
+ mode = igt_output_get_mode(output);
+ fb_id = igt_create_color_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
+ DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_MOD_LINEAR,
+ 0.0, 1.0, 0.0, &fb);
+ igt_assert(fb_id);
+ igt_output_set_pipe(output, pipe);
+ primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+ igt_plane_set_fb(primary, &fb);
+ igt_display_commit2(&data->display, COMMIT_ATOMIC);
+ igt_remove_fb(data->drm_fd, &fb);
+}
+
+static bool run_test_for_pipe_output(data_t *data, enum test test,
+ enum pipe pipe,
+ igt_output_t *output)
+{
+ struct flip_data flip_data;
+ pthread_t threadA;
+
+ flip_data.drm_fd = data->drm_fd;
+ flip_data.pipe = pipe;
+ flip_data.output = output;
+ flip_data.test = test;
+
+ igt_require_f(igt_is_dark_screen_supported(data->drm_fd, pipe),
+ "Dark screen not supported\n");
+ igt_display_reset(&data->display);
+
+ do_modeset(data, &data->display,
+ pipe, output, test);
+ pthread_create(&threadA, NULL, flip_frames_untill_dark_screen_enabled, &flip_data);
+ enable_dark_screen_and_flip_black_frame(&flip_data);
+ pthread_join(threadA, NULL);
+ return true;
+}
+
+data_t data = {};
+
+igt_main
+{
+ enum pipe pipe;
+ igt_output_t *output;
+
+ igt_fixture {
+ data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
+ kmstest_set_vt_graphics_mode();
+ igt_display_require(&data.display, data.drm_fd);
+ igt_display_require_output(&data.display);
+ igt_require(data.display.is_atomic);
+ }
+
+ igt_describe("Check dark screen detection works");
+ igt_subtest_with_dynamic("basic")
+ for_each_pipe_with_valid_output(&data.display, pipe, output)
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
+ run_test_for_pipe_output(&data, BASIC, pipe, output);
+
+ igt_describe("Check dark screen detection doesn't report false positives");
+ igt_subtest_with_dynamic("negative")
+ for_each_pipe_with_valid_output(&data.display, pipe, output)
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
+ run_test_for_pipe_output(&data, NEGATIVE, pipe, output);
+
+ igt_fixture {
+ igt_display_fini(&data.display);
+ drm_close_driver(data.drm_fd);
+ }
+}
diff --git a/tests/meson.build b/tests/meson.build
index a5f5c143c..347b49821 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -249,6 +249,7 @@ intel_kms_progs = [
'kms_busy',
'kms_ccs',
'kms_cdclk',
+ 'kms_darkscreen_detection',
'kms_dirtyfb',
'kms_draw_crc',
'kms_dsc',
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH i-g-t 0/2] add new test for dark screen detection
2023-12-13 10:34 [PATCH i-g-t 0/2] add new test for dark screen detection Kunal Joshi
2023-12-13 10:34 ` [PATCH i-g-t 1/2] lib/igt_debugfs: added helper to enable/disable " Kunal Joshi
2023-12-13 10:34 ` [PATCH i-g-t 2/2] tests/intel/kms_dark_screen_detection: Added IGT for validating " Kunal Joshi
@ 2023-12-13 10:37 ` Jani Nikula
2023-12-13 13:05 ` ✗ GitLab.Pipeline: warning for " Patchwork
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Jani Nikula @ 2023-12-13 10:37 UTC (permalink / raw)
To: Kunal Joshi, igt-dev; +Cc: Kunal Joshi
On Wed, 13 Dec 2023, Kunal Joshi <kunal1.joshi@intel.com> wrote:
> dark screen detection feature when enable will monitor frames
> and if black frame is detcted it will raise drm_error, added
> two tests for positive (black frame) and negative case (white frame)
Please settle on either "darkscreen" or "dark_screen" throughout the
kernel and igt, and stick to it. Either one is fine, but please don't
mix.
And please figure out the design [1].
BR,
Jani.
[1] https://lore.kernel.org/r/87sf46whjj.fsf@intel.com
>
> Kunal Joshi (2):
> lib/igt_debugfs: added helper to enable/disable dark screen detection
> tests/intel/kms_dark_screen_detection: Added IGT for validating dark
> screen detection
>
> lib/igt_debugfs.c | 39 +++++
> lib/igt_debugfs.h | 2 +
> tests/intel/kms_darkscreen_detection.c | 196 +++++++++++++++++++++++++
> tests/meson.build | 1 +
> 4 files changed, 238 insertions(+)
> create mode 100644 tests/intel/kms_darkscreen_detection.c
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH i-g-t 2/2] tests/intel/kms_dark_screen_detection: Added IGT for validating dark screen detection
2023-12-13 10:34 ` [PATCH i-g-t 2/2] tests/intel/kms_dark_screen_detection: Added IGT for validating " Kunal Joshi
@ 2023-12-13 10:52 ` Jani Nikula
0 siblings, 0 replies; 8+ messages in thread
From: Jani Nikula @ 2023-12-13 10:52 UTC (permalink / raw)
To: Kunal Joshi, igt-dev; +Cc: Kunal Joshi, Nemesa Garg, Arun R Murthy
On Wed, 13 Dec 2023, Kunal Joshi <kunal1.joshi@intel.com> wrote:
> Added new IGT for validation of dark screen
> detection feature
There's threads and stuff, and *zero* explanation how this is supposed
to work. Nothing in the kernel patches, nothing in these patches,
nowhere.
All I'm asking for is a few well thought out paragraphs on *how* this is
all designed and supposed to work together, and then code to implement
that. With rationale why threads are required in igt.
I'm blocking the kernel part until I have that.
BR,
Jani.
>
> Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> Cc: Nemesa Garg <nemesa.garg@intel.com>
> Cc: Arun R Murthy <arun.r.murthy@intel.com>
> Cc: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---
> tests/intel/kms_darkscreen_detection.c | 196 +++++++++++++++++++++++++
> tests/meson.build | 1 +
> 2 files changed, 197 insertions(+)
> create mode 100644 tests/intel/kms_darkscreen_detection.c
>
> diff --git a/tests/intel/kms_darkscreen_detection.c b/tests/intel/kms_darkscreen_detection.c
> new file mode 100644
> index 000000000..08d433305
> --- /dev/null
> +++ b/tests/intel/kms_darkscreen_detection.c
> @@ -0,0 +1,196 @@
> +/*
> + * Copyright © 2023 Intel Corporation
> +*/
> +
> +/**
> + * TEST: kms darkscreen detection
> + * Category: Display
> + * Description: Testing darkscreen detection works
> + *
> + * SUBTEST: basic
> + * Description: Check that we get uevent when dark screen
> + * is detected
> + * Test category: functionality test
> + * Functionality: darkscreen
> + * Driver requirement: i915, xe
> + *
> + * SUBTEST: negative
> + * Description: Check dark screen detection doesn't report
> + * false positives
> + * Test category: functionality test
> + * Functionality: darkscreen
> + * Driver requirement: i915, xe
> + */
> +#include "igt.h"
> +#include "igt_sysfs.h"
> +
> +typedef struct {
> + int drm_fd;
> + uint32_t devid;
> + struct igt_fb fb;
> + igt_display_t display;
> +} data_t;
> +
> +enum test {
> + BASIC,
> + NEGATIVE,
> +};
> +
> +struct flip_data {
> + int drm_fd;
> + enum pipe pipe;
> + enum test test;
> + igt_output_t *output;
> +};
> +
> +pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
> +pthread_cond_t condA = PTHREAD_COND_INITIALIZER;
> +bool flips_competed;
> +
> +static void enable_dark_screen_and_flip_black_frame(struct flip_data *flip_data)
> +{
> + unsigned int fb_id;
> + double r, g, b;
> + struct igt_fb fb;
> + drmModeModeInfo *mode;
> +
> + mode = igt_output_get_mode(flip_data->output);
> + switch (flip_data->test) {
> + case BASIC:
> + r = g = b = 0.0;
> + break;
> + case NEGATIVE:
> + r = g = b = 1.0;
> + break;
> + default:
> + igt_assert_f(false, "Unknown test case\n");
> + }
> + fb_id = igt_create_color_fb(flip_data->drm_fd, mode->hdisplay, mode->vdisplay,
> + DRM_FORMAT_XRGB8888,
> + DRM_FORMAT_MOD_LINEAR,
> + r, g, b, &fb);
> + pthread_mutex_lock(&mutex);
> + while (flips_competed != true)
> + pthread_cond_wait(&condA, &mutex);
> + pthread_mutex_unlock(&mutex);
> + igt_set_dark_screen_detection(flip_data->drm_fd, flip_data->pipe, true);
This checks whether the screen is dark *right now*.
> + drmModePageFlip(flip_data->drm_fd,
> + flip_data->output->config.crtc->crtc_id,
> + fb_id, DRM_MODE_PAGE_FLIP_EVENT,
> + NULL);
It does not matter what this does. It's not checked, except perhaps by
accident in a subsequent call to this function.
> + igt_remove_fb(flip_data->drm_fd, &fb);
> +}
> +
> +static void *flip_frames_untill_dark_screen_enabled(void *data)
*until
> +{
> + int i;
> + unsigned int fb_id1, fb_id2;
> + unsigned int flip_fb;
> + struct flip_data *args = data;
> + struct igt_fb fb_1, fb_2;
> + drmModeModeInfo *mode;
> +
> + pthread_mutex_lock(&mutex);
> + mode = igt_output_get_mode(args->output);
> + fb_id1 = igt_create_color_fb(args->drm_fd, mode->hdisplay, mode->vdisplay,
> + DRM_FORMAT_XRGB8888,
> + DRM_FORMAT_MOD_LINEAR,
> + 1.0, 0.0, 0.0, &fb_1);
> + fb_id2 = igt_create_color_fb(args->drm_fd, mode->hdisplay, mode->vdisplay,
> + DRM_FORMAT_XRGB8888,
> + DRM_FORMAT_MOD_LINEAR,
> + 0.0, 0.0, 1.0, &fb_2);
> +
> + for (i = 1; i < 6; i++) {
> + flip_fb = (((i) % 2) == 0) ? fb_id2 : fb_id1;
> + drmModePageFlip(args->drm_fd,
> + args->output->config.crtc->crtc_id,
> + flip_fb, DRM_MODE_PAGE_FLIP_EVENT,
> + NULL);
> + }
> + flips_competed = true;
> + pthread_cond_broadcast(&condA);
> + pthread_mutex_unlock(&mutex);
> + pthread_exit(NULL);
> + igt_remove_fb(args->drm_fd, &fb_1);
> + igt_remove_fb(args->drm_fd, &fb_2);
> +}
> +
> +static void do_modeset(data_t *data, igt_display_t *display,
> + enum pipe pipe, igt_output_t *output,
> + enum test test)
> +{
> + unsigned int fb_id;
> + struct igt_fb fb;
> + igt_plane_t *primary;
> + drmModeModeInfo *mode;
> +
> + mode = igt_output_get_mode(output);
> + fb_id = igt_create_color_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
> + DRM_FORMAT_XRGB8888,
> + DRM_FORMAT_MOD_LINEAR,
> + 0.0, 1.0, 0.0, &fb);
> + igt_assert(fb_id);
> + igt_output_set_pipe(output, pipe);
> + primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> + igt_plane_set_fb(primary, &fb);
> + igt_display_commit2(&data->display, COMMIT_ATOMIC);
> + igt_remove_fb(data->drm_fd, &fb);
> +}
> +
> +static bool run_test_for_pipe_output(data_t *data, enum test test,
> + enum pipe pipe,
> + igt_output_t *output)
> +{
> + struct flip_data flip_data;
> + pthread_t threadA;
> +
> + flip_data.drm_fd = data->drm_fd;
> + flip_data.pipe = pipe;
> + flip_data.output = output;
> + flip_data.test = test;
> +
> + igt_require_f(igt_is_dark_screen_supported(data->drm_fd, pipe),
> + "Dark screen not supported\n");
> + igt_display_reset(&data->display);
> +
> + do_modeset(data, &data->display,
> + pipe, output, test);
> + pthread_create(&threadA, NULL, flip_frames_untill_dark_screen_enabled, &flip_data);
> + enable_dark_screen_and_flip_black_frame(&flip_data);
> + pthread_join(threadA, NULL);
> + return true;
> +}
> +
> +data_t data = {};
> +
> +igt_main
> +{
> + enum pipe pipe;
> + igt_output_t *output;
> +
> + igt_fixture {
> + data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
> + kmstest_set_vt_graphics_mode();
> + igt_display_require(&data.display, data.drm_fd);
> + igt_display_require_output(&data.display);
> + igt_require(data.display.is_atomic);
> + }
> +
> + igt_describe("Check dark screen detection works");
> + igt_subtest_with_dynamic("basic")
> + for_each_pipe_with_valid_output(&data.display, pipe, output)
> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
> + run_test_for_pipe_output(&data, BASIC, pipe, output);
> +
> + igt_describe("Check dark screen detection doesn't report false positives");
> + igt_subtest_with_dynamic("negative")
> + for_each_pipe_with_valid_output(&data.display, pipe, output)
> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
> + run_test_for_pipe_output(&data, NEGATIVE, pipe, output);
> +
> + igt_fixture {
> + igt_display_fini(&data.display);
> + drm_close_driver(data.drm_fd);
> + }
> +}
> diff --git a/tests/meson.build b/tests/meson.build
> index a5f5c143c..347b49821 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -249,6 +249,7 @@ intel_kms_progs = [
> 'kms_busy',
> 'kms_ccs',
> 'kms_cdclk',
> + 'kms_darkscreen_detection',
> 'kms_dirtyfb',
> 'kms_draw_crc',
> 'kms_dsc',
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 8+ messages in thread
* ✗ GitLab.Pipeline: warning for add new test for dark screen detection
2023-12-13 10:34 [PATCH i-g-t 0/2] add new test for dark screen detection Kunal Joshi
` (2 preceding siblings ...)
2023-12-13 10:37 ` [PATCH i-g-t 0/2] add new test for " Jani Nikula
@ 2023-12-13 13:05 ` Patchwork
2023-12-13 13:35 ` ✓ CI.xeBAT: success " Patchwork
2023-12-13 13:44 ` ✗ Fi.CI.BAT: failure " Patchwork
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2023-12-13 13:05 UTC (permalink / raw)
To: Kunal Joshi; +Cc: igt-dev
== Series Details ==
Series: add new test for dark screen detection
URL : https://patchwork.freedesktop.org/series/127745/
State : warning
== Summary ==
Pipeline status: FAILED.
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/1056076 for the overview.
build:tests-debian-meson-arm64 has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/52710502):
Checking if the user of the pipeline is allowed...
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 a5387932 as detached HEAD (ref is intel/IGTPW_10412)...
Removing build/
Removing lib/i915/perf-configs/__pycache__/
Removing scripts/__pycache__/
Skipping Git submodules setup
section_end:1702472532:get_sources
section_start:1702472532: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-a538793275601a062b581de58d9ec8b12297a190 with digest registry.freedesktop.org/gfx-ci/igt-ci-tags/build-debian-arm64@sha256:df8438cd0e218646c3bdc2eb6abccb43c4e884bfd40a1a4dd0365f1f8031d21f ...
section_end:1702472535:step_script
section_start:1702472535:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1702472537: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:570:0s)
build:tests-debian-meson-armhf has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/52710501):
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 a5387932 as detached HEAD (ref is intel/IGTPW_10412)...
Removing build/
Removing lib/i915/perf-configs/__pycache__/
Removing meson-test-list.txt
Removing scripts/__pycache__/
Skipping Git submodules setup
section_end:1702472532:get_sources
section_start:1702472532:step_script
Executing "step_script" stage of the job script
Using docker image sha256:4a4103f1a476d355d866b481ff96ac05a32a3a715cefcc1cbc1356a8959fb5f8 for registry.freedesktop.org/gfx-ci/igt-ci-tags/build-debian-armhf:commit-a538793275601a062b581de58d9ec8b12297a190 with digest registry.freedesktop.org/gfx-ci/igt-ci-tags/build-debian-armhf@sha256:3a0ffeb305cdc6ef081dde81d86afee76102e74f76c0f7bd5685fc2457ec707b ...
section_end:1702472535:step_script
section_start:1702472535:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1702472536:cleanup_file_variables
ERROR: Job failed (system failure): Error response from daemon: no such image: docker.io/library/sha256:4a4103f1a476d355d866b481ff96ac05a32a3a715cefcc1cbc1356a8959fb5f8: image not known (docker.go:570:0s)
build:tests-debian-meson-mips has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/52710503):
Checking if the user of the pipeline is allowed...
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 a5387932 as detached HEAD (ref is intel/IGTPW_10412)...
Removing build/
Removing lib/i915/perf-configs/__pycache__/
Removing scripts/__pycache__/
Skipping Git submodules setup
section_end:1702472532:get_sources
section_start:1702472532:step_script
Executing "step_script" stage of the job script
Using docker image sha256:cc55efdc667be826910d414a562c76ce1130a9c15255a0dd115431bc42f83448 for registry.freedesktop.org/gfx-ci/igt-ci-tags/build-debian-mips:commit-a538793275601a062b581de58d9ec8b12297a190 with digest registry.freedesktop.org/gfx-ci/igt-ci-tags/build-debian-mips@sha256:c829c44880da4782b7a72626c259ac6904b4bd5f08601e66b3be889ca1c0cf79 ...
section_end:1702472535:step_script
section_start:1702472535:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1702472536:cleanup_file_variables
ERROR: Job failed (system failure): Error response from daemon: no such image: docker.io/library/sha256:cc55efdc667be826910d414a562c76ce1130a9c15255a0dd115431bc42f83448: image not known (docker.go:570:0s)
build:tests-fedora-clang has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/52710498):
$ /host/bin/curl -s -L --cacert /host/ca-certificates.crt --retry 4 -f --retry-delay 60 https://gitlab.freedesktop.org/freedesktop/helm-gitlab-infra/-/raw/main/runner-gating/runner-gating.sh | sh -s -- pre_get_sources_script
Checking if the user of the pipeline is allowed...
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 a5387932 as detached HEAD (ref is intel/IGTPW_10412)...
Removing build/
Removing installdir/
Skipping Git submodules setup
section_end:1702472532:get_sources
section_start:1702472532:step_script
Executing "step_script" stage of the job script
Using docker image sha256:4b3054d89ef79f9be95501786fbbbe22857d02c867fff99693808cd80909939f for registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora:commit-a538793275601a062b581de58d9ec8b12297a190 with digest registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora@sha256:17d64607d998df2bf29a56b88922d3a598e6f1daa3b51ece2a892c2f293daf83 ...
section_end:1702472535:step_script
section_start:1702472535:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1702472536:cleanup_file_variables
ERROR: Job failed (system failure): Error response from daemon: no such image: docker.io/library/sha256:4b3054d89ef79f9be95501786fbbbe22857d02c867fff99693808cd80909939f: image not known (docker.go:570:0s)
build:tests-fedora-no-libunwind has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/52710495):
Getting source from Git repository
$ /host/bin/curl -s -L --cacert /host/ca-certificates.crt --retry 4 -f --retry-delay 60 https://gitlab.freedesktop.org/freedesktop/helm-gitlab-infra/-/raw/main/runner-gating/runner-gating.sh | sh -s -- pre_get_sources_script
Checking if the user of the pipeline is allowed...
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 a5387932 as detached HEAD (ref is intel/IGTPW_10412)...
Removing build/
Skipping Git submodules setup
section_end:1702472532:get_sources
section_start:1702472532:step_script
Executing "step_script" stage of the job script
Using docker image sha256:4b3054d89ef79f9be95501786fbbbe22857d02c867fff99693808cd80909939f for registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora:commit-a538793275601a062b581de58d9ec8b12297a190 with digest registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora@sha256:17d64607d998df2bf29a56b88922d3a598e6f1daa3b51ece2a892c2f293daf83 ...
section_end:1702472535:step_script
section_start:1702472535:cleanup_file_variables
Cleaning up project directory and file based variables
section_end:1702472536:cleanup_file_variables
ERROR: Job failed (system failure): Error response from daemon: no such image: docker.io/library/sha256:4b3054d89ef79f9be95501786fbbbe22857d02c867fff99693808cd80909939f: image not known (docker.go:570:0s)
== Logs ==
For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/1056076
^ permalink raw reply [flat|nested] 8+ messages in thread
* ✓ CI.xeBAT: success for add new test for dark screen detection
2023-12-13 10:34 [PATCH i-g-t 0/2] add new test for dark screen detection Kunal Joshi
` (3 preceding siblings ...)
2023-12-13 13:05 ` ✗ GitLab.Pipeline: warning for " Patchwork
@ 2023-12-13 13:35 ` Patchwork
2023-12-13 13:44 ` ✗ Fi.CI.BAT: failure " Patchwork
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2023-12-13 13:35 UTC (permalink / raw)
To: Kunal Joshi; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 2312 bytes --]
== Series Details ==
Series: add new test for dark screen detection
URL : https://patchwork.freedesktop.org/series/127745/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_7638_BAT -> XEIGTPW_10412_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in XEIGTPW_10412_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
- bat-adlp-7: [PASS][1] -> [FAIL][2] ([Intel XE#480]) +1 other test fail
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7638/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10412/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
* igt@xe_prime_self_import@basic-with_one_bo:
- bat-pvc-2: [PASS][3] -> [FAIL][4] ([Intel XE#999]) +1 other test fail
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7638/bat-pvc-2/igt@xe_prime_self_import@basic-with_one_bo.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10412/bat-pvc-2/igt@xe_prime_self_import@basic-with_one_bo.html
#### Possible fixes ####
* igt@xe_create@create-execqueues-noleak:
- bat-adlp-7: [FAIL][5] ([Intel XE#524]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7638/bat-adlp-7/igt@xe_create@create-execqueues-noleak.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10412/bat-adlp-7/igt@xe_create@create-execqueues-noleak.html
[Intel XE#480]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/480
[Intel XE#524]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/524
[Intel XE#999]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/999
Build changes
-------------
* IGT: IGT_7638 -> IGTPW_10412
IGTPW_10412: 10412
IGT_7638: 52ca619dfeae57348b957778dcfdd8117d8ff9f0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-577-5cd1893366708380854f4694ae57417192458a6b: 5cd1893366708380854f4694ae57417192458a6b
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10412/index.html
[-- Attachment #2: Type: text/html, Size: 2933 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* ✗ Fi.CI.BAT: failure for add new test for dark screen detection
2023-12-13 10:34 [PATCH i-g-t 0/2] add new test for dark screen detection Kunal Joshi
` (4 preceding siblings ...)
2023-12-13 13:35 ` ✓ CI.xeBAT: success " Patchwork
@ 2023-12-13 13:44 ` Patchwork
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2023-12-13 13:44 UTC (permalink / raw)
To: Kunal Joshi; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 6507 bytes --]
== Series Details ==
Series: add new test for dark screen detection
URL : https://patchwork.freedesktop.org/series/127745/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_14012 -> IGTPW_10412
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_10412 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_10412, 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_10412/index.html
Participating hosts (34 -> 34)
------------------------------
Additional (2): bat-adlm-1 bat-rpls-3
Missing (2): bat-dg2-9 fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_10412:
### IGT changes ###
#### Possible regressions ####
* igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size:
- bat-adlm-1: NOTRUN -> [SKIP][1] +16 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@i915_selftest@live@hangcheck:
- {bat-rpls-3}: NOTRUN -> [DMESG-WARN][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-rpls-3/igt@i915_selftest@live@hangcheck.html
* {igt@kms_psr@psr-cursor-plane-move}:
- {bat-rpls-3}: NOTRUN -> [SKIP][3] +43 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-rpls-3/igt@kms_psr@psr-cursor-plane-move.html
Known issues
------------
Here are the changes found in IGTPW_10412 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@debugfs_test@basic-hwmon:
- bat-adlm-1: NOTRUN -> [SKIP][4] ([i915#3826])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@debugfs_test@basic-hwmon.html
* igt@fbdev@eof:
- bat-adlm-1: NOTRUN -> [SKIP][5] ([i915#2582]) +3 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@fbdev@eof.html
* igt@fbdev@info:
- bat-adlm-1: NOTRUN -> [SKIP][6] ([i915#1849] / [i915#2582])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@fbdev@info.html
* igt@gem_lmem_swapping@parallel-random-engines:
- bat-adlm-1: NOTRUN -> [SKIP][7] ([i915#4613]) +3 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@gem_tiled_pread_basic:
- bat-adlm-1: NOTRUN -> [SKIP][8] ([i915#3282])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rps@basic-api:
- bat-adlm-1: NOTRUN -> [SKIP][9] ([i915#6621])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@i915_pm_rps@basic-api.html
* igt@i915_selftest@live@hangcheck:
- bat-adlm-1: NOTRUN -> [INCOMPLETE][10] ([i915#9413])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@i915_selftest@live@hangcheck.html
* igt@kms_flip@basic-plain-flip:
- bat-adlm-1: NOTRUN -> [SKIP][11] ([i915#3637]) +3 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@kms_flip@basic-plain-flip.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-adlm-1: NOTRUN -> [SKIP][12] ([fdo#109285])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_frontbuffer_tracking@basic:
- bat-adlm-1: NOTRUN -> [SKIP][13] ([i915#1849] / [i915#4342])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@kms_frontbuffer_tracking@basic.html
* igt@kms_pm_backlight@basic-brightness:
- bat-adlm-1: NOTRUN -> [SKIP][14] ([i915#5354])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-adlm-1: NOTRUN -> [SKIP][15] ([i915#3555])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-flip:
- bat-adlm-1: NOTRUN -> [SKIP][16] ([i915#3708]) +3 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/bat-adlm-1/igt@prime_vgem@basic-fence-flip.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
[i915#4342]: https://gitlab.freedesktop.org/drm/intel/issues/4342
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#9413]: https://gitlab.freedesktop.org/drm/intel/issues/9413
[i915#9673]: https://gitlab.freedesktop.org/drm/intel/issues/9673
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7638 -> IGTPW_10412
CI-20190529: 20190529
CI_DRM_14012: 3dbd9e32db3edc72f8b7d82a75c0e7355e1bac92 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_10412: 10412
IGT_7638: 52ca619dfeae57348b957778dcfdd8117d8ff9f0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@kms_darkscreen_detection@basic
+igt@kms_darkscreen_detection@negative
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10412/index.html
[-- Attachment #2: Type: text/html, Size: 7621 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-12-13 13:44 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-13 10:34 [PATCH i-g-t 0/2] add new test for dark screen detection Kunal Joshi
2023-12-13 10:34 ` [PATCH i-g-t 1/2] lib/igt_debugfs: added helper to enable/disable " Kunal Joshi
2023-12-13 10:34 ` [PATCH i-g-t 2/2] tests/intel/kms_dark_screen_detection: Added IGT for validating " Kunal Joshi
2023-12-13 10:52 ` Jani Nikula
2023-12-13 10:37 ` [PATCH i-g-t 0/2] add new test for " Jani Nikula
2023-12-13 13:05 ` ✗ GitLab.Pipeline: warning for " Patchwork
2023-12-13 13:35 ` ✓ CI.xeBAT: success " Patchwork
2023-12-13 13:44 ` ✗ Fi.CI.BAT: failure " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox