All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error
@ 2019-11-29 15:52 Juha-Pekka Heikkila
  2019-11-29 16:03 ` Chris Wilson
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2019-11-29 15:52 UTC (permalink / raw)
  To: igt-dev

Having crc running continuously cause this test sometime
fill crc buffer, fix this problem as well as do some generic
cleanups.

Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 tests/kms_cursor_crc.c | 106 +++++++++++++++++++++++++------------------------
 1 file changed, 54 insertions(+), 52 deletions(-)

diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index 6c4c457..6982437 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -52,7 +52,6 @@ typedef struct {
 	struct igt_fb fb;
 	igt_output_t *output;
 	enum pipe pipe;
-	igt_crc_t ref_crc;
 	int left, right, top, bottom;
 	int screenw, screenh;
 	int refresh;
@@ -60,6 +59,9 @@ typedef struct {
 	int cursor_max_w, cursor_max_h;
 	igt_pipe_crc_t *pipe_crc;
 	unsigned flags;
+	igt_plane_t *primary;
+	igt_plane_t *cursor;
+	cairo_surface_t *surface;
 } data_t;
 
 #define TEST_DPMS (1<<0)
@@ -89,23 +91,15 @@ static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a)
 
 static void cursor_enable(data_t *data)
 {
-	igt_output_t *output = data->output;
-	igt_plane_t *cursor =
-		igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
-
-	igt_plane_set_fb(cursor, &data->fb);
-	igt_plane_set_size(cursor, data->curw, data->curh);
-	igt_fb_set_size(&data->fb, cursor, data->curw, data->curh);
+	igt_plane_set_fb(data->cursor, &data->fb);
+	igt_plane_set_size(data->cursor, data->curw, data->curh);
+	igt_fb_set_size(&data->fb, data->cursor, data->curw, data->curh);
 }
 
 static void cursor_disable(data_t *data)
 {
-	igt_output_t *output = data->output;
-	igt_plane_t *cursor =
-		igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
-
-	igt_plane_set_fb(cursor, NULL);
-	igt_plane_set_position(cursor, 0, 0);
+	igt_plane_set_fb(data->cursor, NULL);
+	igt_plane_set_position(data->cursor, 0, 0);
 }
 
 static bool chv_cursor_broken(data_t *data, int x)
@@ -144,30 +138,40 @@ static bool cursor_visible(data_t *data, int x, int y)
 	return true;
 }
 
+static void restore_image(data_t *data)
+{
+	cairo_t *cr;
+
+	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
+	cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
+	cairo_set_source_surface(cr, data->surface, 0, 0);
+	cairo_rectangle(cr, 0, 0, data->screenw, data->screenh);
+	cairo_fill(cr);
+	igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
+	gem_sync(data->drm_fd, data->primary_fb.gem_handle);
+	igt_dirty_fb(data->drm_fd, &data->primary_fb);
+}
+
 static void do_single_test(data_t *data, int x, int y)
 {
 	igt_display_t *display = &data->display;
 	igt_pipe_crc_t *pipe_crc = data->pipe_crc;
 	igt_crc_t crc, ref_crc;
-	igt_plane_t *cursor =
-		igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_CURSOR);
 	cairo_t *cr;
 	int ret = 0;
 
 	igt_print_activity();
 
 	/* Hardware test */
-	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
-	igt_paint_test_pattern(cr, data->screenw, data->screenh);
-	igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
+	restore_image(data);
 
+	igt_plane_set_position(data->cursor, x, y);
 	cursor_enable(data);
-	igt_plane_set_position(cursor, x, y);
 
 	if (chv_cursor_broken(data, x) && cursor_visible(data, x, y)) {
 		ret = igt_display_try_commit2(display, COMMIT_LEGACY);
 		igt_assert_eq(ret, -EINVAL);
-		igt_plane_set_position(cursor, 0, y);
+		igt_plane_set_position(data->cursor, 0, y);
 
 		return;
 	}
@@ -211,39 +215,29 @@ static void do_single_test(data_t *data, int x, int y)
 	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
 	draw_cursor(cr, x, y, data->curw, data->curh, 1.0);
 	igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
-	igt_display_commit(display);
-
+	gem_sync(data->drm_fd, data->primary_fb.gem_handle);
+	igt_dirty_fb(data->drm_fd, &data->primary_fb);
 	igt_wait_for_vblank(data->drm_fd, data->pipe);
-	igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &ref_crc);
 
+	igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &ref_crc);
 	igt_assert_crc_equal(&crc, &ref_crc);
-
-	/* Clear screen afterwards */
-	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
-	igt_paint_color(cr, 0, 0, data->screenw, data->screenh, 0.0, 0.0, 0.0);
-	igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
 }
 
 static void do_fail_test(data_t *data, int x, int y, int expect)
 {
 	igt_display_t *display = &data->display;
-	igt_plane_t *cursor =
-		igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_CURSOR);
-	cairo_t *cr;
 	int ret;
 
 	igt_print_activity();
 
 	/* Hardware test */
-	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
-	igt_paint_test_pattern(cr, data->screenw, data->screenh);
-	igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
+	restore_image(data);
 
 	cursor_enable(data);
-	igt_plane_set_position(cursor, x, y);
+	igt_plane_set_position(data->cursor, x, y);
 	ret = igt_display_try_commit2(display, COMMIT_LEGACY);
 
-	igt_plane_set_position(cursor, 0, 0);
+	igt_plane_set_position(data->cursor, 0, 0);
 	cursor_disable(data);
 	igt_display_commit(display);
 
@@ -355,6 +349,11 @@ static void cleanup_crtc(data_t *data)
 	igt_pipe_crc_free(data->pipe_crc);
 	data->pipe_crc = NULL;
 
+	cairo_surface_destroy(data->surface);
+
+	igt_plane_set_fb(data->primary, NULL);
+	igt_display_commit(display);
+
 	igt_remove_fb(data->drm_fd, &data->primary_fb);
 
 	igt_display_reset(display);
@@ -365,7 +364,7 @@ static void prepare_crtc(data_t *data, igt_output_t *output,
 {
 	drmModeModeInfo *mode;
 	igt_display_t *display = &data->display;
-	igt_plane_t *primary;
+	cairo_t *cr;
 
 	/* select the pipe we want to use */
 	igt_output_set_pipe(output, data->pipe);
@@ -378,8 +377,10 @@ static void prepare_crtc(data_t *data, igt_output_t *output,
 			    0.0, 0.0, 0.0,
 			    &data->primary_fb);
 
-	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
-	igt_plane_set_fb(primary, &data->primary_fb);
+	data->primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+	data->cursor = igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
+
+	igt_plane_set_fb(data->primary, &data->primary_fb);
 
 	igt_display_commit(display);
 
@@ -398,9 +399,14 @@ static void prepare_crtc(data_t *data, igt_output_t *output,
 	data->curh = cursor_h;
 	data->refresh = mode->vrefresh;
 
-	/* get reference crc w/o cursor */
+	/* store test image as cairo surface */
+	data->surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, data->screenw, data->screenh);
+	cr = cairo_create(data->surface);
+	cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
+	igt_paint_test_pattern(cr, data->screenw, data->screenh);
+	cairo_destroy(cr);
+
 	igt_pipe_crc_start(data->pipe_crc);
-	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &data->ref_crc);
 }
 
 static void test_cursor_alpha(data_t *data, double a)
@@ -521,8 +527,6 @@ static void test_cursor_size(data_t *data)
 	uint32_t fb_id;
 	int i, size;
 	int cursor_max_size = data->cursor_max_w;
-	igt_plane_t *cursor =
-		igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_CURSOR);
 
 	/* Create a maximum size cursor, then change the size in flight to
 	 * smaller ones to see that the size is applied correctly
@@ -541,8 +545,8 @@ static void test_cursor_size(data_t *data)
 	cursor_enable(data);
 	for (i = 0, size = cursor_max_size; size >= 64; size /= 2, i++) {
 		/* Change size in flight: */
-		igt_plane_set_size(cursor, size, size);
-		igt_fb_set_size(&data->fb, cursor, size, size);
+		igt_plane_set_size(data->cursor, size, size);
+		igt_fb_set_size(&data->fb, data->cursor, size, size);
 		igt_display_commit(display);
 		igt_wait_for_vblank(data->drm_fd, data->pipe);
 		igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc[i]);
@@ -575,26 +579,24 @@ static void test_rapid_movement(data_t *data)
 	int x = 0, y = 0;
 	long usec;
 	igt_display_t *display = &data->display;
-	igt_plane_t *cursor =
-		igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_CURSOR);
 
 	cursor_enable(data);
 
 	gettimeofday(&start, NULL);
 	for ( ; x < 100; x++) {
-		igt_plane_set_position(cursor, x, y);
+		igt_plane_set_position(data->cursor, x, y);
 		igt_display_commit(display);
 	}
 	for ( ; y < 100; y++) {
-		igt_plane_set_position(cursor, x, y);
+		igt_plane_set_position(data->cursor, x, y);
 		igt_display_commit(display);
 	}
 	for ( ; x > 0; x--) {
-		igt_plane_set_position(cursor, x, y);
+		igt_plane_set_position(data->cursor, x, y);
 		igt_display_commit(display);
 	}
 	for ( ; y > 0; y--) {
-		igt_plane_set_position(cursor, x, y);
+		igt_plane_set_position(data->cursor, x, y);
 		igt_display_commit(display);
 	}
 	gettimeofday(&end, NULL);
-- 
2.7.4

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error
  2019-11-29 15:52 [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error Juha-Pekka Heikkila
@ 2019-11-29 16:03 ` Chris Wilson
  2019-11-29 19:57   ` Juha-Pekka Heikkilä
  2019-11-29 17:30 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
  2019-11-30 15:34 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  2 siblings, 1 reply; 10+ messages in thread
From: Chris Wilson @ 2019-11-29 16:03 UTC (permalink / raw)
  To: Juha-Pekka Heikkila, igt-dev

Quoting Juha-Pekka Heikkila (2019-11-29 15:52:45)
> Having crc running continuously cause this test sometime
> fill crc buffer, fix this problem as well as do some generic
> cleanups.
> 
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> ---
>  tests/kms_cursor_crc.c | 106 +++++++++++++++++++++++++------------------------
>  1 file changed, 54 insertions(+), 52 deletions(-)
> 
> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> index 6c4c457..6982437 100644
> --- a/tests/kms_cursor_crc.c
> +++ b/tests/kms_cursor_crc.c
> @@ -52,7 +52,6 @@ typedef struct {
>         struct igt_fb fb;
>         igt_output_t *output;
>         enum pipe pipe;
> -       igt_crc_t ref_crc;
>         int left, right, top, bottom;
>         int screenw, screenh;
>         int refresh;
> @@ -60,6 +59,9 @@ typedef struct {
>         int cursor_max_w, cursor_max_h;
>         igt_pipe_crc_t *pipe_crc;
>         unsigned flags;
> +       igt_plane_t *primary;
> +       igt_plane_t *cursor;
> +       cairo_surface_t *surface;
>  } data_t;
>  
>  #define TEST_DPMS (1<<0)
> @@ -89,23 +91,15 @@ static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a)
>  
>  static void cursor_enable(data_t *data)
>  {
> -       igt_output_t *output = data->output;
> -       igt_plane_t *cursor =
> -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> -
> -       igt_plane_set_fb(cursor, &data->fb);
> -       igt_plane_set_size(cursor, data->curw, data->curh);
> -       igt_fb_set_size(&data->fb, cursor, data->curw, data->curh);
> +       igt_plane_set_fb(data->cursor, &data->fb);
> +       igt_plane_set_size(data->cursor, data->curw, data->curh);
> +       igt_fb_set_size(&data->fb, data->cursor, data->curw, data->curh);
>  }
>  
>  static void cursor_disable(data_t *data)
>  {
> -       igt_output_t *output = data->output;
> -       igt_plane_t *cursor =
> -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> -
> -       igt_plane_set_fb(cursor, NULL);
> -       igt_plane_set_position(cursor, 0, 0);
> +       igt_plane_set_fb(data->cursor, NULL);
> +       igt_plane_set_position(data->cursor, 0, 0);
>  }
>  
>  static bool chv_cursor_broken(data_t *data, int x)
> @@ -144,30 +138,40 @@ static bool cursor_visible(data_t *data, int x, int y)
>         return true;
>  }
>  
> +static void restore_image(data_t *data)
> +{
> +       cairo_t *cr;
> +
> +       cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
> +       cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
> +       cairo_set_source_surface(cr, data->surface, 0, 0);
> +       cairo_rectangle(cr, 0, 0, data->screenw, data->screenh);
> +       cairo_fill(cr);
> +       igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
> +       gem_sync(data->drm_fd, data->primary_fb.gem_handle);

This is a generic KMS test, gem_sync() is not supported.

Here it looks pretty silly, later on I guess your intent is to take the
vblank after rendering completion to align with the modeset. Why not
just ask for a signal from modeset? Or something other generic event
handling.

Bring on vkms in CI.
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Fix user space read too slow error
  2019-11-29 15:52 [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error Juha-Pekka Heikkila
  2019-11-29 16:03 ` Chris Wilson
