* [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 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
* 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
* ✗ 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