@ 2019-11-29 17:30 ` Patchwork
  2019-11-30 15:34 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  2 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2019-11-29 17:30 UTC (permalink / raw)
  To: Juha-Pekka Heikkila; +Cc: igt-dev

== Series Details ==

Series: tests/kms_cursor_crc: Fix user space read too slow error
URL   : https://patchwork.freedesktop.org/series/70218/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7444 -> IGTPW_3788
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/index.html

Known issues
------------

  Here are the changes found in IGTPW_3788 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live_blt:
    - fi-hsw-peppy:       [PASS][1] -> [DMESG-FAIL][2] ([fdo#112147])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-hsw-peppy/igt@i915_selftest@live_blt.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-hsw-peppy/igt@i915_selftest@live_blt.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       [PASS][3] -> [DMESG-WARN][4] ([fdo#102614])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html

  
#### Possible fixes ####

  * igt@gem_exec_create@basic:
    - {fi-tgl-u}:         [INCOMPLETE][5] ([fdo#111736]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-tgl-u/igt@gem_exec_create@basic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-tgl-u/igt@gem_exec_create@basic.html

  * igt@i915_module_load@reload-no-display:
    - fi-skl-lmem:        [DMESG-WARN][7] ([fdo#112261]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-skl-lmem/igt@i915_module_load@reload-no-display.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-skl-lmem/igt@i915_module_load@reload-no-display.html

  * igt@i915_module_load@reload-with-fault-injection:
    - fi-icl-y:           [INCOMPLETE][9] ([fdo#107713]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-icl-y/igt@i915_module_load@reload-with-fault-injection.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-icl-y/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [FAIL][11] ([fdo#108511]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_hangcheck:
    - fi-icl-dsi:         [INCOMPLETE][13] ([fdo#107713] / [fdo#108569]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-icl-dsi/igt@i915_selftest@live_hangcheck.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][15] ([fdo#111045] / [fdo#111096]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u2:          [FAIL][17] ([fdo#103167]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
    - fi-tgl-y:           [FAIL][19] ([fdo#103167] / [fdo#112163]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-tgl-y/igt@kms_frontbuffer_tracking@basic.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-tgl-y/igt@kms_frontbuffer_tracking@basic.html

  
#### Warnings ####

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-kbl-x1275:       [DMESG-WARN][21] ([fdo#103558] / [fdo#105602]) -> [DMESG-WARN][22] ([fdo#103558] / [fdo#105602] / [fdo#105763]) +5 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - fi-kbl-x1275:       [DMESG-WARN][23] ([fdo#103558] / [fdo#105602] / [fdo#105763]) -> [DMESG-WARN][24] ([fdo#103558] / [fdo#105602]) +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/fi-kbl-x1275/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/fi-kbl-x1275/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103558]: https://bugs.freedesktop.org/show_bug.cgi?id=103558
  [fdo#105602]: https://bugs.freedesktop.org/show_bug.cgi?id=105602
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111736]: https://bugs.freedesktop.org/show_bug.cgi?id=111736
  [fdo#112147]: https://bugs.freedesktop.org/show_bug.cgi?id=112147
  [fdo#112163]: https://bugs.freedesktop.org/show_bug.cgi?id=112163
  [fdo#112261]: https://bugs.freedesktop.org/show_bug.cgi?id=112261
  [fdo#112298]: https://bugs.freedesktop.org/show_bug.cgi?id=112298


Participating hosts (52 -> 43)
------------------------------

  Missing    (9): fi-hsw-4770r fi-ilk-m540 fi-bdw-5557u fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus fi-kbl-r 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5318 -> IGTPW_3788

  CI-20190529: 20190529
  CI_DRM_7444: b51db4a957209a27e9c5d0bbd3ce2408ccee6c2c @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3788: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/index.html
  IGT_5318: 26ae6584ac03ad862d82f986302275a68bcccb29 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error
  2019-11-29 16:03 ` Chris Wilson
@ 2019-11-29 19:57   ` Juha-Pekka Heikkilä
  2019-11-29 20:08     ` Chris Wilson
  0 siblings, 1 reply; 10+ messages in thread
From: Juha-Pekka Heikkilä @ 2019-11-29 19:57 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

On Fri, Nov 29, 2019 at 6:04 PM Chris Wilson <chris@chris-wilson.co.uk> wrote:
>
> Quoting Juha-Pekka Heikkila (2019-11-29 15:52:45)
> > Having crc running continuously cause this test sometime
> > fill crc buffer, fix this problem as well as do some generic
> > cleanups.
> >
> > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > ---
> >  tests/kms_cursor_crc.c | 106 +++++++++++++++++++++++++------------------------
> >  1 file changed, 54 insertions(+), 52 deletions(-)
> >
> > diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> > index 6c4c457..6982437 100644
> > --- a/tests/kms_cursor_crc.c
> > +++ b/tests/kms_cursor_crc.c
> > @@ -52,7 +52,6 @@ typedef struct {
> >         struct igt_fb fb;
> >         igt_output_t *output;
> >         enum pipe pipe;
> > -       igt_crc_t ref_crc;
> >         int left, right, top, bottom;
> >         int screenw, screenh;
> >         int refresh;
> > @@ -60,6 +59,9 @@ typedef struct {
> >         int cursor_max_w, cursor_max_h;
> >         igt_pipe_crc_t *pipe_crc;
> >         unsigned flags;
> > +       igt_plane_t *primary;
> > +       igt_plane_t *cursor;
> > +       cairo_surface_t *surface;
> >  } data_t;
> >
> >  #define TEST_DPMS (1<<0)
> > @@ -89,23 +91,15 @@ static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a)
> >
> >  static void cursor_enable(data_t *data)
> >  {
> > -       igt_output_t *output = data->output;
> > -       igt_plane_t *cursor =
> > -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> > -
> > -       igt_plane_set_fb(cursor, &data->fb);
> > -       igt_plane_set_size(cursor, data->curw, data->curh);
> > -       igt_fb_set_size(&data->fb, cursor, data->curw, data->curh);
> > +       igt_plane_set_fb(data->cursor, &data->fb);
> > +       igt_plane_set_size(data->cursor, data->curw, data->curh);
> > +       igt_fb_set_size(&data->fb, data->cursor, data->curw, data->curh);
> >  }
> >
> >  static void cursor_disable(data_t *data)
> >  {
> > -       igt_output_t *output = data->output;
> > -       igt_plane_t *cursor =
> > -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> > -
> > -       igt_plane_set_fb(cursor, NULL);
> > -       igt_plane_set_position(cursor, 0, 0);
> > +       igt_plane_set_fb(data->cursor, NULL);
> > +       igt_plane_set_position(data->cursor, 0, 0);
> >  }
> >
> >  static bool chv_cursor_broken(data_t *data, int x)
> > @@ -144,30 +138,40 @@ static bool cursor_visible(data_t *data, int x, int y)
> >         return true;
> >  }
> >
> > +static void restore_image(data_t *data)
> > +{
> > +       cairo_t *cr;
> > +
> > +       cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
> > +       cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
> > +       cairo_set_source_surface(cr, data->surface, 0, 0);
> > +       cairo_rectangle(cr, 0, 0, data->screenw, data->screenh);
> > +       cairo_fill(cr);
> > +       igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
> > +       gem_sync(data->drm_fd, data->primary_fb.gem_handle);
>
> This is a generic KMS test, gem_sync() is not supported.

Idea here was to make certain memory copied to FB is really there. I
did ask from Mika for ideas and he suggested changing domain to cause
synchronization, in ioctl_wrappers.c at gem_set_domain() comments
suggested to use gem_sync() instead.

Reason for doing this is I started to get random CRC errors when I
switched away from calling igt_paint_test_pattern() every time and
just use test pattern stored in Cairo surface which seemed much
faster. Adding wait after igt_put_cairo_ctx() removed those CRC errors
so I figured there's my problem.

On my ICL box those random CRC error went away with this pattern but
if gem_sync doesn't do here as I had planned then it can be I just got
lucky with randomness of random CRC errors :) Once CI has ran this I
know more.

/Juha-Pekka
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error
  2019-11-29 19:57   ` Juha-Pekka Heikkilä
@ 2019-11-29 20:08     ` Chris Wilson
  2019-11-29 20:38       ` Juha-Pekka Heikkila
  0 siblings, 1 reply; 10+ messages in thread
From: Chris Wilson @ 2019-11-29 20:08 UTC (permalink / raw)
  To: Juha-Pekka Heikkilä; +Cc: igt-dev

Quoting Juha-Pekka Heikkilä (2019-11-29 19:57:48)
> On Fri, Nov 29, 2019 at 6:04 PM Chris Wilson <chris@chris-wilson.co.uk> wrote:
> >
> > Quoting Juha-Pekka Heikkila (2019-11-29 15:52:45)
> > > Having crc running continuously cause this test sometime
> > > fill crc buffer, fix this problem as well as do some generic
> > > cleanups.
> > >
> > > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > > ---
> > >  tests/kms_cursor_crc.c | 106 +++++++++++++++++++++++++------------------------
> > >  1 file changed, 54 insertions(+), 52 deletions(-)
> > >
> > > diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> > > index 6c4c457..6982437 100644
> > > --- a/tests/kms_cursor_crc.c
> > > +++ b/tests/kms_cursor_crc.c
> > > @@ -52,7 +52,6 @@ typedef struct {
> > >         struct igt_fb fb;
> > >         igt_output_t *output;
> > >         enum pipe pipe;
> > > -       igt_crc_t ref_crc;
> > >         int left, right, top, bottom;
> > >         int screenw, screenh;
> > >         int refresh;
> > > @@ -60,6 +59,9 @@ typedef struct {
> > >         int cursor_max_w, cursor_max_h;
> > >         igt_pipe_crc_t *pipe_crc;
> > >         unsigned flags;
> > > +       igt_plane_t *primary;
> > > +       igt_plane_t *cursor;
> > > +       cairo_surface_t *surface;
> > >  } data_t;
> > >
> > >  #define TEST_DPMS (1<<0)
> > > @@ -89,23 +91,15 @@ static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a)
> > >
> > >  static void cursor_enable(data_t *data)
> > >  {
> > > -       igt_output_t *output = data->output;
> > > -       igt_plane_t *cursor =
> > > -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> > > -
> > > -       igt_plane_set_fb(cursor, &data->fb);
> > > -       igt_plane_set_size(cursor, data->curw, data->curh);
> > > -       igt_fb_set_size(&data->fb, cursor, data->curw, data->curh);
> > > +       igt_plane_set_fb(data->cursor, &data->fb);
> > > +       igt_plane_set_size(data->cursor, data->curw, data->curh);
> > > +       igt_fb_set_size(&data->fb, data->cursor, data->curw, data->curh);
> > >  }
> > >
> > >  static void cursor_disable(data_t *data)
> > >  {
> > > -       igt_output_t *output = data->output;
> > > -       igt_plane_t *cursor =
> > > -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> > > -
> > > -       igt_plane_set_fb(cursor, NULL);
> > > -       igt_plane_set_position(cursor, 0, 0);
> > > +       igt_plane_set_fb(data->cursor, NULL);
> > > +       igt_plane_set_position(data->cursor, 0, 0);
> > >  }
> > >
> > >  static bool chv_cursor_broken(data_t *data, int x)
> > > @@ -144,30 +138,40 @@ static bool cursor_visible(data_t *data, int x, int y)
> > >         return true;
> > >  }
> > >
> > > +static void restore_image(data_t *data)
> > > +{
> > > +       cairo_t *cr;
> > > +
> > > +       cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
> > > +       cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
> > > +       cairo_set_source_surface(cr, data->surface, 0, 0);
> > > +       cairo_rectangle(cr, 0, 0, data->screenw, data->screenh);
> > > +       cairo_fill(cr);
> > > +       igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
> > > +       gem_sync(data->drm_fd, data->primary_fb.gem_handle);
> >
> > This is a generic KMS test, gem_sync() is not supported.
> 
> Idea here was to make certain memory copied to FB is really there. I
> did ask from Mika for ideas and he suggested changing domain to cause
> synchronization, in ioctl_wrappers.c at gem_set_domain() comments
> suggested to use gem_sync() instead.

Then you are trying to paper over real bugs. Userspace calls dirtyfb to
declare it has updated the fb, the kernel then has to take care of
making sure it is coherent prior to the next flip, or worry more if it
is already on the scanout.
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error
  2019-11-29 20:08     ` Chris Wilson
@ 2019-11-29 20:38       ` Juha-Pekka Heikkila
  2019-11-29 20:44         ` Ville Syrjälä
  0 siblings, 1 reply; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2019-11-29 20:38 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

On 29.11.2019 22.08, Chris Wilson wrote:
> Quoting Juha-Pekka Heikkilä (2019-11-29 19:57:48)
>> On Fri, Nov 29, 2019 at 6:04 PM Chris Wilson <chris@chris-wilson.co.uk> wrote:
>>>
>>> Quoting Juha-Pekka Heikkila (2019-11-29 15:52:45)
>>>> Having crc running continuously cause this test sometime
>>>> fill crc buffer, fix this problem as well as do some generic
>>>> cleanups.
>>>>
>>>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
>>>> ---
>>>>   tests/kms_cursor_crc.c | 106 +++++++++++++++++++++++++------------------------
>>>>   1 file changed, 54 insertions(+), 52 deletions(-)
>>>>
>>>> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
>>>> index 6c4c457..6982437 100644
>>>> --- a/tests/kms_cursor_crc.c
>>>> +++ b/tests/kms_cursor_crc.c
>>>> @@ -52,7 +52,6 @@ typedef struct {
>>>>          struct igt_fb fb;
>>>>          igt_output_t *output;
>>>>          enum pipe pipe;
>>>> -       igt_crc_t ref_crc;
>>>>          int left, right, top, bottom;
>>>>          int screenw, screenh;
>>>>          int refresh;
>>>> @@ -60,6 +59,9 @@ typedef struct {
>>>>          int cursor_max_w, cursor_max_h;
>>>>          igt_pipe_crc_t *pipe_crc;
>>>>          unsigned flags;
>>>> +       igt_plane_t *primary;
>>>> +       igt_plane_t *cursor;
>>>> +       cairo_surface_t *surface;
>>>>   } data_t;
>>>>
>>>>   #define TEST_DPMS (1<<0)
>>>> @@ -89,23 +91,15 @@ static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a)
>>>>
>>>>   static void cursor_enable(data_t *data)
>>>>   {
>>>> -       igt_output_t *output = data->output;
>>>> -       igt_plane_t *cursor =
>>>> -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
>>>> -
>>>> -       igt_plane_set_fb(cursor, &data->fb);
>>>> -       igt_plane_set_size(cursor, data->curw, data->curh);
>>>> -       igt_fb_set_size(&data->fb, cursor, data->curw, data->curh);
>>>> +       igt_plane_set_fb(data->cursor, &data->fb);
>>>> +       igt_plane_set_size(data->cursor, data->curw, data->curh);
>>>> +       igt_fb_set_size(&data->fb, data->cursor, data->curw, data->curh);
>>>>   }
>>>>
>>>>   static void cursor_disable(data_t *data)
>>>>   {
>>>> -       igt_output_t *output = data->output;
>>>> -       igt_plane_t *cursor =
>>>> -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
>>>> -
>>>> -       igt_plane_set_fb(cursor, NULL);
>>>> -       igt_plane_set_position(cursor, 0, 0);
>>>> +       igt_plane_set_fb(data->cursor, NULL);
>>>> +       igt_plane_set_position(data->cursor, 0, 0);
>>>>   }
>>>>
>>>>   static bool chv_cursor_broken(data_t *data, int x)
>>>> @@ -144,30 +138,40 @@ static bool cursor_visible(data_t *data, int x, int y)
>>>>          return true;
>>>>   }
>>>>
>>>> +static void restore_image(data_t *data)
>>>> +{
>>>> +       cairo_t *cr;
>>>> +
>>>> +       cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
>>>> +       cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
>>>> +       cairo_set_source_surface(cr, data->surface, 0, 0);
>>>> +       cairo_rectangle(cr, 0, 0, data->screenw, data->screenh);
>>>> +       cairo_fill(cr);
>>>> +       igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
>>>> +       gem_sync(data->drm_fd, data->primary_fb.gem_handle);
>>>
>>> This is a generic KMS test, gem_sync() is not supported.
>>
>> Idea here was to make certain memory copied to FB is really there. I
>> did ask from Mika for ideas and he suggested changing domain to cause
>> synchronization, in ioctl_wrappers.c at gem_set_domain() comments
>> suggested to use gem_sync() instead.
> 
> Then you are trying to paper over real bugs. Userspace calls dirtyfb to
> declare it has updated the fb, the kernel then has to take care of
> making sure it is coherent prior to the next flip, or worry more if it
> is already on the scanout.

I did talk with Ville about this and Ville said there's no guarantee in 
IGT for this synchronization. I do set FB as dirty in my code because I 
use only one FB, I set this for case when FBC is in use. I'm not 
familiar with workings of gem here but looking at tearing on my screen I 
got the idea when igt_put_cairo_ctx() finishes memory being copied is 
not necessarily yet all copied.

/Juha-Pekka
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error
  2019-11-29 20:38       ` Juha-Pekka Heikkila
@ 2019-11-29 20:44         ` Ville Syrjälä
  2019-12-04 17:50           ` Ville Syrjälä
  0 siblings, 1 reply; 10+ messages in thread
From: Ville Syrjälä @ 2019-11-29 20:44 UTC (permalink / raw)
  To: Juha-Pekka Heikkila; +Cc: igt-dev

On Fri, Nov 29, 2019 at 10:38:16PM +0200, Juha-Pekka Heikkila wrote:
> On 29.11.2019 22.08, Chris Wilson wrote:
> > Quoting Juha-Pekka Heikkilä (2019-11-29 19:57:48)
> >> On Fri, Nov 29, 2019 at 6:04 PM Chris Wilson <chris@chris-wilson.co.uk> wrote:
> >>>
> >>> Quoting Juha-Pekka Heikkila (2019-11-29 15:52:45)
> >>>> Having crc running continuously cause this test sometime
> >>>> fill crc buffer, fix this problem as well as do some generic
> >>>> cleanups.
> >>>>
> >>>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> >>>> ---
> >>>>   tests/kms_cursor_crc.c | 106 +++++++++++++++++++++++++------------------------
> >>>>   1 file changed, 54 insertions(+), 52 deletions(-)
> >>>>
> >>>> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> >>>> index 6c4c457..6982437 100644
> >>>> --- a/tests/kms_cursor_crc.c
> >>>> +++ b/tests/kms_cursor_crc.c
> >>>> @@ -52,7 +52,6 @@ typedef struct {
> >>>>          struct igt_fb fb;
> >>>>          igt_output_t *output;
> >>>>          enum pipe pipe;
> >>>> -       igt_crc_t ref_crc;
> >>>>          int left, right, top, bottom;
> >>>>          int screenw, screenh;
> >>>>          int refresh;
> >>>> @@ -60,6 +59,9 @@ typedef struct {
> >>>>          int cursor_max_w, cursor_max_h;
> >>>>          igt_pipe_crc_t *pipe_crc;
> >>>>          unsigned flags;
> >>>> +       igt_plane_t *primary;
> >>>> +       igt_plane_t *cursor;
> >>>> +       cairo_surface_t *surface;
> >>>>   } data_t;
> >>>>
> >>>>   #define TEST_DPMS (1<<0)
> >>>> @@ -89,23 +91,15 @@ static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a)
> >>>>
> >>>>   static void cursor_enable(data_t *data)
> >>>>   {
> >>>> -       igt_output_t *output = data->output;
> >>>> -       igt_plane_t *cursor =
> >>>> -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> >>>> -
> >>>> -       igt_plane_set_fb(cursor, &data->fb);
> >>>> -       igt_plane_set_size(cursor, data->curw, data->curh);
> >>>> -       igt_fb_set_size(&data->fb, cursor, data->curw, data->curh);
> >>>> +       igt_plane_set_fb(data->cursor, &data->fb);
> >>>> +       igt_plane_set_size(data->cursor, data->curw, data->curh);
> >>>> +       igt_fb_set_size(&data->fb, data->cursor, data->curw, data->curh);
> >>>>   }
> >>>>
> >>>>   static void cursor_disable(data_t *data)
> >>>>   {
> >>>> -       igt_output_t *output = data->output;
> >>>> -       igt_plane_t *cursor =
> >>>> -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> >>>> -
> >>>> -       igt_plane_set_fb(cursor, NULL);
> >>>> -       igt_plane_set_position(cursor, 0, 0);
> >>>> +       igt_plane_set_fb(data->cursor, NULL);
> >>>> +       igt_plane_set_position(data->cursor, 0, 0);
> >>>>   }
> >>>>
> >>>>   static bool chv_cursor_broken(data_t *data, int x)
> >>>> @@ -144,30 +138,40 @@ static bool cursor_visible(data_t *data, int x, int y)
> >>>>          return true;
> >>>>   }
> >>>>
> >>>> +static void restore_image(data_t *data)
> >>>> +{
> >>>> +       cairo_t *cr;
> >>>> +
> >>>> +       cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
> >>>> +       cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
> >>>> +       cairo_set_source_surface(cr, data->surface, 0, 0);
> >>>> +       cairo_rectangle(cr, 0, 0, data->screenw, data->screenh);
> >>>> +       cairo_fill(cr);
> >>>> +       igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
> >>>> +       gem_sync(data->drm_fd, data->primary_fb.gem_handle);
> >>>
> >>> This is a generic KMS test, gem_sync() is not supported.
> >>
> >> Idea here was to make certain memory copied to FB is really there. I
> >> did ask from Mika for ideas and he suggested changing domain to cause
> >> synchronization, in ioctl_wrappers.c at gem_set_domain() comments
> >> suggested to use gem_sync() instead.
> > 
> > Then you are trying to paper over real bugs. Userspace calls dirtyfb to
> > declare it has updated the fb, the kernel then has to take care of
> > making sure it is coherent prior to the next flip, or worry more if it
> > is already on the scanout.
> 
> I did talk with Ville about this and Ville said there's no guarantee in 
> IGT for this synchronization.

We already have the gem_sync() in igt_fb for the cases where we
convert via render/blitter engine. What we seem to be missing is
the set_domain(.write_domain=0) for the cpu gtt path. The dirtyfb
is only done for dumb fbs for whatever reason.

-- 
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for tests/kms_cursor_crc: Fix user space read too slow error
  2019-11-29 15:52 [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error Juha-Pekka Heikkila
  2019-11-29 16:03 ` Chris Wilson
  2019-11-29 17:30 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
@ 2019-11-30 15:34 ` Patchwork
  2 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2019-11-30 15:34 UTC (permalink / raw)
  To: Juha-Pekka Heikkila; +Cc: igt-dev

== Series Details ==

Series: tests/kms_cursor_crc: Fix user space read too slow error
URL   : https://patchwork.freedesktop.org/series/70218/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7444_full -> IGTPW_3788_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_3788_full:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@gem_exec_schedule@pi-common-bsd}:
    - shard-tglb:         NOTRUN -> [SKIP][1] +1 similar issue
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb4/igt@gem_exec_schedule@pi-common-bsd.html

  * {igt@gem_exec_schedule@pi-distinct-iova-bsd}:
    - shard-iclb:         NOTRUN -> [SKIP][2] +1 similar issue
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb2/igt@gem_exec_schedule@pi-distinct-iova-bsd.html

  
Known issues
------------

  Here are the changes found in IGTPW_3788_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_isolation@vcs1-reset:
    - shard-iclb:         [PASS][3] -> [SKIP][4] ([fdo#109276] / [fdo#112080]) +2 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb4/igt@gem_ctx_isolation@vcs1-reset.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb3/igt@gem_ctx_isolation@vcs1-reset.html

  * igt@gem_ctx_isolation@vecs0-s3:
    - shard-apl:          [PASS][5] -> [DMESG-WARN][6] ([i915#180])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-apl1/igt@gem_ctx_isolation@vecs0-s3.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-apl1/igt@gem_ctx_isolation@vecs0-s3.html

  * igt@gem_eio@reset-stress:
    - shard-snb:          [PASS][7] -> [FAIL][8] ([i915#232])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-snb4/igt@gem_eio@reset-stress.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-snb1/igt@gem_eio@reset-stress.html

  * igt@gem_eio@suspend:
    - shard-tglb:         [PASS][9] -> [INCOMPLETE][10] ([i915#460])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-tglb8/igt@gem_eio@suspend.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb2/igt@gem_eio@suspend.html

  * igt@gem_exec_nop@basic-parallel:
    - shard-tglb:         [PASS][11] -> [INCOMPLETE][12] ([i915#435]) +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-tglb8/igt@gem_exec_nop@basic-parallel.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb7/igt@gem_exec_nop@basic-parallel.html

  * igt@gem_exec_schedule@preempt-queue-render:
    - shard-tglb:         [PASS][13] -> [INCOMPLETE][14] ([fdo#111606] / [fdo#111677])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-tglb4/igt@gem_exec_schedule@preempt-queue-render.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb6/igt@gem_exec_schedule@preempt-queue-render.html

  * igt@gem_exec_schedule@reorder-wide-bsd:
    - shard-iclb:         [PASS][15] -> [SKIP][16] ([fdo#112146]) +2 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb8/igt@gem_exec_schedule@reorder-wide-bsd.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb2/igt@gem_exec_schedule@reorder-wide-bsd.html

  * igt@gem_exec_store@pages-vcs1:
    - shard-iclb:         [PASS][17] -> [SKIP][18] ([fdo#112080]) +3 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb2/igt@gem_exec_store@pages-vcs1.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb8/igt@gem_exec_store@pages-vcs1.html

  * igt@gem_exec_suspend@basic-s0:
    - shard-tglb:         [PASS][19] -> [INCOMPLETE][20] ([i915#456])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-tglb6/igt@gem_exec_suspend@basic-s0.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb2/igt@gem_exec_suspend@basic-s0.html

  * igt@gem_persistent_relocs@forked-interruptible-thrash-inactive:
    - shard-hsw:          [PASS][21] -> [FAIL][22] ([i915#520])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-hsw7/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-hsw5/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html
    - shard-iclb:         [PASS][23] -> [TIMEOUT][24] ([i915#530])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb5/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb5/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-glk:          [PASS][25] -> [FAIL][26] ([i915#644])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-glk3/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-glk5/igt@gem_ppgtt@flink-and-close-vma-leak.html
    - shard-kbl:          [PASS][27] -> [FAIL][28] ([i915#644])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-kbl6/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-kbl3/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
    - shard-snb:          [PASS][29] -> [DMESG-WARN][30] ([fdo#111870])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-snb1/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html

  * igt@gem_userptr_blits@sync-unmap-after-close:
    - shard-hsw:          [PASS][31] -> [DMESG-WARN][32] ([fdo#111870]) +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-hsw8/igt@gem_userptr_blits@sync-unmap-after-close.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-hsw4/igt@gem_userptr_blits@sync-unmap-after-close.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-snb:          [PASS][33] -> [DMESG-WARN][34] ([i915#42]) +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-snb6/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-snb4/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-tglb:         [PASS][35] -> [INCOMPLETE][36] ([i915#456] / [i915#460])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-tglb8/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb5/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [PASS][37] -> [DMESG-WARN][38] ([i915#180]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-kbl4/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render:
    - shard-iclb:         [PASS][39] -> [FAIL][40] ([i915#49]) +2 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-kbl:          [PASS][41] -> [INCOMPLETE][42] ([fdo#103665] / [i915#435])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-kbl6/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-kbl4/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html

  * igt@kms_plane@pixel-format-pipe-c-planes:
    - shard-iclb:         [PASS][43] -> [INCOMPLETE][44] ([i915#140] / [i915#246])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb5/igt@kms_plane@pixel-format-pipe-c-planes.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb2/igt@kms_plane@pixel-format-pipe-c-planes.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [PASS][45] -> [SKIP][46] ([fdo#109276]) +3 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb4/igt@prime_vgem@fence-wait-bsd2.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb5/igt@prime_vgem@fence-wait-bsd2.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@vecs0-s3:
    - shard-tglb:         [INCOMPLETE][47] ([i915#456]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-tglb8/igt@gem_ctx_isolation@vecs0-s3.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb7/igt@gem_ctx_isolation@vecs0-s3.html

  * igt@gem_ctx_persistence@vcs1-mixed-process:
    - shard-iclb:         [SKIP][49] ([fdo#109276] / [fdo#112080]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb5/igt@gem_ctx_persistence@vcs1-mixed-process.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb2/igt@gem_ctx_persistence@vcs1-mixed-process.html

  * igt@gem_eio@in-flight-suspend:
    - shard-kbl:          [DMESG-WARN][51] ([i915#180]) -> [PASS][52] +3 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-kbl3/igt@gem_eio@in-flight-suspend.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-kbl3/igt@gem_eio@in-flight-suspend.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [SKIP][53] ([fdo#112146]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb2/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb8/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_exec_schedule@promotion-bsd1:
    - shard-iclb:         [SKIP][55] ([fdo#109276]) -> [PASS][56] +4 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb5/igt@gem_exec_schedule@promotion-bsd1.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb2/igt@gem_exec_schedule@promotion-bsd1.html

  * igt@gem_persistent_relocs@forked-thrashing:
    - shard-snb:          [FAIL][57] ([i915#520]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-snb5/igt@gem_persistent_relocs@forked-thrashing.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-snb1/igt@gem_persistent_relocs@forked-thrashing.html

  * igt@gem_softpin@noreloc-s3:
    - shard-apl:          [DMESG-WARN][59] ([i915#180]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-apl6/igt@gem_softpin@noreloc-s3.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-apl6/igt@gem_softpin@noreloc-s3.html

  * igt@gem_sync@basic-store-all:
    - shard-tglb:         [INCOMPLETE][61] ([i915#472]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-tglb6/igt@gem_sync@basic-store-all.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb8/igt@gem_sync@basic-store-all.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy:
    - shard-snb:          [DMESG-WARN][63] ([fdo#111870]) -> [PASS][64] +1 similar issue
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-snb5/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-snb7/igt@gem_userptr_blits@map-fixed-invalidate-busy.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-hsw:          [DMESG-WARN][65] ([fdo#111870]) -> [PASS][66] +5 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-hsw6/igt@gem_userptr_blits@sync-unmap-cycles.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-hsw8/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-apl:          [FAIL][67] ([i915#54]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-apl6/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-apl7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-hsw:          [INCOMPLETE][69] ([i915#61]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-hsw4/igt@kms_flip@flip-vs-suspend.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-hsw1/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render:
    - shard-iclb:         [FAIL][71] ([i915#49]) -> [PASS][72] +1 similar issue
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
    - shard-apl:          [FAIL][73] ([i915#49]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-apl7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-apl2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move.html
    - shard-glk:          [FAIL][75] ([i915#49]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-glk8/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-glk1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbc-indfb-scaledprimary:
    - shard-kbl:          [INCOMPLETE][77] ([fdo#103665] / [i915#634]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-indfb-scaledprimary.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-indfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
    - shard-tglb:         [FAIL][79] ([i915#49]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu:
    - shard-tglb:         [INCOMPLETE][81] ([i915#474]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-tglb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu:
    - shard-iclb:         [INCOMPLETE][83] ([i915#123] / [i915#140]) -> [PASS][84] +1 similar issue
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-suspend:
    - shard-tglb:         [INCOMPLETE][85] ([i915#456] / [i915#460]) -> [PASS][86] +1 similar issue
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-tglb4/igt@kms_frontbuffer_tracking@psr-suspend.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb6/igt@kms_frontbuffer_tracking@psr-suspend.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-d-planes:
    - shard-tglb:         [INCOMPLETE][87] ([i915#460]) -> [PASS][88]
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-tglb1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-d-planes.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-tglb6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-d-planes.html

  * {igt@perf_pmu@frequency-idle}:
    - shard-snb:          [FAIL][89] -> [PASS][90]
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-snb6/igt@perf_pmu@frequency-idle.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-snb7/igt@perf_pmu@frequency-idle.html

  * igt@perf_pmu@init-busy-vcs1:
    - shard-iclb:         [SKIP][91] ([fdo#112080]) -> [PASS][92] +2 similar issues
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7444/shard-iclb6/igt@perf_pmu@init-busy-vcs1.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/shard-iclb2/igt@perf_pmu@init-busy-vcs1.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#111606]: https://bugs.freedesktop.org/show_bug.cgi?id=111606
  [fdo#111677]: https://bugs.freedesktop.org/show_bug.cgi?id=111677
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [i915#123]: https://gitlab.freedesktop.org/drm/intel/issues/123
  [i915#140]: https://gitlab.freedesktop.org/drm/intel/issues/140
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#232]: https://gitlab.freedesktop.org/drm/intel/issues/232
  [i915#246]: https://gitlab.freedesktop.org/drm/intel/issues/246
  [i915#42]: https://gitlab.freedesktop.org/drm/intel/issues/42
  [i915#435]: https://gitlab.freedesktop.org/drm/intel/issues/435
  [i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
  [i915#460]: https://gitlab.freedesktop.org/drm/intel/issues/460
  [i915#472]: https://gitlab.freedesktop.org/drm/intel/issues/472
  [i915#474]: https://gitlab.freedesktop.org/drm/intel/issues/474
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#520]: https://gitlab.freedesktop.org/drm/intel/issues/520
  [i915#530]: https://gitlab.freedesktop.org/drm/intel/issues/530
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
  [i915#634]: https://gitlab.freedesktop.org/drm/intel/issues/634
  [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644


Participating hosts (11 -> 8)
------------------------------

  Missing    (3): pig-skl-6260u pig-glk-j5005 pig-hsw-4770r 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5318 -> IGTPW_3788
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_7444: b51db4a957209a27e9c5d0bbd3ce2408ccee6c2c @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3788: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/index.html
  IGT_5318: 26ae6584ac03ad862d82f986302275a68bcccb29 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3788/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error
  2019-11-29 20:44         ` Ville Syrjälä
@ 2019-12-04 17:50           ` Ville Syrjälä
  2019-12-04 17:57             ` Chris Wilson
  0 siblings, 1 reply; 10+ messages in thread
From: Ville Syrjälä @ 2019-12-04 17:50 UTC (permalink / raw)
  To: Juha-Pekka Heikkila; +Cc: igt-dev

On Fri, Nov 29, 2019 at 10:44:35PM +0200, Ville Syrjälä wrote:
> On Fri, Nov 29, 2019 at 10:38:16PM +0200, Juha-Pekka Heikkila wrote:
> > On 29.11.2019 22.08, Chris Wilson wrote:
> > > Quoting Juha-Pekka Heikkilä (2019-11-29 19:57:48)
> > >> On Fri, Nov 29, 2019 at 6:04 PM Chris Wilson <chris@chris-wilson.co.uk> wrote:
> > >>>
> > >>> Quoting Juha-Pekka Heikkila (2019-11-29 15:52:45)
> > >>>> Having crc running continuously cause this test sometime
> > >>>> fill crc buffer, fix this problem as well as do some generic
> > >>>> cleanups.
> > >>>>
> > >>>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > >>>> ---
> > >>>>   tests/kms_cursor_crc.c | 106 +++++++++++++++++++++++++------------------------
> > >>>>   1 file changed, 54 insertions(+), 52 deletions(-)
> > >>>>
> > >>>> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> > >>>> index 6c4c457..6982437 100644
> > >>>> --- a/tests/kms_cursor_crc.c
> > >>>> +++ b/tests/kms_cursor_crc.c
> > >>>> @@ -52,7 +52,6 @@ typedef struct {
> > >>>>          struct igt_fb fb;
> > >>>>          igt_output_t *output;
> > >>>>          enum pipe pipe;
> > >>>> -       igt_crc_t ref_crc;
> > >>>>          int left, right, top, bottom;
> > >>>>          int screenw, screenh;
> > >>>>          int refresh;
> > >>>> @@ -60,6 +59,9 @@ typedef struct {
> > >>>>          int cursor_max_w, cursor_max_h;
> > >>>>          igt_pipe_crc_t *pipe_crc;
> > >>>>          unsigned flags;
> > >>>> +       igt_plane_t *primary;
> > >>>> +       igt_plane_t *cursor;
> > >>>> +       cairo_surface_t *surface;
> > >>>>   } data_t;
> > >>>>
> > >>>>   #define TEST_DPMS (1<<0)
> > >>>> @@ -89,23 +91,15 @@ static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a)
> > >>>>
> > >>>>   static void cursor_enable(data_t *data)
> > >>>>   {
> > >>>> -       igt_output_t *output = data->output;
> > >>>> -       igt_plane_t *cursor =
> > >>>> -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> > >>>> -
> > >>>> -       igt_plane_set_fb(cursor, &data->fb);
> > >>>> -       igt_plane_set_size(cursor, data->curw, data->curh);
> > >>>> -       igt_fb_set_size(&data->fb, cursor, data->curw, data->curh);
> > >>>> +       igt_plane_set_fb(data->cursor, &data->fb);
> > >>>> +       igt_plane_set_size(data->cursor, data->curw, data->curh);
> > >>>> +       igt_fb_set_size(&data->fb, data->cursor, data->curw, data->curh);
> > >>>>   }
> > >>>>
> > >>>>   static void cursor_disable(data_t *data)
> > >>>>   {
> > >>>> -       igt_output_t *output = data->output;
> > >>>> -       igt_plane_t *cursor =
> > >>>> -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> > >>>> -
> > >>>> -       igt_plane_set_fb(cursor, NULL);
> > >>>> -       igt_plane_set_position(cursor, 0, 0);
> > >>>> +       igt_plane_set_fb(data->cursor, NULL);
> > >>>> +       igt_plane_set_position(data->cursor, 0, 0);
> > >>>>   }
> > >>>>
> > >>>>   static bool chv_cursor_broken(data_t *data, int x)
> > >>>> @@ -144,30 +138,40 @@ static bool cursor_visible(data_t *data, int x, int y)
> > >>>>          return true;
> > >>>>   }
> > >>>>
> > >>>> +static void restore_image(data_t *data)
> > >>>> +{
> > >>>> +       cairo_t *cr;
> > >>>> +
> > >>>> +       cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
> > >>>> +       cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
> > >>>> +       cairo_set_source_surface(cr, data->surface, 0, 0);
> > >>>> +       cairo_rectangle(cr, 0, 0, data->screenw, data->screenh);
> > >>>> +       cairo_fill(cr);
> > >>>> +       igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
> > >>>> +       gem_sync(data->drm_fd, data->primary_fb.gem_handle);
> > >>>
> > >>> This is a generic KMS test, gem_sync() is not supported.
> > >>
> > >> Idea here was to make certain memory copied to FB is really there. I
> > >> did ask from Mika for ideas and he suggested changing domain to cause
> > >> synchronization, in ioctl_wrappers.c at gem_set_domain() comments
> > >> suggested to use gem_sync() instead.
> > > 
> > > Then you are trying to paper over real bugs. Userspace calls dirtyfb to
> > > declare it has updated the fb, the kernel then has to take care of
> > > making sure it is coherent prior to the next flip, or worry more if it
> > > is already on the scanout.
> > 
> > I did talk with Ville about this and Ville said there's no guarantee in 
> > IGT for this synchronization.
> 
> We already have the gem_sync() in igt_fb for the cases where we
> convert via render/blitter engine. What we seem to be missing is
> the set_domain(.write_domain=0) for the cpu gtt path. The dirtyfb
> is only done for dumb fbs for whatever reason.

Hmm. Looks like set_domain(GTT, GTT) + set_domain(GTT, 0)
won't even flush the gtt write domain anymore? A change introduced
in commit ef74921bc679 ("drm/i915: Combine write_domain flushes
to a single function") if I'm reading the logs correctly.

So I guess we now need the dirtyfb (or sw_finish) ioctl. That
should end up doing the wc/chipset flushes we want.

Though now I'm left wondering how we would do this had we
used the cpu write domain. AFAICS the flush_if_display() thing
will always do the clflush asynchronously, but here we
want a sync flush since we need the display engine to see
the new data asap. I wonder if we have any frontbuffer
rendering tests that can actually hit this...

-- 
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error
  2019-12-04 17:50           ` Ville Syrjälä
@ 2019-12-04 17:57             ` Chris Wilson
  0 siblings, 0 replies; 10+ messages in thread
From: Chris Wilson @ 2019-12-04 17:57 UTC (permalink / raw)
  To: Juha-Pekka Heikkila, Ville Syrjälä; +Cc: igt-dev

Quoting Ville Syrjälä (2019-12-04 17:50:30)
> On Fri, Nov 29, 2019 at 10:44:35PM +0200, Ville Syrjälä wrote:
> > On Fri, Nov 29, 2019 at 10:38:16PM +0200, Juha-Pekka Heikkila wrote:
> > > On 29.11.2019 22.08, Chris Wilson wrote:
> > > > Quoting Juha-Pekka Heikkilä (2019-11-29 19:57:48)
> > > >> On Fri, Nov 29, 2019 at 6:04 PM Chris Wilson <chris@chris-wilson.co.uk> wrote:
> > > >>>
> > > >>> Quoting Juha-Pekka Heikkila (2019-11-29 15:52:45)
> > > >>>> Having crc running continuously cause this test sometime
> > > >>>> fill crc buffer, fix this problem as well as do some generic
> > > >>>> cleanups.
> > > >>>>
> > > >>>> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> > > >>>> ---
> > > >>>>   tests/kms_cursor_crc.c | 106 +++++++++++++++++++++++++------------------------
> > > >>>>   1 file changed, 54 insertions(+), 52 deletions(-)
> > > >>>>
> > > >>>> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> > > >>>> index 6c4c457..6982437 100644
> > > >>>> --- a/tests/kms_cursor_crc.c
> > > >>>> +++ b/tests/kms_cursor_crc.c
> > > >>>> @@ -52,7 +52,6 @@ typedef struct {
> > > >>>>          struct igt_fb fb;
> > > >>>>          igt_output_t *output;
> > > >>>>          enum pipe pipe;
> > > >>>> -       igt_crc_t ref_crc;
> > > >>>>          int left, right, top, bottom;
> > > >>>>          int screenw, screenh;
> > > >>>>          int refresh;
> > > >>>> @@ -60,6 +59,9 @@ typedef struct {
> > > >>>>          int cursor_max_w, cursor_max_h;
> > > >>>>          igt_pipe_crc_t *pipe_crc;
> > > >>>>          unsigned flags;
> > > >>>> +       igt_plane_t *primary;
> > > >>>> +       igt_plane_t *cursor;
> > > >>>> +       cairo_surface_t *surface;
> > > >>>>   } data_t;
> > > >>>>
> > > >>>>   #define TEST_DPMS (1<<0)
> > > >>>> @@ -89,23 +91,15 @@ static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a)
> > > >>>>
> > > >>>>   static void cursor_enable(data_t *data)
> > > >>>>   {
> > > >>>> -       igt_output_t *output = data->output;
> > > >>>> -       igt_plane_t *cursor =
> > > >>>> -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> > > >>>> -
> > > >>>> -       igt_plane_set_fb(cursor, &data->fb);
> > > >>>> -       igt_plane_set_size(cursor, data->curw, data->curh);
> > > >>>> -       igt_fb_set_size(&data->fb, cursor, data->curw, data->curh);
> > > >>>> +       igt_plane_set_fb(data->cursor, &data->fb);
> > > >>>> +       igt_plane_set_size(data->cursor, data->curw, data->curh);
> > > >>>> +       igt_fb_set_size(&data->fb, data->cursor, data->curw, data->curh);
> > > >>>>   }
> > > >>>>
> > > >>>>   static void cursor_disable(data_t *data)
> > > >>>>   {
> > > >>>> -       igt_output_t *output = data->output;
> > > >>>> -       igt_plane_t *cursor =
> > > >>>> -               igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
> > > >>>> -
> > > >>>> -       igt_plane_set_fb(cursor, NULL);
> > > >>>> -       igt_plane_set_position(cursor, 0, 0);
> > > >>>> +       igt_plane_set_fb(data->cursor, NULL);
> > > >>>> +       igt_plane_set_position(data->cursor, 0, 0);
> > > >>>>   }
> > > >>>>
> > > >>>>   static bool chv_cursor_broken(data_t *data, int x)
> > > >>>> @@ -144,30 +138,40 @@ static bool cursor_visible(data_t *data, int x, int y)
> > > >>>>          return true;
> > > >>>>   }
> > > >>>>
> > > >>>> +static void restore_image(data_t *data)
> > > >>>> +{
> > > >>>> +       cairo_t *cr;
> > > >>>> +
> > > >>>> +       cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
> > > >>>> +       cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
> > > >>>> +       cairo_set_source_surface(cr, data->surface, 0, 0);
> > > >>>> +       cairo_rectangle(cr, 0, 0, data->screenw, data->screenh);
> > > >>>> +       cairo_fill(cr);
> > > >>>> +       igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
> > > >>>> +       gem_sync(data->drm_fd, data->primary_fb.gem_handle);
> > > >>>
> > > >>> This is a generic KMS test, gem_sync() is not supported.
> > > >>
> > > >> Idea here was to make certain memory copied to FB is really there. I
> > > >> did ask from Mika for ideas and he suggested changing domain to cause
> > > >> synchronization, in ioctl_wrappers.c at gem_set_domain() comments
> > > >> suggested to use gem_sync() instead.
> > > > 
> > > > Then you are trying to paper over real bugs. Userspace calls dirtyfb to
> > > > declare it has updated the fb, the kernel then has to take care of
> > > > making sure it is coherent prior to the next flip, or worry more if it
> > > > is already on the scanout.
> > > 
> > > I did talk with Ville about this and Ville said there's no guarantee in 
> > > IGT for this synchronization.
> > 
> > We already have the gem_sync() in igt_fb for the cases where we
> > convert via render/blitter engine. What we seem to be missing is
> > the set_domain(.write_domain=0) for the cpu gtt path. The dirtyfb
> > is only done for dumb fbs for whatever reason.
> 
> Hmm. Looks like set_domain(GTT, GTT) + set_domain(GTT, 0)
> won't even flush the gtt write domain anymore?

Not anymore, it should never have flushed iirc.

The logic was only every about flushing incompatible domains, and would
not have flagged the second as an incompatible request with the current
write_domain.

> A change introduced
> in commit ef74921bc679 ("drm/i915: Combine write_domain flushes
> to a single function") if I'm reading the logs correctly.
> 
> So I guess we now need the dirtyfb (or sw_finish) ioctl. That
> should end up doing the wc/chipset flushes we want.
> 
> Though now I'm left wondering how we would do this had we
> used the cpu write domain. AFAICS the flush_if_display() thing
> will always do the clflush asynchronously, but here we
> want a sync flush since we need the display engine to see
> the new data asap. I wonder if we have any frontbuffer
> rendering tests that can actually hit this...

clflush on scanout itself is unserialised with the HW, so whether it is
done immediately or in a worker does not seem material. You can request
a wait again with set-domain, or gem_wait to block on the clflush and
all other rendering. I suppose.
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-12-04 17:57 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-29 15:52 [igt-dev] [PATCH i-g-t] tests/kms_cursor_crc: Fix user space read too slow error Juha-Pekka Heikkila
2019-11-29 16:03 ` Chris Wilson
2019-11-29 19:57   ` Juha-Pekka Heikkilä
2019-11-29 20:08     ` Chris Wilson
2019-11-29 20:38       ` Juha-Pekka Heikkila
2019-11-29 20:44         ` Ville Syrjälä
2019-12-04 17:50           ` Ville Syrjälä
2019-12-04 17:57             ` Chris Wilson
2019-11-29 17:30 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2019-11-30 15:34 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.