All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_cursor_crc: Change crc collection
@ 2019-01-10 12:51 Mika Kahola
  2019-01-10 12:51 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_cursor_crc: Change the way we collect crc's Mika Kahola
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Mika Kahola @ 2019-01-10 12:51 UTC (permalink / raw)
  To: igt-dev; +Cc: stanislav.lisovskiy

On ICL platform we do get a lot of crc mismatch errors. This patch
series changes the way we collect these crc's and we get rid of
vblank waits that are unnecessary with the proposed way to collect crcs.

v2: Stop collecting crc's after test completion

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103232

Mika Kahola (2):
  tests/kms_cursor_crc: Change the way we collect crc's
  tests/kms_cursor_crc: Remove unnecessary waits for vblank

 tests/kms_cursor_crc.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

-- 
2.17.1

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

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

* [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_cursor_crc: Change the way we collect crc's
  2019-01-10 12:51 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_cursor_crc: Change crc collection Mika Kahola
@ 2019-01-10 12:51 ` Mika Kahola
  2019-01-22  9:20   ` Daniel Vetter
  2019-01-10 12:51 ` [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_cursor_crc: Remove unnecessary waits for vblank Mika Kahola
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 12+ messages in thread
From: Mika Kahola @ 2019-01-10 12:51 UTC (permalink / raw)
  To: igt-dev; +Cc: stanislav.lisovskiy

Instead of collecting crc's in one shot i.e. opening crc for reading,
collecting crc and closing the file, let's start crc collection and keep
collecting crc's until we are done. This fixes an issue that we
occasionally read errornous crc, at least with ICL.

The bug can be replicated for example with

kms_cursor_crc --run-subtest cursor-64x64-onscreen

Starting subtest: cursor-64x64-onscreen
Beginning cursor-64x64-onscreen on pipe A, connector eDP-1
.(kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion failure function igt_assert_crc_equal, file igt_debugfs.c:419:
(kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion: !mismatch
Stack trace:
  #0 /home/testrunner/igt/lib/igt_core.c:1472 __igt_fail_assert()
  #1 /home/testrunner/igt/lib/igt_debugfs.c:419 igt_assert_crc_equal()
  #2 /home/testrunner/igt/tests/kms_cursor_crc.c:213 do_single_test()
  #3 /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
  #4 /home/testrunner/igt/tests/kms_cursor_crc.c:266 test_crc_onscreen()
  #5 /home/testrunner/igt/tests/kms_cursor_crc.c:433 run_test.constprop.8()
  #6 /home/testrunner/igt/tests/kms_cursor_crc.c:594 run_test_generic.constprop.6()
  #7 /home/testrunner/igt/tests/kms_cursor_crc.c:690 __real_main656()
  #8 /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
  #9 ../csu/libc-start.c:344 __libc_start_main()
  #10 [_start+0x2a]
Subtest cursor-64x64-onscreen failed.
**** DEBUG ****
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.2 "COLOR_ENCODING" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.2 "COLOR_RANGE" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe B, plane 3
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B, plane 3, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.3 "rotation" to 0x1/1
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.3 "COLOR_ENCODING" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.3 "COLOR_RANGE" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe B, plane 4
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B, plane 4, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.4 "rotation" to 0x1/1
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.4 "COLOR_ENCODING" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.4 "COLOR_RANGE" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe B, plane 5
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B, plane 5, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.5 "rotation" to 0x1/1
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.5 "COLOR_ENCODING" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.5 "COLOR_RANGE" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe B, plane 6
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B, plane 6, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.6 "rotation" to 0x1/1
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.6 "COLOR_ENCODING" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.6 "COLOR_RANGE" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe B, plane 7
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe B, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe B, (0, 0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCrtc pipe C, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 1
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 1, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.1 "rotation" to 0x1/1
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.1 "COLOR_ENCODING" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.1 "COLOR_RANGE" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 2
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 2, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.2 "rotation" to 0x1/1
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.2 "COLOR_ENCODING" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.2 "COLOR_RANGE" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 3
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 3, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.3 "rotation" to 0x1/1
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.3 "COLOR_ENCODING" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.3 "COLOR_RANGE" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 4
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 4, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.4 "rotation" to 0x1/1
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.4 "COLOR_ENCODING" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.4 "COLOR_RANGE" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 5
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 5, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.5 "rotation" to 0x1/1
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.5 "COLOR_ENCODING" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.5 "COLOR_RANGE" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 6
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 6, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.6 "rotation" to 0x1/1
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.6 "COLOR_ENCODING" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.6 "COLOR_RANGE" to 0x0/0
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 7
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe C, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe C, (0, 0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: }
(kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs directory '/sys/kernel/debug/dri/0'
(kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs directory '/sys/kernel/debug/dri/0'
(kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed: plane_idx >= 0 && plane_idx < pipe->n_planes
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_fb(0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size (0x0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_position(0,0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_size(0x0)
(kms_cursor_crc:19282) INFO: Beginning cursor-64x64-onscreen on pipe A, connector eDP-1
(kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed: cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
(kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed: plane_idx >= 0 && plane_idx < pipe->n_planes
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_fb(227)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size (64x65)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_position(0,0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_size(64x65)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size (64x64)
(kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed: plane_idx >= 0 && plane_idx < pipe->n_planes
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_position(0,0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe A, fb 1 64x64
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe A, (0, 0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: }
(kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed: plane_idx >= 0 && plane_idx < pipe->n_planes
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_fb(0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size (0x0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_position(0,0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_size(0x0)
(kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
(kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe A, disabling
(kms_cursor_crc:19282) igt-kms-DEBUG: display: }
(kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed: cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
(kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
(kms_cursor_crc:19282) igt-kms-DEBUG: display: }
(kms_cursor_crc:19282) igt-debugfs-DEBUG: CRC mismatch at index 0: 0x2e212a16 != 0x9245e25c
(kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion failure function igt_assert_crc_equal, file igt_debugfs.c:419:
(kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion: !mismatch
(kms_cursor_crc:19282) igt-core-INFO: Stack trace:
(kms_cursor_crc:19282) igt-core-INFO:   #0 /home/testrunner/igt/lib/igt_core.c:1472 __igt_fail_assert()
(kms_cursor_crc:19282) igt-core-INFO:   #1 /home/testrunner/igt/lib/igt_debugfs.c:419 igt_assert_crc_equal()
(kms_cursor_crc:19282) igt-core-INFO:   #2 /home/testrunner/igt/tests/kms_cursor_crc.c:213 do_single_test()
(kms_cursor_crc:19282) igt-core-INFO:   #3 /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
(kms_cursor_crc:19282) igt-core-INFO:   #4 /home/testrunner/igt/tests/kms_cursor_crc.c:266 test_crc_onscreen()
(kms_cursor_crc:19282) igt-core-INFO:   #5 /home/testrunner/igt/tests/kms_cursor_crc.c:433 run_test.constprop.8()
(kms_cursor_crc:19282) igt-core-INFO:   #6 /home/testrunner/igt/tests/kms_cursor_crc.c:594 run_test_generic.constprop.6()
(kms_cursor_crc:19282) igt-core-INFO:   #7 /home/testrunner/igt/tests/kms_cursor_crc.c:690 __real_main656()
(kms_cursor_crc:19282) igt-core-INFO:   #8 /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
(kms_cursor_crc:19282) igt-core-INFO:   #9 ../csu/libc-start.c:344 __libc_start_main()
(kms_cursor_crc:19282) igt-core-INFO:   #10 [_start+0x2a]
****  END  ****

v2: Stop collecting crc's after test completion

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103232
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_cursor_crc.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index 1514e7f2..83dbe0b7 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -172,7 +172,8 @@ static void do_single_test(data_t *data, int x, int y)
 	igt_display_commit(display);
 
 	igt_wait_for_vblank(data->drm_fd, data->pipe);
-	igt_pipe_crc_collect_crc(pipe_crc, &crc);
+	igt_pipe_crc_start(pipe_crc);
+	igt_pipe_crc_get_single(pipe_crc, &crc);
 
 	if (data->flags & (TEST_DPMS | TEST_SUSPEND)) {
 		igt_crc_t crc_after;
@@ -191,7 +192,7 @@ static void do_single_test(data_t *data, int x, int y)
 			igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
 						      SUSPEND_TEST_NONE);
 
-		igt_pipe_crc_collect_crc(pipe_crc, &crc_after);
+		igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc_after);
 		igt_assert_crc_equal(&crc, &crc_after);
 	}
 
@@ -205,8 +206,9 @@ static void do_single_test(data_t *data, int x, int y)
 	igt_display_commit(display);
 
 	igt_wait_for_vblank(data->drm_fd, data->pipe);
-	igt_pipe_crc_collect_crc(pipe_crc, &ref_crc);
+	igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &ref_crc);
 	igt_assert_crc_equal(&crc, &ref_crc);
+	igt_pipe_crc_stop(pipe_crc);
 
 	/* Clear screen afterwards */
 	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
-- 
2.17.1

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

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

* [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_cursor_crc: Remove unnecessary waits for vblank
  2019-01-10 12:51 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_cursor_crc: Change crc collection Mika Kahola
  2019-01-10 12:51 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_cursor_crc: Change the way we collect crc's Mika Kahola
@ 2019-01-10 12:51 ` Mika Kahola
  2019-01-10 13:22 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Change crc collection (rev3) Patchwork
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Mika Kahola @ 2019-01-10 12:51 UTC (permalink / raw)
  To: igt-dev; +Cc: stanislav.lisovskiy

We don't need to wait for vblanks anymore as kernel atomically takes
care of these.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103232
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_cursor_crc.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index 83dbe0b7..4f2f779d 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -171,7 +171,6 @@ static void do_single_test(data_t *data, int x, int y)
 
 	igt_display_commit(display);
 
-	igt_wait_for_vblank(data->drm_fd, data->pipe);
 	igt_pipe_crc_start(pipe_crc);
 	igt_pipe_crc_get_single(pipe_crc, &crc);
 
@@ -205,7 +204,6 @@ static void do_single_test(data_t *data, int x, int y)
 	igt_put_cairo_ctx(data->drm_fd, &data->primary_fb, cr);
 	igt_display_commit(display);
 
-	igt_wait_for_vblank(data->drm_fd, data->pipe);
 	igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &ref_crc);
 	igt_assert_crc_equal(&crc, &ref_crc);
 	igt_pipe_crc_stop(pipe_crc);
-- 
2.17.1

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Change crc collection (rev3)
  2019-01-10 12:51 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_cursor_crc: Change crc collection Mika Kahola
  2019-01-10 12:51 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_cursor_crc: Change the way we collect crc's Mika Kahola
  2019-01-10 12:51 ` [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_cursor_crc: Remove unnecessary waits for vblank Mika Kahola
@ 2019-01-10 13:22 ` Patchwork
  2019-01-10 18:24 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2019-01-10 13:22 UTC (permalink / raw)
  To: Mika Kahola; +Cc: igt-dev

== Series Details ==

Series: tests/kms_cursor_crc: Change crc collection (rev3)
URL   : https://patchwork.freedesktop.org/series/54944/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5392 -> IGTPW_2213
====================================================

Summary
-------

  **WARNING**

  Minor unknown changes coming with IGTPW_2213 need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2213, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/54944/revisions/3/

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

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

### IGT changes ###

#### Warnings ####

  * igt@pm_rpm@basic-pci-d3-state:
    - fi-bsw-kefka:       {SKIP} -> PASS

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

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@cs-compute:
    - fi-kbl-8809g:       NOTRUN -> FAIL [fdo#108094]

  * igt@amdgpu/amd_prime@amd-to-i915:
    - fi-kbl-8809g:       NOTRUN -> FAIL [fdo#107341]

  * igt@gem_exec_suspend@basic-s3:
    - fi-blb-e6850:       PASS -> INCOMPLETE [fdo#107718]

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       PASS -> FAIL [fdo#108767]

  * igt@kms_frontbuffer_tracking@basic:
    - fi-hsw-peppy:       PASS -> DMESG-WARN [fdo#102614]

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - fi-byt-clapper:     PASS -> FAIL [fdo#103191] / [fdo#107362]

  
#### Possible fixes ####

  * igt@amdgpu/amd_basic@userptr:
    - fi-kbl-8809g:       DMESG-WARN [fdo#108965] -> PASS

  * igt@i915_selftest@live_hangcheck:
    - fi-bwr-2160:        DMESG-FAIL [fdo#108735] -> PASS
    - fi-apl-guc:         DMESG-FAIL [fdo#109228] -> PASS

  * igt@kms_flip@basic-flip-vs-modeset:
    - fi-skl-6700hq:      DMESG-WARN [fdo#105998] -> PASS

  * igt@pm_rpm@basic-rte:
    - fi-bsw-kefka:       FAIL [fdo#108800] -> PASS

  
  [fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#105998]: https://bugs.freedesktop.org/show_bug.cgi?id=105998
  [fdo#107341]: https://bugs.freedesktop.org/show_bug.cgi?id=107341
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108094]: https://bugs.freedesktop.org/show_bug.cgi?id=108094
  [fdo#108735]: https://bugs.freedesktop.org/show_bug.cgi?id=108735
  [fdo#108767]: https://bugs.freedesktop.org/show_bug.cgi?id=108767
  [fdo#108800]: https://bugs.freedesktop.org/show_bug.cgi?id=108800
  [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965
  [fdo#109228]: https://bugs.freedesktop.org/show_bug.cgi?id=109228


Participating hosts (48 -> 40)
------------------------------

  Additional (2): fi-ivb-3520m fi-kbl-r 
  Missing    (10): fi-kbl-soraka fi-ilk-m540 fi-byt-j1900 fi-byt-squawks fi-icl-u2 fi-bsw-cyan fi-icl-u3 fi-pnv-d510 fi-icl-y fi-bdw-samus 


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

    * IGT: IGT_4758 -> IGTPW_2213

  CI_DRM_5392: 26c6d6ecf034acdd55a790e3b0e613b6ac695a00 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2213: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2213/
  IGT_4758: f01796214bbde31e37b0593e547ad9436fdd02ba @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✗ Fi.CI.IGT: failure for tests/kms_cursor_crc: Change crc collection (rev3)
  2019-01-10 12:51 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_cursor_crc: Change crc collection Mika Kahola
                   ` (2 preceding siblings ...)
  2019-01-10 13:22 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Change crc collection (rev3) Patchwork
@ 2019-01-10 18:24 ` Patchwork
  2019-01-11 10:02 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Change crc collection (rev4) Patchwork
  2019-01-11 16:02 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  5 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2019-01-10 18:24 UTC (permalink / raw)
  To: Mika Kahola; +Cc: igt-dev

== Series Details ==

Series: tests/kms_cursor_crc: Change crc collection (rev3)
URL   : https://patchwork.freedesktop.org/series/54944/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5392_full -> IGTPW_2213_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2213_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2213_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/54944/revisions/3/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_crc@cursor-64x64-suspend:
    - shard-hsw:          PASS -> DMESG-WARN

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_schedule@pi-ringfull-bsd2:
    - shard-kbl:          NOTRUN -> FAIL [fdo#103158]

  * igt@i915_suspend@shrink:
    - shard-snb:          NOTRUN -> DMESG-WARN [fdo#109244]

  * igt@kms_busy@extended-modeset-hang-newfb-render-b:
    - shard-kbl:          NOTRUN -> DMESG-WARN [fdo#107956]

  * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-a:
    - shard-kbl:          PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_color@pipe-b-degamma:
    - shard-apl:          PASS -> FAIL [fdo#104782] +1

  * igt@kms_cursor_crc@cursor-128x128-onscreen:
    - shard-snb:          PASS -> FAIL [fdo#103232] +10

  * igt@kms_cursor_crc@cursor-256x256-suspend:
    - shard-snb:          PASS -> DMESG-FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-64x64-onscreen:
    - shard-hsw:          PASS -> FAIL [fdo#103232] +21

  * igt@kms_cursor_crc@cursor-64x64-sliding:
    - shard-snb:          NOTRUN -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-size-change:
    - shard-apl:          PASS -> FAIL [fdo#103232]
    - shard-kbl:          PASS -> FAIL [fdo#103232]

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-apl:          PASS -> FAIL [fdo#108948]

  * igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
    - shard-kbl:          NOTRUN -> FAIL [fdo#108145] / [fdo#108590]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
    - shard-glk:          PASS -> FAIL [fdo#103166] +1

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-yf:
    - shard-kbl:          PASS -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
    - shard-apl:          PASS -> FAIL [fdo#103166] +3

  
#### Possible fixes ####

  * igt@drm_read@invalid-buffer:
    - shard-apl:          INCOMPLETE [fdo#103927] -> PASS

  * igt@gem_exec_reloc@basic-write-wc-active:
    - shard-snb:          INCOMPLETE [fdo#105411] -> PASS

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-apl:          DMESG-WARN [fdo#108566] -> PASS

  * igt@i915_suspend@fence-restore-untiled:
    - shard-snb:          FAIL [fdo#103375] -> PASS

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-apl:          FAIL [fdo#106510] / [fdo#108145] -> PASS

  * igt@kms_color@pipe-a-ctm-max:
    - shard-apl:          FAIL [fdo#108147] -> PASS

  * igt@kms_cursor_crc@cursor-128x128-onscreen:
    - shard-kbl:          FAIL [fdo#103232] -> PASS +1

  * igt@kms_cursor_crc@cursor-64x21-onscreen:
    - shard-glk:          FAIL [fdo#103232] -> PASS +2

  * igt@kms_cursor_crc@cursor-64x21-random:
    - shard-apl:          FAIL [fdo#103232] -> PASS +2

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
    - shard-hsw:          FAIL [fdo#105767] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render:
    - shard-apl:          FAIL [fdo#103167] -> PASS +2

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-cpu:
    - shard-glk:          FAIL [fdo#103167] -> PASS +3

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-none:
    - shard-kbl:          FAIL [fdo#103166] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
    - shard-apl:          FAIL [fdo#103166] -> PASS +2

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
    - shard-glk:          FAIL [fdo#103166] -> PASS +3

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-glk:          DMESG-FAIL [fdo#105763] / [fdo#106538] -> PASS

  * igt@kms_setmode@basic:
    - shard-hsw:          FAIL [fdo#99912] -> PASS

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
    - shard-kbl:          INCOMPLETE [fdo#103665] -> PASS

  
#### Warnings ####

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-kbl:          DMESG-WARN [fdo#105604] -> DMESG-FAIL [fdo#108950]

  
  [fdo#103158]: https://bugs.freedesktop.org/show_bug.cgi?id=103158
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105604]: https://bugs.freedesktop.org/show_bug.cgi?id=105604
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767
  [fdo#106510]: https://bugs.freedesktop.org/show_bug.cgi?id=106510
  [fdo#106538]: https://bugs.freedesktop.org/show_bug.cgi?id=106538
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108147]: https://bugs.freedesktop.org/show_bug.cgi?id=108147
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108590]: https://bugs.freedesktop.org/show_bug.cgi?id=108590
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950
  [fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (6 -> 5)
------------------------------

  Missing    (1): shard-skl 


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

    * IGT: IGT_4758 -> IGTPW_2213
    * Piglit: piglit_4509 -> None

  CI_DRM_5392: 26c6d6ecf034acdd55a790e3b0e613b6ac695a00 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2213: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2213/
  IGT_4758: f01796214bbde31e37b0593e547ad9436fdd02ba @ 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_2213/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Change crc collection (rev4)
  2019-01-10 12:51 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_cursor_crc: Change crc collection Mika Kahola
                   ` (3 preceding siblings ...)
  2019-01-10 18:24 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2019-01-11 10:02 ` Patchwork
  2019-01-11 16:02 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  5 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2019-01-11 10:02 UTC (permalink / raw)
  To: Mika Kahola; +Cc: igt-dev

== Series Details ==

Series: tests/kms_cursor_crc: Change crc collection (rev4)
URL   : https://patchwork.freedesktop.org/series/54944/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5402 -> IGTPW_2219
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/54944/revisions/4/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live_hangcheck:
    - fi-bwr-2160:        PASS -> DMESG-FAIL [fdo#108735]

  * igt@kms_frontbuffer_tracking@basic:
    - fi-byt-clapper:     PASS -> FAIL [fdo#103167]

  * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a:
    - fi-byt-clapper:     PASS -> FAIL [fdo#107362]

  
#### Possible fixes ####

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       FAIL [fdo#108767] -> PASS

  * igt@kms_pipe_crc_basic@hang-read-crc-pipe-b:
    - fi-byt-clapper:     FAIL [fdo#103191] / [fdo#107362] -> PASS

  
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#108735]: https://bugs.freedesktop.org/show_bug.cgi?id=108735
  [fdo#108767]: https://bugs.freedesktop.org/show_bug.cgi?id=108767


Participating hosts (42 -> 43)
------------------------------

  Additional (6): fi-hsw-peppy fi-apl-guc fi-snb-2520m fi-glk-j4005 fi-gdg-551 fi-pnv-d510 
  Missing    (5): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-icl-y 


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

    * IGT: IGT_4759 -> IGTPW_2219

  CI_DRM_5402: bfde6b780f9b2a5ee0dc3535917c42d1e5234a3f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2219: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2219/
  IGT_4759: 478452fece3997dfacaa4d6babe6b8bf6fef784f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✗ Fi.CI.IGT: failure for tests/kms_cursor_crc: Change crc collection (rev4)
  2019-01-10 12:51 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_cursor_crc: Change crc collection Mika Kahola
                   ` (4 preceding siblings ...)
  2019-01-11 10:02 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Change crc collection (rev4) Patchwork
@ 2019-01-11 16:02 ` Patchwork
  5 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2019-01-11 16:02 UTC (permalink / raw)
  To: Mika Kahola; +Cc: igt-dev

== Series Details ==

Series: tests/kms_cursor_crc: Change crc collection (rev4)
URL   : https://patchwork.freedesktop.org/series/54944/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_5402_full -> IGTPW_2219_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_2219_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_2219_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/54944/revisions/4/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_crc@cursor-64x64-suspend:
    - shard-snb:          PASS -> DMESG-WARN

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_available_modes_crc@available_mode_test_crc:
    - shard-apl:          PASS -> FAIL [fdo#106641]

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
    - shard-hsw:          PASS -> DMESG-WARN [fdo#107956]

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-glk:          PASS -> FAIL [fdo#108145]

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
    - shard-glk:          NOTRUN -> FAIL [fdo#108145] +1

  * igt@kms_color@pipe-a-legacy-gamma:
    - shard-kbl:          PASS -> FAIL [fdo#104782] / [fdo#108145]
    - shard-apl:          PASS -> FAIL [fdo#104782] / [fdo#108145]

  * igt@kms_cursor_crc@cursor-128x128-dpms:
    - shard-snb:          NOTRUN -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-128x128-onscreen:
    - shard-snb:          PASS -> FAIL [fdo#103232] +11

  * igt@kms_cursor_crc@cursor-64x64-onscreen:
    - shard-hsw:          PASS -> FAIL [fdo#103232] +20

  * igt@kms_flip@modeset-vs-vblank-race:
    - shard-glk:          PASS -> FAIL [fdo#103060]

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-kbl:          PASS -> FAIL [fdo#103167]
    - shard-apl:          PASS -> FAIL [fdo#103167]

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-onoff:
    - shard-glk:          PASS -> FAIL [fdo#103167] +5

  * igt@kms_plane@pixel-format-pipe-c-planes:
    - shard-apl:          PASS -> FAIL [fdo#103166] +6

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-none:
    - shard-glk:          PASS -> FAIL [fdo#103166] +6

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-glk:          PASS -> DMESG-FAIL [fdo#105763] / [fdo#106538]

  * igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend:
    - shard-kbl:          PASS -> INCOMPLETE [fdo#103665]

  * igt@perf_pmu@rc6-runtime-pm-long:
    - shard-apl:          PASS -> FAIL [fdo#105010]
    - shard-kbl:          PASS -> FAIL [fdo#105010]

  
#### Possible fixes ####

  * igt@gem_flink_basic@bad-flink:
    - shard-snb:          INCOMPLETE [fdo#105411] -> PASS

  * igt@kms_color@pipe-b-degamma:
    - shard-kbl:          FAIL [fdo#104782] -> PASS
    - shard-apl:          FAIL [fdo#104782] -> PASS

  * igt@kms_cursor_crc@cursor-128x128-random:
    - shard-kbl:          FAIL [fdo#103232] -> PASS
    - shard-glk:          FAIL [fdo#103232] -> PASS

  * igt@kms_cursor_crc@cursor-64x21-random:
    - shard-apl:          FAIL [fdo#103232] -> PASS +2

  * igt@kms_cursor_crc@cursor-64x64-suspend:
    - shard-apl:          FAIL [fdo#103191] / [fdo#103232] -> PASS

  * igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
    - shard-hsw:          FAIL [fdo#105767] -> PASS

  * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
    - shard-glk:          FAIL [fdo#105454] / [fdo#106509] -> PASS

  * igt@kms_flip@2x-flip-vs-modeset-vs-hang-interruptible:
    - shard-glk:          INCOMPLETE [fdo#103359] / [k.org#198133] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff:
    - shard-glk:          FAIL [fdo#103167] -> PASS +1
    - shard-kbl:          FAIL [fdo#103167] -> PASS +1

  * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
    - shard-glk:          FAIL [fdo#108145] -> PASS +3

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-none:
    - shard-glk:          FAIL [fdo#103166] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-none:
    - shard-apl:          FAIL [fdo#103166] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
    - shard-kbl:          FAIL [fdo#103166] -> PASS

  * igt@kms_setmode@basic:
    - shard-kbl:          FAIL [fdo#99912] -> PASS

  * igt@pm_rps@waitboost:
    - shard-apl:          FAIL [fdo#102250] -> PASS

  
#### Warnings ####

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-kbl:          DMESG-WARN [fdo#105604] -> DMESG-FAIL [fdo#108950]

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

  [fdo#102250]: https://bugs.freedesktop.org/show_bug.cgi?id=102250
  [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#105454]: https://bugs.freedesktop.org/show_bug.cgi?id=105454
  [fdo#105604]: https://bugs.freedesktop.org/show_bug.cgi?id=105604
  [fdo#105763]: https://bugs.freedesktop.org/show_bug.cgi?id=105763
  [fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767
  [fdo#106509]: https://bugs.freedesktop.org/show_bug.cgi?id=106509
  [fdo#106538]: https://bugs.freedesktop.org/show_bug.cgi?id=106538
  [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108950]: https://bugs.freedesktop.org/show_bug.cgi?id=108950
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (6 -> 5)
------------------------------

  Missing    (1): shard-skl 


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

    * IGT: IGT_4759 -> IGTPW_2219
    * Piglit: piglit_4509 -> None

  CI_DRM_5402: bfde6b780f9b2a5ee0dc3535917c42d1e5234a3f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2219: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2219/
  IGT_4759: 478452fece3997dfacaa4d6babe6b8bf6fef784f @ 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_2219/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_cursor_crc: Change the way we collect crc's
  2019-01-10 12:51 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_cursor_crc: Change the way we collect crc's Mika Kahola
@ 2019-01-22  9:20   ` Daniel Vetter
  2019-01-22 10:45     ` Kahola, Mika
  0 siblings, 1 reply; 12+ messages in thread
From: Daniel Vetter @ 2019-01-22  9:20 UTC (permalink / raw)
  To: Mika Kahola; +Cc: IGT development, StanLis

On Thu, Jan 10, 2019 at 1:50 PM Mika Kahola <mika.kahola@intel.com> wrote:
>
> Instead of collecting crc's in one shot i.e. opening crc for reading,
> collecting crc and closing the file, let's start crc collection and keep
> collecting crc's until we are done. This fixes an issue that we
> occasionally read errornous crc, at least with ICL.
>
> The bug can be replicated for example with
>
> kms_cursor_crc --run-subtest cursor-64x64-onscreen
>
> Starting subtest: cursor-64x64-onscreen
> Beginning cursor-64x64-onscreen on pipe A, connector eDP-1
> .(kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion failure function igt_assert_crc_equal, file igt_debugfs.c:419:
> (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion: !mismatch
> Stack trace:
>   #0 /home/testrunner/igt/lib/igt_core.c:1472 __igt_fail_assert()
>   #1 /home/testrunner/igt/lib/igt_debugfs.c:419 igt_assert_crc_equal()
>   #2 /home/testrunner/igt/tests/kms_cursor_crc.c:213 do_single_test()
>   #3 /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
>   #4 /home/testrunner/igt/tests/kms_cursor_crc.c:266 test_crc_onscreen()
>   #5 /home/testrunner/igt/tests/kms_cursor_crc.c:433 run_test.constprop.8()
>   #6 /home/testrunner/igt/tests/kms_cursor_crc.c:594 run_test_generic.constprop.6()
>   #7 /home/testrunner/igt/tests/kms_cursor_crc.c:690 __real_main656()
>   #8 /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
>   #9 ../csu/libc-start.c:344 __libc_start_main()
>   #10 [_start+0x2a]
> Subtest cursor-64x64-onscreen failed.
> **** DEBUG ****
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.2 "COLOR_ENCODING" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.2 "COLOR_RANGE" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe B, plane 3
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B, plane 3, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.3 "rotation" to 0x1/1
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.3 "COLOR_ENCODING" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.3 "COLOR_RANGE" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe B, plane 4
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B, plane 4, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.4 "rotation" to 0x1/1
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.4 "COLOR_ENCODING" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.4 "COLOR_RANGE" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe B, plane 5
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B, plane 5, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.5 "rotation" to 0x1/1
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.5 "COLOR_ENCODING" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.5 "COLOR_RANGE" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe B, plane 6
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B, plane 6, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.6 "rotation" to 0x1/1
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.6 "COLOR_ENCODING" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane B.6 "COLOR_RANGE" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe B, plane 7
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe B, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe B, (0, 0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCrtc pipe C, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 1
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 1, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.1 "rotation" to 0x1/1
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.1 "COLOR_ENCODING" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.1 "COLOR_RANGE" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 2
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 2, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.2 "rotation" to 0x1/1
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.2 "COLOR_ENCODING" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.2 "COLOR_RANGE" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 3
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 3, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.3 "rotation" to 0x1/1
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.3 "COLOR_ENCODING" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.3 "COLOR_RANGE" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 4
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 4, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.4 "rotation" to 0x1/1
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.4 "COLOR_ENCODING" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.4 "COLOR_RANGE" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 5
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 5, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.5 "rotation" to 0x1/1
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.5 "COLOR_ENCODING" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.5 "COLOR_RANGE" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 6
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C, plane 6, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.6 "rotation" to 0x1/1
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.6 "COLOR_ENCODING" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane C.6 "COLOR_RANGE" to 0x0/0
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up initial rotation pipe C, plane 7
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe C, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe C, (0, 0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> (kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs directory '/sys/kernel/debug/dri/0'
> (kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs directory '/sys/kernel/debug/dri/0'
> (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed: plane_idx >= 0 && plane_idx < pipe->n_planes
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_fb(0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size (0x0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_position(0,0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_size(0x0)
> (kms_cursor_crc:19282) INFO: Beginning cursor-64x64-onscreen on pipe A, connector eDP-1
> (kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed: cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
> (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed: plane_idx >= 0 && plane_idx < pipe->n_planes
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_fb(227)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size (64x65)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_position(0,0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_size(64x65)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size (64x64)
> (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed: plane_idx >= 0 && plane_idx < pipe->n_planes
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_position(0,0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe A, fb 1 64x64
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe A, (0, 0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed: plane_idx >= 0 && plane_idx < pipe->n_planes
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_fb(0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size (0x0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_position(0,0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: fb_set_size(0x0)
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe A, disabling
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> (kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed: cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> (kms_cursor_crc:19282) igt-debugfs-DEBUG: CRC mismatch at index 0: 0x2e212a16 != 0x9245e25c
> (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion failure function igt_assert_crc_equal, file igt_debugfs.c:419:
> (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion: !mismatch
> (kms_cursor_crc:19282) igt-core-INFO: Stack trace:
> (kms_cursor_crc:19282) igt-core-INFO:   #0 /home/testrunner/igt/lib/igt_core.c:1472 __igt_fail_assert()
> (kms_cursor_crc:19282) igt-core-INFO:   #1 /home/testrunner/igt/lib/igt_debugfs.c:419 igt_assert_crc_equal()
> (kms_cursor_crc:19282) igt-core-INFO:   #2 /home/testrunner/igt/tests/kms_cursor_crc.c:213 do_single_test()
> (kms_cursor_crc:19282) igt-core-INFO:   #3 /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
> (kms_cursor_crc:19282) igt-core-INFO:   #4 /home/testrunner/igt/tests/kms_cursor_crc.c:266 test_crc_onscreen()
> (kms_cursor_crc:19282) igt-core-INFO:   #5 /home/testrunner/igt/tests/kms_cursor_crc.c:433 run_test.constprop.8()
> (kms_cursor_crc:19282) igt-core-INFO:   #6 /home/testrunner/igt/tests/kms_cursor_crc.c:594 run_test_generic.constprop.6()
> (kms_cursor_crc:19282) igt-core-INFO:   #7 /home/testrunner/igt/tests/kms_cursor_crc.c:690 __real_main656()
> (kms_cursor_crc:19282) igt-core-INFO:   #8 /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
> (kms_cursor_crc:19282) igt-core-INFO:   #9 ../csu/libc-start.c:344 __libc_start_main()
> (kms_cursor_crc:19282) igt-core-INFO:   #10 [_start+0x2a]
> ****  END  ****
>
> v2: Stop collecting crc's after test completion
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103232
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>

If this indeed fixes crc collection, or at least greatly improves it,
then we need this w/a in the kernel, not userspace. A possible
implementation idea:
- Don't disable crc for icl (maybe also gen9+, these crc issues are
that old) when userspace asks for it, just disable crc reporting using
some per-crtc boolean.
- When re-enabling the crc collection with the same config, just clear
the buffer (to make sure) and then succeed.
- Insert a pile of waits every time we enable crc for the first time,
to get the same effect.

We can't add these hacks to all the testcases to work around issues on
one specific platform. The kernel's debugfs abstraction should take
care of this. A quick hack to remove the crc disabling and clear the
crc buffer on re-enabling should be all you need to prove this (it'll
result in some noise due to crc buffer overruns, and it might anger
the hw because of the reprogramming, but I don't expect that).

Another thing that I think we need to debug this: Better fifo underrun
reporting statistics. Currently fifo underruns are single-shot, see:

https://dri.freedesktop.org/docs/drm/gpu/i915.html#display-fifo-underrun-reporting

First step would be a debug option (module or debugfs or whatever) to
disable the fifo underrun reporting after the first error. That way we
can measure whether things get better or worse if something changes,
atm we only have a binary answer (and hence no way to tell whether
we're moving forward). This is for all the cases where fifo underruns
come together with CRC mismatches. Long-term we probably want some
basic statistics (report the # of fifo underruns per second), plus a
failsafe to disable the fifo underrun if that number is too high and
we're just hogging the cpu. More than 10k interrupts/s is probably too
much, even for debugging.
-Daniel


> ---
>  tests/kms_cursor_crc.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> index 1514e7f2..83dbe0b7 100644
> --- a/tests/kms_cursor_crc.c
> +++ b/tests/kms_cursor_crc.c
> @@ -172,7 +172,8 @@ static void do_single_test(data_t *data, int x, int y)
>         igt_display_commit(display);
>
>         igt_wait_for_vblank(data->drm_fd, data->pipe);
> -       igt_pipe_crc_collect_crc(pipe_crc, &crc);
> +       igt_pipe_crc_start(pipe_crc);
> +       igt_pipe_crc_get_single(pipe_crc, &crc);
>
>         if (data->flags & (TEST_DPMS | TEST_SUSPEND)) {
>                 igt_crc_t crc_after;
> @@ -191,7 +192,7 @@ static void do_single_test(data_t *data, int x, int y)
>                         igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
>                                                       SUSPEND_TEST_NONE);
>
> -               igt_pipe_crc_collect_crc(pipe_crc, &crc_after);
> +               igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc_after);
>                 igt_assert_crc_equal(&crc, &crc_after);
>         }
>
> @@ -205,8 +206,9 @@ static void do_single_test(data_t *data, int x, int y)
>         igt_display_commit(display);
>
>         igt_wait_for_vblank(data->drm_fd, data->pipe);
> -       igt_pipe_crc_collect_crc(pipe_crc, &ref_crc);
> +       igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &ref_crc);
>         igt_assert_crc_equal(&crc, &ref_crc);
> +       igt_pipe_crc_stop(pipe_crc);
>
>         /* Clear screen afterwards */
>         cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
> --
> 2.17.1
>
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_cursor_crc: Change the way we collect crc's
  2019-01-22  9:20   ` Daniel Vetter
@ 2019-01-22 10:45     ` Kahola, Mika
  2019-01-22 13:20       ` Daniel Vetter
  0 siblings, 1 reply; 12+ messages in thread
From: Kahola, Mika @ 2019-01-22 10:45 UTC (permalink / raw)
  To: daniel.vetter; +Cc: igt-dev, Lisovskiy, Stanislav

On Tue, 2019-01-22 at 10:20 +0100, Daniel Vetter wrote:
> On Thu, Jan 10, 2019 at 1:50 PM Mika Kahola <mika.kahola@intel.com>
> wrote:
> > 
> > Instead of collecting crc's in one shot i.e. opening crc for
> > reading,
> > collecting crc and closing the file, let's start crc collection and
> > keep
> > collecting crc's until we are done. This fixes an issue that we
> > occasionally read errornous crc, at least with ICL.
> > 
> > The bug can be replicated for example with
> > 
> > kms_cursor_crc --run-subtest cursor-64x64-onscreen
> > 
> > Starting subtest: cursor-64x64-onscreen
> > Beginning cursor-64x64-onscreen on pipe A, connector eDP-1
> > .(kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion
> > failure function igt_assert_crc_equal, file igt_debugfs.c:419:
> > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion:
> > !mismatch
> > Stack trace:
> >   #0 /home/testrunner/igt/lib/igt_core.c:1472 __igt_fail_assert()
> >   #1 /home/testrunner/igt/lib/igt_debugfs.c:419
> > igt_assert_crc_equal()
> >   #2 /home/testrunner/igt/tests/kms_cursor_crc.c:213
> > do_single_test()
> >   #3 /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
> >   #4 /home/testrunner/igt/tests/kms_cursor_crc.c:266
> > test_crc_onscreen()
> >   #5 /home/testrunner/igt/tests/kms_cursor_crc.c:433
> > run_test.constprop.8()
> >   #6 /home/testrunner/igt/tests/kms_cursor_crc.c:594
> > run_test_generic.constprop.6()
> >   #7 /home/testrunner/igt/tests/kms_cursor_crc.c:690
> > __real_main656()
> >   #8 /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
> >   #9 ../csu/libc-start.c:344 __libc_start_main()
> >   #10 [_start+0x2a]
> > Subtest cursor-64x64-onscreen failed.
> > **** DEBUG ****
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.2 "COLOR_ENCODING" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.2 "COLOR_RANGE" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe B, plane 3
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B,
> > plane 3, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.3 "rotation" to 0x1/1
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.3 "COLOR_ENCODING" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.3 "COLOR_RANGE" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe B, plane 4
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B,
> > plane 4, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.4 "rotation" to 0x1/1
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.4 "COLOR_ENCODING" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.4 "COLOR_RANGE" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe B, plane 5
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B,
> > plane 5, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.5 "rotation" to 0x1/1
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.5 "COLOR_ENCODING" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.5 "COLOR_RANGE" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe B, plane 6
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B,
> > plane 6, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.6 "rotation" to 0x1/1
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.6 "COLOR_ENCODING" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > B.6 "COLOR_RANGE" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe B, plane 7
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe
> > B, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe
> > B, (0, 0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe C, plane 0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCrtc pipe C,
> > disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe C, plane 1
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > plane 1, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.1 "rotation" to 0x1/1
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.1 "COLOR_ENCODING" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.1 "COLOR_RANGE" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe C, plane 2
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > plane 2, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.2 "rotation" to 0x1/1
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.2 "COLOR_ENCODING" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.2 "COLOR_RANGE" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe C, plane 3
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > plane 3, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.3 "rotation" to 0x1/1
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.3 "COLOR_ENCODING" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.3 "COLOR_RANGE" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe C, plane 4
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > plane 4, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.4 "rotation" to 0x1/1
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.4 "COLOR_ENCODING" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.4 "COLOR_RANGE" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe C, plane 5
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > plane 5, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.5 "rotation" to 0x1/1
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.5 "COLOR_ENCODING" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.5 "COLOR_RANGE" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe C, plane 6
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > plane 6, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.6 "rotation" to 0x1/1
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.6 "COLOR_ENCODING" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > C.6 "COLOR_RANGE" to 0x0/0
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > initial rotation pipe C, plane 7
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe
> > C, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe
> > C, (0, 0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > (kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs directory
> > '/sys/kernel/debug/dri/0'
> > (kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs directory
> > '/sys/kernel/debug/dri/0'
> > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > plane_idx >= 0 && plane_idx < pipe->n_planes
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_fb(0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size
> > (0x0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > fb_set_position(0,0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > fb_set_size(0x0)
> > (kms_cursor_crc:19282) INFO: Beginning cursor-64x64-onscreen on
> > pipe A, connector eDP-1
> > (kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed:
> > cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
> > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > plane_idx >= 0 && plane_idx < pipe->n_planes
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > plane_set_fb(227)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size
> > (64x65)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > fb_set_position(0,0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > fb_set_size(64x65)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size
> > (64x64)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > plane_idx >= 0 && plane_idx < pipe->n_planes
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > plane_set_position(0,0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe
> > A, fb 1 64x64
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe
> > A, (0, 0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > plane_idx >= 0 && plane_idx < pipe->n_planes
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_fb(0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size
> > (0x0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > fb_set_position(0,0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > fb_set_size(0x0)
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe
> > A, disabling
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > (kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed:
> > cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > (kms_cursor_crc:19282) igt-debugfs-DEBUG: CRC mismatch at index 0:
> > 0x2e212a16 != 0x9245e25c
> > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion failure
> > function igt_assert_crc_equal, file igt_debugfs.c:419:
> > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion:
> > !mismatch
> > (kms_cursor_crc:19282) igt-core-INFO: Stack trace:
> > (kms_cursor_crc:19282) igt-core-INFO:   #0
> > /home/testrunner/igt/lib/igt_core.c:1472 __igt_fail_assert()
> > (kms_cursor_crc:19282) igt-core-INFO:   #1
> > /home/testrunner/igt/lib/igt_debugfs.c:419 igt_assert_crc_equal()
> > (kms_cursor_crc:19282) igt-core-INFO:   #2
> > /home/testrunner/igt/tests/kms_cursor_crc.c:213 do_single_test()
> > (kms_cursor_crc:19282) igt-core-INFO:   #3
> > /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
> > (kms_cursor_crc:19282) igt-core-INFO:   #4
> > /home/testrunner/igt/tests/kms_cursor_crc.c:266 test_crc_onscreen()
> > (kms_cursor_crc:19282) igt-core-INFO:   #5
> > /home/testrunner/igt/tests/kms_cursor_crc.c:433
> > run_test.constprop.8()
> > (kms_cursor_crc:19282) igt-core-INFO:   #6
> > /home/testrunner/igt/tests/kms_cursor_crc.c:594
> > run_test_generic.constprop.6()
> > (kms_cursor_crc:19282) igt-core-INFO:   #7
> > /home/testrunner/igt/tests/kms_cursor_crc.c:690 __real_main656()
> > (kms_cursor_crc:19282) igt-core-INFO:   #8
> > /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
> > (kms_cursor_crc:19282) igt-core-INFO:   #9 ../csu/libc-start.c:344
> > __libc_start_main()
> > (kms_cursor_crc:19282) igt-core-INFO:   #10 [_start+0x2a]
> > ****  END  ****
> > 
> > v2: Stop collecting crc's after test completion
> > 
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103232
> > Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> 
> If this indeed fixes crc collection, or at least greatly improves it,
> then we need this w/a in the kernel, not userspace. A possible
> implementation idea:
> - Don't disable crc for icl (maybe also gen9+, these crc issues are
> that old) when userspace asks for it, just disable crc reporting
> using
> some per-crtc boolean.
> - When re-enabling the crc collection with the same config, just
> clear
> the buffer (to make sure) and then succeed.
> - Insert a pile of waits every time we enable crc for the first time,
> to get the same effect.
> 
> We can't add these hacks to all the testcases to work around issues
> on
> one specific platform. The kernel's debugfs abstraction should take
> care of this. A quick hack to remove the crc disabling and clear the
> crc buffer on re-enabling should be all you need to prove this (it'll
> result in some noise due to crc buffer overruns, and it might anger
> the hw because of the reprogramming, but I don't expect that).
> 
> Another thing that I think we need to debug this: Better fifo
> underrun
> reporting statistics. Currently fifo underruns are single-shot, see:
> 
> 
https://dri.freedesktop.org/docs/drm/gpu/i915.html#display-fifo-underrun-reporting
> 
> First step would be a debug option (module or debugfs or whatever) to
> disable the fifo underrun reporting after the first error. That way
> we
> can measure whether things get better or worse if something changes,
> atm we only have a binary answer (and hence no way to tell whether
> we're moving forward). This is for all the cases where fifo underruns
> come together with CRC mismatches. Long-term we probably want some
> basic statistics (report the # of fifo underruns per second), plus a
> failsafe to disable the fifo underrun if that number is too high and
> we're just hogging the cpu. More than 10k interrupts/s is probably
> too
> much, even for debugging.
> -Daniel

With this approach it turned out that this works only for skl+
platforms. Older gens would need original way of crc collection. It
puzzles me a bit how two different approaches, which ultimately should
produce the same outcome, actually behaves differently. I think this
patch would propably just hide the real issue in kernel and we need to
dig deeper. 

Like you said, let's go back on debugging the kernel. I will try to
change the fifo underrun reporting to something else than single-shot.
I faintly remember that we did this single-shot approach to minimize
the noise in dmesg.

Thanks for useful tips and hints!

Cheers,
Mika 

> 
> 
> > ---
> >  tests/kms_cursor_crc.c | 8 +++++---
> >  1 file changed, 5 insertions(+), 3 deletions(-)
> > 
> > diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> > index 1514e7f2..83dbe0b7 100644
> > --- a/tests/kms_cursor_crc.c
> > +++ b/tests/kms_cursor_crc.c
> > @@ -172,7 +172,8 @@ static void do_single_test(data_t *data, int x,
> > int y)
> >         igt_display_commit(display);
> > 
> >         igt_wait_for_vblank(data->drm_fd, data->pipe);
> > -       igt_pipe_crc_collect_crc(pipe_crc, &crc);
> > +       igt_pipe_crc_start(pipe_crc);
> > +       igt_pipe_crc_get_single(pipe_crc, &crc);
> > 
> >         if (data->flags & (TEST_DPMS | TEST_SUSPEND)) {
> >                 igt_crc_t crc_after;
> > @@ -191,7 +192,7 @@ static void do_single_test(data_t *data, int x,
> > int y)
> >                         igt_system_suspend_autoresume(SUSPEND_STATE
> > _MEM,
> >                                                       SUSPEND_TEST_
> > NONE);
> > 
> > -               igt_pipe_crc_collect_crc(pipe_crc, &crc_after);
> > +               igt_pipe_crc_get_current(data->drm_fd, pipe_crc,
> > &crc_after);
> >                 igt_assert_crc_equal(&crc, &crc_after);
> >         }
> > 
> > @@ -205,8 +206,9 @@ static void do_single_test(data_t *data, int x,
> > int y)
> >         igt_display_commit(display);
> > 
> >         igt_wait_for_vblank(data->drm_fd, data->pipe);
> > -       igt_pipe_crc_collect_crc(pipe_crc, &ref_crc);
> > +       igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &ref_crc);
> >         igt_assert_crc_equal(&crc, &ref_crc);
> > +       igt_pipe_crc_stop(pipe_crc);
> > 
> >         /* Clear screen afterwards */
> >         cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
> > --
> > 2.17.1
> > 
> > _______________________________________________
> > igt-dev mailing list
> > igt-dev@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/igt-dev
> 
> 
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_cursor_crc: Change the way we collect crc's
  2019-01-22 10:45     ` Kahola, Mika
@ 2019-01-22 13:20       ` Daniel Vetter
  2019-01-22 13:53         ` Kahola, Mika
  0 siblings, 1 reply; 12+ messages in thread
From: Daniel Vetter @ 2019-01-22 13:20 UTC (permalink / raw)
  To: Kahola, Mika; +Cc: igt-dev, Lisovskiy, Stanislav

On Tue, Jan 22, 2019 at 10:45:39AM +0000, Kahola, Mika wrote:
> On Tue, 2019-01-22 at 10:20 +0100, Daniel Vetter wrote:
> > On Thu, Jan 10, 2019 at 1:50 PM Mika Kahola <mika.kahola@intel.com>
> > wrote:
> > > 
> > > Instead of collecting crc's in one shot i.e. opening crc for
> > > reading,
> > > collecting crc and closing the file, let's start crc collection and
> > > keep
> > > collecting crc's until we are done. This fixes an issue that we
> > > occasionally read errornous crc, at least with ICL.
> > > 
> > > The bug can be replicated for example with
> > > 
> > > kms_cursor_crc --run-subtest cursor-64x64-onscreen
> > > 
> > > Starting subtest: cursor-64x64-onscreen
> > > Beginning cursor-64x64-onscreen on pipe A, connector eDP-1
> > > .(kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion
> > > failure function igt_assert_crc_equal, file igt_debugfs.c:419:
> > > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion:
> > > !mismatch
> > > Stack trace:
> > >   #0 /home/testrunner/igt/lib/igt_core.c:1472 __igt_fail_assert()
> > >   #1 /home/testrunner/igt/lib/igt_debugfs.c:419
> > > igt_assert_crc_equal()
> > >   #2 /home/testrunner/igt/tests/kms_cursor_crc.c:213
> > > do_single_test()
> > >   #3 /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
> > >   #4 /home/testrunner/igt/tests/kms_cursor_crc.c:266
> > > test_crc_onscreen()
> > >   #5 /home/testrunner/igt/tests/kms_cursor_crc.c:433
> > > run_test.constprop.8()
> > >   #6 /home/testrunner/igt/tests/kms_cursor_crc.c:594
> > > run_test_generic.constprop.6()
> > >   #7 /home/testrunner/igt/tests/kms_cursor_crc.c:690
> > > __real_main656()
> > >   #8 /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
> > >   #9 ../csu/libc-start.c:344 __libc_start_main()
> > >   #10 [_start+0x2a]
> > > Subtest cursor-64x64-onscreen failed.
> > > **** DEBUG ****
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.2 "COLOR_ENCODING" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.2 "COLOR_RANGE" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe B, plane 3
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B,
> > > plane 3, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.3 "rotation" to 0x1/1
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.3 "COLOR_ENCODING" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.3 "COLOR_RANGE" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe B, plane 4
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B,
> > > plane 4, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.4 "rotation" to 0x1/1
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.4 "COLOR_ENCODING" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.4 "COLOR_RANGE" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe B, plane 5
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B,
> > > plane 5, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.5 "rotation" to 0x1/1
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.5 "COLOR_ENCODING" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.5 "COLOR_RANGE" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe B, plane 6
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe B,
> > > plane 6, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.6 "rotation" to 0x1/1
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.6 "COLOR_ENCODING" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > B.6 "COLOR_RANGE" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe B, plane 7
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe
> > > B, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe
> > > B, (0, 0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe C, plane 0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCrtc pipe C,
> > > disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe C, plane 1
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > > plane 1, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.1 "rotation" to 0x1/1
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.1 "COLOR_ENCODING" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.1 "COLOR_RANGE" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe C, plane 2
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > > plane 2, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.2 "rotation" to 0x1/1
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.2 "COLOR_ENCODING" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.2 "COLOR_RANGE" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe C, plane 3
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > > plane 3, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.3 "rotation" to 0x1/1
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.3 "COLOR_ENCODING" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.3 "COLOR_RANGE" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe C, plane 4
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > > plane 4, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.4 "rotation" to 0x1/1
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.4 "COLOR_ENCODING" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.4 "COLOR_RANGE" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe C, plane 5
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > > plane 5, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.5 "rotation" to 0x1/1
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.5 "COLOR_ENCODING" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.5 "COLOR_RANGE" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe C, plane 6
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane pipe C,
> > > plane 6, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.6 "rotation" to 0x1/1
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.6 "COLOR_ENCODING" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp plane
> > > C.6 "COLOR_RANGE" to 0x0/0
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > initial rotation pipe C, plane 7
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe
> > > C, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe
> > > C, (0, 0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > (kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs directory
> > > '/sys/kernel/debug/dri/0'
> > > (kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs directory
> > > '/sys/kernel/debug/dri/0'
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_fb(0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size
> > > (0x0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > fb_set_position(0,0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > fb_set_size(0x0)
> > > (kms_cursor_crc:19282) INFO: Beginning cursor-64x64-onscreen on
> > > pipe A, connector eDP-1
> > > (kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed:
> > > cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > plane_set_fb(227)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size
> > > (64x65)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > fb_set_position(0,0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > fb_set_size(64x65)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size
> > > (64x64)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > plane_set_position(0,0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe
> > > A, fb 1 64x64
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor pipe
> > > A, (0, 0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_fb(0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7: plane_set_size
> > > (0x0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > fb_set_position(0,0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > fb_set_size(0x0)
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor pipe
> > > A, disabling
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > (kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed:
> > > cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > (kms_cursor_crc:19282) igt-debugfs-DEBUG: CRC mismatch at index 0:
> > > 0x2e212a16 != 0x9245e25c
> > > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion failure
> > > function igt_assert_crc_equal, file igt_debugfs.c:419:
> > > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion:
> > > !mismatch
> > > (kms_cursor_crc:19282) igt-core-INFO: Stack trace:
> > > (kms_cursor_crc:19282) igt-core-INFO:   #0
> > > /home/testrunner/igt/lib/igt_core.c:1472 __igt_fail_assert()
> > > (kms_cursor_crc:19282) igt-core-INFO:   #1
> > > /home/testrunner/igt/lib/igt_debugfs.c:419 igt_assert_crc_equal()
> > > (kms_cursor_crc:19282) igt-core-INFO:   #2
> > > /home/testrunner/igt/tests/kms_cursor_crc.c:213 do_single_test()
> > > (kms_cursor_crc:19282) igt-core-INFO:   #3
> > > /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
> > > (kms_cursor_crc:19282) igt-core-INFO:   #4
> > > /home/testrunner/igt/tests/kms_cursor_crc.c:266 test_crc_onscreen()
> > > (kms_cursor_crc:19282) igt-core-INFO:   #5
> > > /home/testrunner/igt/tests/kms_cursor_crc.c:433
> > > run_test.constprop.8()
> > > (kms_cursor_crc:19282) igt-core-INFO:   #6
> > > /home/testrunner/igt/tests/kms_cursor_crc.c:594
> > > run_test_generic.constprop.6()
> > > (kms_cursor_crc:19282) igt-core-INFO:   #7
> > > /home/testrunner/igt/tests/kms_cursor_crc.c:690 __real_main656()
> > > (kms_cursor_crc:19282) igt-core-INFO:   #8
> > > /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
> > > (kms_cursor_crc:19282) igt-core-INFO:   #9 ../csu/libc-start.c:344
> > > __libc_start_main()
> > > (kms_cursor_crc:19282) igt-core-INFO:   #10 [_start+0x2a]
> > > ****  END  ****
> > > 
> > > v2: Stop collecting crc's after test completion
> > > 
> > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103232
> > > Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> > 
> > If this indeed fixes crc collection, or at least greatly improves it,
> > then we need this w/a in the kernel, not userspace. A possible
> > implementation idea:
> > - Don't disable crc for icl (maybe also gen9+, these crc issues are
> > that old) when userspace asks for it, just disable crc reporting
> > using
> > some per-crtc boolean.
> > - When re-enabling the crc collection with the same config, just
> > clear
> > the buffer (to make sure) and then succeed.
> > - Insert a pile of waits every time we enable crc for the first time,
> > to get the same effect.
> > 
> > We can't add these hacks to all the testcases to work around issues
> > on
> > one specific platform. The kernel's debugfs abstraction should take
> > care of this. A quick hack to remove the crc disabling and clear the
> > crc buffer on re-enabling should be all you need to prove this (it'll
> > result in some noise due to crc buffer overruns, and it might anger
> > the hw because of the reprogramming, but I don't expect that).
> > 
> > Another thing that I think we need to debug this: Better fifo
> > underrun
> > reporting statistics. Currently fifo underruns are single-shot, see:
> > 
> > 
> https://dri.freedesktop.org/docs/drm/gpu/i915.html#display-fifo-underrun-reporting
> > 
> > First step would be a debug option (module or debugfs or whatever) to
> > disable the fifo underrun reporting after the first error. That way
> > we
> > can measure whether things get better or worse if something changes,
> > atm we only have a binary answer (and hence no way to tell whether
> > we're moving forward). This is for all the cases where fifo underruns
> > come together with CRC mismatches. Long-term we probably want some
> > basic statistics (report the # of fifo underruns per second), plus a
> > failsafe to disable the fifo underrun if that number is too high and
> > we're just hogging the cpu. More than 10k interrupts/s is probably
> > too
> > much, even for debugging.
> > -Daniel
> 
> With this approach it turned out that this works only for skl+
> platforms. Older gens would need original way of crc collection. It
> puzzles me a bit how two different approaches, which ultimately should
> produce the same outcome, actually behaves differently. I think this
> patch would propably just hide the real issue in kernel and we need to
> dig deeper. 

Yeah, my suggestion would be that if we indeed need this for skl+, then we
should do it in-kernel, but _only_ for skl+ crc support. And leave the
current crc support for older platforms unchanged.

Also yeah I'm baffled that this would break crc for older machines ... do
you have examples?

> Like you said, let's go back on debugging the kernel. I will try to
> change the fifo underrun reporting to something else than single-shot.
> I faintly remember that we did this single-shot approach to minimize
> the noise in dmesg.
> 
> Thanks for useful tips and hints!

I think with all these crc/fifo underrun issues first step is to get
better data (we seem to be running around blind), hence the suggestion to
resurrect the fifo underrun statistics. Iirc our intel cros team has
hacked something like this together already for improving the skl wm way
back when skl was dying constantly because of fifo underruns.
-Daniel

> 
> Cheers,
> Mika 
> 
> > 
> > 
> > > ---
> > >  tests/kms_cursor_crc.c | 8 +++++---
> > >  1 file changed, 5 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> > > index 1514e7f2..83dbe0b7 100644
> > > --- a/tests/kms_cursor_crc.c
> > > +++ b/tests/kms_cursor_crc.c
> > > @@ -172,7 +172,8 @@ static void do_single_test(data_t *data, int x,
> > > int y)
> > >         igt_display_commit(display);
> > > 
> > >         igt_wait_for_vblank(data->drm_fd, data->pipe);
> > > -       igt_pipe_crc_collect_crc(pipe_crc, &crc);
> > > +       igt_pipe_crc_start(pipe_crc);
> > > +       igt_pipe_crc_get_single(pipe_crc, &crc);
> > > 
> > >         if (data->flags & (TEST_DPMS | TEST_SUSPEND)) {
> > >                 igt_crc_t crc_after;
> > > @@ -191,7 +192,7 @@ static void do_single_test(data_t *data, int x,
> > > int y)
> > >                         igt_system_suspend_autoresume(SUSPEND_STATE
> > > _MEM,
> > >                                                       SUSPEND_TEST_
> > > NONE);
> > > 
> > > -               igt_pipe_crc_collect_crc(pipe_crc, &crc_after);
> > > +               igt_pipe_crc_get_current(data->drm_fd, pipe_crc,
> > > &crc_after);
> > >                 igt_assert_crc_equal(&crc, &crc_after);
> > >         }
> > > 
> > > @@ -205,8 +206,9 @@ static void do_single_test(data_t *data, int x,
> > > int y)
> > >         igt_display_commit(display);
> > > 
> > >         igt_wait_for_vblank(data->drm_fd, data->pipe);
> > > -       igt_pipe_crc_collect_crc(pipe_crc, &ref_crc);
> > > +       igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &ref_crc);
> > >         igt_assert_crc_equal(&crc, &ref_crc);
> > > +       igt_pipe_crc_stop(pipe_crc);
> > > 
> > >         /* Clear screen afterwards */
> > >         cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb);
> > > --
> > > 2.17.1
> > > 
> > > _______________________________________________
> > > igt-dev mailing list
> > > igt-dev@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/igt-dev
> > 
> > 
> > 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_cursor_crc: Change the way we collect crc's
  2019-01-22 13:20       ` Daniel Vetter
@ 2019-01-22 13:53         ` Kahola, Mika
  2019-01-22 14:08           ` Daniel Vetter
  0 siblings, 1 reply; 12+ messages in thread
From: Kahola, Mika @ 2019-01-22 13:53 UTC (permalink / raw)
  To: daniel; +Cc: igt-dev, Lisovskiy, Stanislav

On Tue, 2019-01-22 at 14:20 +0100, Daniel Vetter wrote:
> On Tue, Jan 22, 2019 at 10:45:39AM +0000, Kahola, Mika wrote:
> > On Tue, 2019-01-22 at 10:20 +0100, Daniel Vetter wrote:
> > > On Thu, Jan 10, 2019 at 1:50 PM Mika Kahola <
> > > mika.kahola@intel.com>
> > > wrote:
> > > > 
> > > > Instead of collecting crc's in one shot i.e. opening crc for
> > > > reading,
> > > > collecting crc and closing the file, let's start crc collection
> > > > and
> > > > keep
> > > > collecting crc's until we are done. This fixes an issue that we
> > > > occasionally read errornous crc, at least with ICL.
> > > > 
> > > > The bug can be replicated for example with
> > > > 
> > > > kms_cursor_crc --run-subtest cursor-64x64-onscreen
> > > > 
> > > > Starting subtest: cursor-64x64-onscreen
> > > > Beginning cursor-64x64-onscreen on pipe A, connector eDP-1
> > > > .(kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion
> > > > failure function igt_assert_crc_equal, file igt_debugfs.c:419:
> > > > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion:
> > > > !mismatch
> > > > Stack trace:
> > > >   #0 /home/testrunner/igt/lib/igt_core.c:1472
> > > > __igt_fail_assert()
> > > >   #1 /home/testrunner/igt/lib/igt_debugfs.c:419
> > > > igt_assert_crc_equal()
> > > >   #2 /home/testrunner/igt/tests/kms_cursor_crc.c:213
> > > > do_single_test()
> > > >   #3 /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
> > > >   #4 /home/testrunner/igt/tests/kms_cursor_crc.c:266
> > > > test_crc_onscreen()
> > > >   #5 /home/testrunner/igt/tests/kms_cursor_crc.c:433
> > > > run_test.constprop.8()
> > > >   #6 /home/testrunner/igt/tests/kms_cursor_crc.c:594
> > > > run_test_generic.constprop.6()
> > > >   #7 /home/testrunner/igt/tests/kms_cursor_crc.c:690
> > > > __real_main656()
> > > >   #8 /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
> > > >   #9 ../csu/libc-start.c:344 __libc_start_main()
> > > >   #10 [_start+0x2a]
> > > > Subtest cursor-64x64-onscreen failed.
> > > > **** DEBUG ****
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.2 "COLOR_ENCODING" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.2 "COLOR_RANGE" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe B, plane 3
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > pipe B,
> > > > plane 3, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.3 "rotation" to 0x1/1
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.3 "COLOR_ENCODING" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.3 "COLOR_RANGE" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe B, plane 4
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > pipe B,
> > > > plane 4, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.4 "rotation" to 0x1/1
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.4 "COLOR_ENCODING" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.4 "COLOR_RANGE" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe B, plane 5
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > pipe B,
> > > > plane 5, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.5 "rotation" to 0x1/1
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.5 "COLOR_ENCODING" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.5 "COLOR_RANGE" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe B, plane 6
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > pipe B,
> > > > plane 6, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.6 "rotation" to 0x1/1
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.6 "COLOR_ENCODING" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > B.6 "COLOR_RANGE" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe B, plane 7
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor
> > > > pipe
> > > > B, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor
> > > > pipe
> > > > B, (0, 0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe C, plane 0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCrtc pipe
> > > > C,
> > > > disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe C, plane 1
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > pipe C,
> > > > plane 1, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.1 "rotation" to 0x1/1
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.1 "COLOR_ENCODING" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.1 "COLOR_RANGE" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe C, plane 2
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > pipe C,
> > > > plane 2, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.2 "rotation" to 0x1/1
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.2 "COLOR_ENCODING" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.2 "COLOR_RANGE" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe C, plane 3
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > pipe C,
> > > > plane 3, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.3 "rotation" to 0x1/1
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.3 "COLOR_ENCODING" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.3 "COLOR_RANGE" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe C, plane 4
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > pipe C,
> > > > plane 4, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.4 "rotation" to 0x1/1
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.4 "COLOR_ENCODING" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.4 "COLOR_RANGE" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe C, plane 5
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > pipe C,
> > > > plane 5, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.5 "rotation" to 0x1/1
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.5 "COLOR_ENCODING" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.5 "COLOR_RANGE" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe C, plane 6
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > pipe C,
> > > > plane 6, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.6 "rotation" to 0x1/1
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.6 "COLOR_ENCODING" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > plane
> > > > C.6 "COLOR_RANGE" to 0x0/0
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > initial rotation pipe C, plane 7
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor
> > > > pipe
> > > > C, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor
> > > > pipe
> > > > C, (0, 0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > > (kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs
> > > > directory
> > > > '/sys/kernel/debug/dri/0'
> > > > (kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs
> > > > directory
> > > > '/sys/kernel/debug/dri/0'
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > plane_set_fb(0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > plane_set_size
> > > > (0x0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > fb_set_position(0,0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > fb_set_size(0x0)
> > > > (kms_cursor_crc:19282) INFO: Beginning cursor-64x64-onscreen on
> > > > pipe A, connector eDP-1
> > > > (kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed:
> > > > cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > plane_set_fb(227)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > plane_set_size
> > > > (64x65)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > fb_set_position(0,0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > fb_set_size(64x65)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > plane_set_size
> > > > (64x64)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > plane_set_position(0,0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor
> > > > pipe
> > > > A, fb 1 64x64
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor
> > > > pipe
> > > > A, (0, 0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > plane_set_fb(0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > plane_set_size
> > > > (0x0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > fb_set_position(0,0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > fb_set_size(0x0)
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor
> > > > pipe
> > > > A, disabling
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > > (kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed:
> > > > cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > > (kms_cursor_crc:19282) igt-debugfs-DEBUG: CRC mismatch at index
> > > > 0:
> > > > 0x2e212a16 != 0x9245e25c
> > > > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion
> > > > failure
> > > > function igt_assert_crc_equal, file igt_debugfs.c:419:
> > > > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion:
> > > > !mismatch
> > > > (kms_cursor_crc:19282) igt-core-INFO: Stack trace:
> > > > (kms_cursor_crc:19282) igt-core-INFO:   #0
> > > > /home/testrunner/igt/lib/igt_core.c:1472 __igt_fail_assert()
> > > > (kms_cursor_crc:19282) igt-core-INFO:   #1
> > > > /home/testrunner/igt/lib/igt_debugfs.c:419
> > > > igt_assert_crc_equal()
> > > > (kms_cursor_crc:19282) igt-core-INFO:   #2
> > > > /home/testrunner/igt/tests/kms_cursor_crc.c:213
> > > > do_single_test()
> > > > (kms_cursor_crc:19282) igt-core-INFO:   #3
> > > > /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
> > > > (kms_cursor_crc:19282) igt-core-INFO:   #4
> > > > /home/testrunner/igt/tests/kms_cursor_crc.c:266
> > > > test_crc_onscreen()
> > > > (kms_cursor_crc:19282) igt-core-INFO:   #5
> > > > /home/testrunner/igt/tests/kms_cursor_crc.c:433
> > > > run_test.constprop.8()
> > > > (kms_cursor_crc:19282) igt-core-INFO:   #6
> > > > /home/testrunner/igt/tests/kms_cursor_crc.c:594
> > > > run_test_generic.constprop.6()
> > > > (kms_cursor_crc:19282) igt-core-INFO:   #7
> > > > /home/testrunner/igt/tests/kms_cursor_crc.c:690
> > > > __real_main656()
> > > > (kms_cursor_crc:19282) igt-core-INFO:   #8
> > > > /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
> > > > (kms_cursor_crc:19282) igt-core-INFO:   #9 ../csu/libc-
> > > > start.c:344
> > > > __libc_start_main()
> > > > (kms_cursor_crc:19282) igt-core-INFO:   #10 [_start+0x2a]
> > > > ****  END  ****
> > > > 
> > > > v2: Stop collecting crc's after test completion
> > > > 
> > > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103232
> > > > Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> > > 
> > > If this indeed fixes crc collection, or at least greatly improves
> > > it,
> > > then we need this w/a in the kernel, not userspace. A possible
> > > implementation idea:
> > > - Don't disable crc for icl (maybe also gen9+, these crc issues
> > > are
> > > that old) when userspace asks for it, just disable crc reporting
> > > using
> > > some per-crtc boolean.
> > > - When re-enabling the crc collection with the same config, just
> > > clear
> > > the buffer (to make sure) and then succeed.
> > > - Insert a pile of waits every time we enable crc for the first
> > > time,
> > > to get the same effect.
> > > 
> > > We can't add these hacks to all the testcases to work around
> > > issues
> > > on
> > > one specific platform. The kernel's debugfs abstraction should
> > > take
> > > care of this. A quick hack to remove the crc disabling and clear
> > > the
> > > crc buffer on re-enabling should be all you need to prove this
> > > (it'll
> > > result in some noise due to crc buffer overruns, and it might
> > > anger
> > > the hw because of the reprogramming, but I don't expect that).
> > > 
> > > Another thing that I think we need to debug this: Better fifo
> > > underrun
> > > reporting statistics. Currently fifo underruns are single-shot,
> > > see:
> > > 
> > > 
> > 
> > 
https://dri.freedesktop.org/docs/drm/gpu/i915.html#display-fifo-underrun-reporting
> > > 
> > > First step would be a debug option (module or debugfs or
> > > whatever) to
> > > disable the fifo underrun reporting after the first error. That
> > > way
> > > we
> > > can measure whether things get better or worse if something
> > > changes,
> > > atm we only have a binary answer (and hence no way to tell
> > > whether
> > > we're moving forward). This is for all the cases where fifo
> > > underruns
> > > come together with CRC mismatches. Long-term we probably want
> > > some
> > > basic statistics (report the # of fifo underruns per second),
> > > plus a
> > > failsafe to disable the fifo underrun if that number is too high
> > > and
> > > we're just hogging the cpu. More than 10k interrupts/s is
> > > probably
> > > too
> > > much, even for debugging.
> > > -Daniel
> > 
> > With this approach it turned out that this works only for skl+
> > platforms. Older gens would need original way of crc collection. It
> > puzzles me a bit how two different approaches, which ultimately
> > should
> > produce the same outcome, actually behaves differently. I think
> > this
> > patch would propably just hide the real issue in kernel and we need
> > to
> > dig deeper. 
> 
> Yeah, my suggestion would be that if we indeed need this for skl+,
> then we
> should do it in-kernel, but _only_ for skl+ crc support. And leave
> the
> current crc support for older platforms unchanged.
> 
> Also yeah I'm baffled that this would break crc for older machines
> ... do
> you have examples?

Well, I managed to trigger it once on my hsw with the test

kms_cursor_crc --run-subtest cursor-64x64x-onscreen.

Now, when I'm trying to trigger it again to get the dmesg of a failing
test, I'm unable to do so.

CI runs with this patch set were clean. Because of this earlier mishap,
I was left with the doubt that we shouldn't do this for older
platforms.

> 
> > Like you said, let's go back on debugging the kernel. I will try to
> > change the fifo underrun reporting to something else than single-
> > shot.
> > I faintly remember that we did this single-shot approach to
> > minimize
> > the noise in dmesg.
> > 
> > Thanks for useful tips and hints!
> 
> I think with all these crc/fifo underrun issues first step is to get
> better data (we seem to be running around blind), hence the
> suggestion to
> resurrect the fifo underrun statistics. Iirc our intel cros team has
> hacked something like this together already for improving the skl wm
> way
> back when skl was dying constantly because of fifo underruns.
Do they have patches available for this that could be shared?

> -Daniel
> 
> > 
> > Cheers,
> > Mika 
> > 
> > > 
> > > 
> > > > ---
> > > >  tests/kms_cursor_crc.c | 8 +++++---
> > > >  1 file changed, 5 insertions(+), 3 deletions(-)
> > > > 
> > > > diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> > > > index 1514e7f2..83dbe0b7 100644
> > > > --- a/tests/kms_cursor_crc.c
> > > > +++ b/tests/kms_cursor_crc.c
> > > > @@ -172,7 +172,8 @@ static void do_single_test(data_t *data,
> > > > int x,
> > > > int y)
> > > >         igt_display_commit(display);
> > > > 
> > > >         igt_wait_for_vblank(data->drm_fd, data->pipe);
> > > > -       igt_pipe_crc_collect_crc(pipe_crc, &crc);
> > > > +       igt_pipe_crc_start(pipe_crc);
> > > > +       igt_pipe_crc_get_single(pipe_crc, &crc);
> > > > 
> > > >         if (data->flags & (TEST_DPMS | TEST_SUSPEND)) {
> > > >                 igt_crc_t crc_after;
> > > > @@ -191,7 +192,7 @@ static void do_single_test(data_t *data,
> > > > int x,
> > > > int y)
> > > >                         igt_system_suspend_autoresume(SUSPEND_S
> > > > TATE
> > > > _MEM,
> > > >                                                       SUSPEND_T
> > > > EST_
> > > > NONE);
> > > > 
> > > > -               igt_pipe_crc_collect_crc(pipe_crc, &crc_after);
> > > > +               igt_pipe_crc_get_current(data->drm_fd,
> > > > pipe_crc,
> > > > &crc_after);
> > > >                 igt_assert_crc_equal(&crc, &crc_after);
> > > >         }
> > > > 
> > > > @@ -205,8 +206,9 @@ static void do_single_test(data_t *data,
> > > > int x,
> > > > int y)
> > > >         igt_display_commit(display);
> > > > 
> > > >         igt_wait_for_vblank(data->drm_fd, data->pipe);
> > > > -       igt_pipe_crc_collect_crc(pipe_crc, &ref_crc);
> > > > +       igt_pipe_crc_get_current(data->drm_fd, pipe_crc,
> > > > &ref_crc);
> > > >         igt_assert_crc_equal(&crc, &ref_crc);
> > > > +       igt_pipe_crc_stop(pipe_crc);
> > > > 
> > > >         /* Clear screen afterwards */
> > > >         cr = igt_get_cairo_ctx(data->drm_fd, &data-
> > > > >primary_fb);
> > > > --
> > > > 2.17.1
> > > > 
> > > > _______________________________________________
> > > > igt-dev mailing list
> > > > igt-dev@lists.freedesktop.org
> > > > https://lists.freedesktop.org/mailman/listinfo/igt-dev
> > > 
> > > 
> > > 
> 
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_cursor_crc: Change the way we collect crc's
  2019-01-22 13:53         ` Kahola, Mika
@ 2019-01-22 14:08           ` Daniel Vetter
  0 siblings, 0 replies; 12+ messages in thread
From: Daniel Vetter @ 2019-01-22 14:08 UTC (permalink / raw)
  To: Kahola, Mika; +Cc: igt-dev, Lisovskiy, Stanislav

On Tue, Jan 22, 2019 at 2:53 PM Kahola, Mika <mika.kahola@intel.com> wrote:
>
> On Tue, 2019-01-22 at 14:20 +0100, Daniel Vetter wrote:
> > On Tue, Jan 22, 2019 at 10:45:39AM +0000, Kahola, Mika wrote:
> > > On Tue, 2019-01-22 at 10:20 +0100, Daniel Vetter wrote:
> > > > On Thu, Jan 10, 2019 at 1:50 PM Mika Kahola <
> > > > mika.kahola@intel.com>
> > > > wrote:
> > > > >
> > > > > Instead of collecting crc's in one shot i.e. opening crc for
> > > > > reading,
> > > > > collecting crc and closing the file, let's start crc collection
> > > > > and
> > > > > keep
> > > > > collecting crc's until we are done. This fixes an issue that we
> > > > > occasionally read errornous crc, at least with ICL.
> > > > >
> > > > > The bug can be replicated for example with
> > > > >
> > > > > kms_cursor_crc --run-subtest cursor-64x64-onscreen
> > > > >
> > > > > Starting subtest: cursor-64x64-onscreen
> > > > > Beginning cursor-64x64-onscreen on pipe A, connector eDP-1
> > > > > .(kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion
> > > > > failure function igt_assert_crc_equal, file igt_debugfs.c:419:
> > > > > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion:
> > > > > !mismatch
> > > > > Stack trace:
> > > > >   #0 /home/testrunner/igt/lib/igt_core.c:1472
> > > > > __igt_fail_assert()
> > > > >   #1 /home/testrunner/igt/lib/igt_debugfs.c:419
> > > > > igt_assert_crc_equal()
> > > > >   #2 /home/testrunner/igt/tests/kms_cursor_crc.c:213
> > > > > do_single_test()
> > > > >   #3 /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
> > > > >   #4 /home/testrunner/igt/tests/kms_cursor_crc.c:266
> > > > > test_crc_onscreen()
> > > > >   #5 /home/testrunner/igt/tests/kms_cursor_crc.c:433
> > > > > run_test.constprop.8()
> > > > >   #6 /home/testrunner/igt/tests/kms_cursor_crc.c:594
> > > > > run_test_generic.constprop.6()
> > > > >   #7 /home/testrunner/igt/tests/kms_cursor_crc.c:690
> > > > > __real_main656()
> > > > >   #8 /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
> > > > >   #9 ../csu/libc-start.c:344 __libc_start_main()
> > > > >   #10 [_start+0x2a]
> > > > > Subtest cursor-64x64-onscreen failed.
> > > > > **** DEBUG ****
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.2 "COLOR_ENCODING" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.2 "COLOR_RANGE" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe B, plane 3
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > > pipe B,
> > > > > plane 3, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.3 "rotation" to 0x1/1
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.3 "COLOR_ENCODING" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.3 "COLOR_RANGE" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe B, plane 4
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > > pipe B,
> > > > > plane 4, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.4 "rotation" to 0x1/1
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.4 "COLOR_ENCODING" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.4 "COLOR_RANGE" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe B, plane 5
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > > pipe B,
> > > > > plane 5, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.5 "rotation" to 0x1/1
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.5 "COLOR_ENCODING" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.5 "COLOR_RANGE" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe B, plane 6
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > > pipe B,
> > > > > plane 6, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.6 "rotation" to 0x1/1
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.6 "COLOR_ENCODING" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > B.6 "COLOR_RANGE" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe B, plane 7
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor
> > > > > pipe
> > > > > B, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor
> > > > > pipe
> > > > > B, (0, 0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe C, plane 0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCrtc pipe
> > > > > C,
> > > > > disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe C, plane 1
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > > pipe C,
> > > > > plane 1, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.1 "rotation" to 0x1/1
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.1 "COLOR_ENCODING" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.1 "COLOR_RANGE" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe C, plane 2
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > > pipe C,
> > > > > plane 2, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.2 "rotation" to 0x1/1
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.2 "COLOR_ENCODING" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.2 "COLOR_RANGE" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe C, plane 3
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > > pipe C,
> > > > > plane 3, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.3 "rotation" to 0x1/1
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.3 "COLOR_ENCODING" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.3 "COLOR_RANGE" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe C, plane 4
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > > pipe C,
> > > > > plane 4, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.4 "rotation" to 0x1/1
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.4 "COLOR_ENCODING" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.4 "COLOR_RANGE" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe C, plane 5
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > > pipe C,
> > > > > plane 5, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.5 "rotation" to 0x1/1
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.5 "COLOR_ENCODING" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.5 "COLOR_RANGE" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe C, plane 6
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetPlane
> > > > > pipe C,
> > > > > plane 6, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.6 "rotation" to 0x1/1
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.6 "COLOR_ENCODING" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetProp
> > > > > plane
> > > > > C.6 "COLOR_RANGE" to 0x0/0
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     Fixing up
> > > > > initial rotation pipe C, plane 7
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor
> > > > > pipe
> > > > > C, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor
> > > > > pipe
> > > > > C, (0, 0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > > > (kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs
> > > > > directory
> > > > > '/sys/kernel/debug/dri/0'
> > > > > (kms_cursor_crc:19282) igt-debugfs-DEBUG: Opening debugfs
> > > > > directory
> > > > > '/sys/kernel/debug/dri/0'
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > plane_set_fb(0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > plane_set_size
> > > > > (0x0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > fb_set_position(0,0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > fb_set_size(0x0)
> > > > > (kms_cursor_crc:19282) INFO: Beginning cursor-64x64-onscreen on
> > > > > pipe A, connector eDP-1
> > > > > (kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed:
> > > > > cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > plane_set_fb(227)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > plane_set_size
> > > > > (64x65)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > fb_set_position(0,0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > fb_set_size(64x65)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > plane_set_size
> > > > > (64x64)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > plane_set_position(0,0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor
> > > > > pipe
> > > > > A, fb 1 64x64
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     MoveCursor
> > > > > pipe
> > > > > A, (0, 0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: Test requirement passed:
> > > > > plane_idx >= 0 && plane_idx < pipe->n_planes
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > plane_set_fb(0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > plane_set_size
> > > > > (0x0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > fb_set_position(0,0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: A.7:
> > > > > fb_set_size(0x0)
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display:     SetCursor
> > > > > pipe
> > > > > A, disabling
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > > > (kms_cursor_crc:19282) igt-fb-DEBUG: Test requirement passed:
> > > > > cairo_surface_status(fb->cairo_surface) == CAIRO_STATUS_SUCCESS
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: commit {
> > > > > (kms_cursor_crc:19282) igt-kms-DEBUG: display: }
> > > > > (kms_cursor_crc:19282) igt-debugfs-DEBUG: CRC mismatch at index
> > > > > 0:
> > > > > 0x2e212a16 != 0x9245e25c
> > > > > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Test assertion
> > > > > failure
> > > > > function igt_assert_crc_equal, file igt_debugfs.c:419:
> > > > > (kms_cursor_crc:19282) igt-debugfs-CRITICAL: Failed assertion:
> > > > > !mismatch
> > > > > (kms_cursor_crc:19282) igt-core-INFO: Stack trace:
> > > > > (kms_cursor_crc:19282) igt-core-INFO:   #0
> > > > > /home/testrunner/igt/lib/igt_core.c:1472 __igt_fail_assert()
> > > > > (kms_cursor_crc:19282) igt-core-INFO:   #1
> > > > > /home/testrunner/igt/lib/igt_debugfs.c:419
> > > > > igt_assert_crc_equal()
> > > > > (kms_cursor_crc:19282) igt-core-INFO:   #2
> > > > > /home/testrunner/igt/tests/kms_cursor_crc.c:213
> > > > > do_single_test()
> > > > > (kms_cursor_crc:19282) igt-core-INFO:   #3
> > > > > /home/testrunner/igt/tests/kms_cursor_crc.c:248 do_test()
> > > > > (kms_cursor_crc:19282) igt-core-INFO:   #4
> > > > > /home/testrunner/igt/tests/kms_cursor_crc.c:266
> > > > > test_crc_onscreen()
> > > > > (kms_cursor_crc:19282) igt-core-INFO:   #5
> > > > > /home/testrunner/igt/tests/kms_cursor_crc.c:433
> > > > > run_test.constprop.8()
> > > > > (kms_cursor_crc:19282) igt-core-INFO:   #6
> > > > > /home/testrunner/igt/tests/kms_cursor_crc.c:594
> > > > > run_test_generic.constprop.6()
> > > > > (kms_cursor_crc:19282) igt-core-INFO:   #7
> > > > > /home/testrunner/igt/tests/kms_cursor_crc.c:690
> > > > > __real_main656()
> > > > > (kms_cursor_crc:19282) igt-core-INFO:   #8
> > > > > /home/testrunner/igt/tests/kms_cursor_crc.c:656 main()
> > > > > (kms_cursor_crc:19282) igt-core-INFO:   #9 ../csu/libc-
> > > > > start.c:344
> > > > > __libc_start_main()
> > > > > (kms_cursor_crc:19282) igt-core-INFO:   #10 [_start+0x2a]
> > > > > ****  END  ****
> > > > >
> > > > > v2: Stop collecting crc's after test completion
> > > > >
> > > > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103232
> > > > > Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> > > >
> > > > If this indeed fixes crc collection, or at least greatly improves
> > > > it,
> > > > then we need this w/a in the kernel, not userspace. A possible
> > > > implementation idea:
> > > > - Don't disable crc for icl (maybe also gen9+, these crc issues
> > > > are
> > > > that old) when userspace asks for it, just disable crc reporting
> > > > using
> > > > some per-crtc boolean.
> > > > - When re-enabling the crc collection with the same config, just
> > > > clear
> > > > the buffer (to make sure) and then succeed.
> > > > - Insert a pile of waits every time we enable crc for the first
> > > > time,
> > > > to get the same effect.
> > > >
> > > > We can't add these hacks to all the testcases to work around
> > > > issues
> > > > on
> > > > one specific platform. The kernel's debugfs abstraction should
> > > > take
> > > > care of this. A quick hack to remove the crc disabling and clear
> > > > the
> > > > crc buffer on re-enabling should be all you need to prove this
> > > > (it'll
> > > > result in some noise due to crc buffer overruns, and it might
> > > > anger
> > > > the hw because of the reprogramming, but I don't expect that).
> > > >
> > > > Another thing that I think we need to debug this: Better fifo
> > > > underrun
> > > > reporting statistics. Currently fifo underruns are single-shot,
> > > > see:
> > > >
> > > >
> > >
> > >
> https://dri.freedesktop.org/docs/drm/gpu/i915.html#display-fifo-underrun-reporting
> > > >
> > > > First step would be a debug option (module or debugfs or
> > > > whatever) to
> > > > disable the fifo underrun reporting after the first error. That
> > > > way
> > > > we
> > > > can measure whether things get better or worse if something
> > > > changes,
> > > > atm we only have a binary answer (and hence no way to tell
> > > > whether
> > > > we're moving forward). This is for all the cases where fifo
> > > > underruns
> > > > come together with CRC mismatches. Long-term we probably want
> > > > some
> > > > basic statistics (report the # of fifo underruns per second),
> > > > plus a
> > > > failsafe to disable the fifo underrun if that number is too high
> > > > and
> > > > we're just hogging the cpu. More than 10k interrupts/s is
> > > > probably
> > > > too
> > > > much, even for debugging.
> > > > -Daniel
> > >
> > > With this approach it turned out that this works only for skl+
> > > platforms. Older gens would need original way of crc collection. It
> > > puzzles me a bit how two different approaches, which ultimately
> > > should
> > > produce the same outcome, actually behaves differently. I think
> > > this
> > > patch would propably just hide the real issue in kernel and we need
> > > to
> > > dig deeper.
> >
> > Yeah, my suggestion would be that if we indeed need this for skl+,
> > then we
> > should do it in-kernel, but _only_ for skl+ crc support. And leave
> > the
> > current crc support for older platforms unchanged.
> >
> > Also yeah I'm baffled that this would break crc for older machines
> > ... do
> > you have examples?
>
> Well, I managed to trigger it once on my hsw with the test
>
> kms_cursor_crc --run-subtest cursor-64x64x-onscreen.
>
> Now, when I'm trying to trigger it again to get the dmesg of a failing
> test, I'm unable to do so.
>
> CI runs with this patch set were clean. Because of this earlier mishap,
> I was left with the doubt that we shouldn't do this for older
> platforms.
>
> >
> > > Like you said, let's go back on debugging the kernel. I will try to
> > > change the fifo underrun reporting to something else than single-
> > > shot.
> > > I faintly remember that we did this single-shot approach to
> > > minimize
> > > the noise in dmesg.
> > >
> > > Thanks for useful tips and hints!
> >
> > I think with all these crc/fifo underrun issues first step is to get
> > better data (we seem to be running around blind), hence the
> > suggestion to
> > resurrect the fifo underrun statistics. Iirc our intel cros team has
> > hacked something like this together already for improving the skl wm
> > way
> > back when skl was dying constantly because of fifo underruns.
> Do they have patches available for this that could be shared?

I couldn't find them anymore, but it amounted to not disabling fifo
underrun reporting every time we hit a fifo underrun. Shouldn't be
much work to recreate that one.
-Daniel

>
> > -Daniel
> >
> > >
> > > Cheers,
> > > Mika
> > >
> > > >
> > > >
> > > > > ---
> > > > >  tests/kms_cursor_crc.c | 8 +++++---
> > > > >  1 file changed, 5 insertions(+), 3 deletions(-)
> > > > >
> > > > > diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> > > > > index 1514e7f2..83dbe0b7 100644
> > > > > --- a/tests/kms_cursor_crc.c
> > > > > +++ b/tests/kms_cursor_crc.c
> > > > > @@ -172,7 +172,8 @@ static void do_single_test(data_t *data,
> > > > > int x,
> > > > > int y)
> > > > >         igt_display_commit(display);
> > > > >
> > > > >         igt_wait_for_vblank(data->drm_fd, data->pipe);
> > > > > -       igt_pipe_crc_collect_crc(pipe_crc, &crc);
> > > > > +       igt_pipe_crc_start(pipe_crc);
> > > > > +       igt_pipe_crc_get_single(pipe_crc, &crc);
> > > > >
> > > > >         if (data->flags & (TEST_DPMS | TEST_SUSPEND)) {
> > > > >                 igt_crc_t crc_after;
> > > > > @@ -191,7 +192,7 @@ static void do_single_test(data_t *data,
> > > > > int x,
> > > > > int y)
> > > > >                         igt_system_suspend_autoresume(SUSPEND_S
> > > > > TATE
> > > > > _MEM,
> > > > >                                                       SUSPEND_T
> > > > > EST_
> > > > > NONE);
> > > > >
> > > > > -               igt_pipe_crc_collect_crc(pipe_crc, &crc_after);
> > > > > +               igt_pipe_crc_get_current(data->drm_fd,
> > > > > pipe_crc,
> > > > > &crc_after);
> > > > >                 igt_assert_crc_equal(&crc, &crc_after);
> > > > >         }
> > > > >
> > > > > @@ -205,8 +206,9 @@ static void do_single_test(data_t *data,
> > > > > int x,
> > > > > int y)
> > > > >         igt_display_commit(display);
> > > > >
> > > > >         igt_wait_for_vblank(data->drm_fd, data->pipe);
> > > > > -       igt_pipe_crc_collect_crc(pipe_crc, &ref_crc);
> > > > > +       igt_pipe_crc_get_current(data->drm_fd, pipe_crc,
> > > > > &ref_crc);
> > > > >         igt_assert_crc_equal(&crc, &ref_crc);
> > > > > +       igt_pipe_crc_stop(pipe_crc);
> > > > >
> > > > >         /* Clear screen afterwards */
> > > > >         cr = igt_get_cairo_ctx(data->drm_fd, &data-
> > > > > >primary_fb);
> > > > > --
> > > > > 2.17.1
> > > > >
> > > > > _______________________________________________
> > > > > igt-dev mailing list
> > > > > igt-dev@lists.freedesktop.org
> > > > > https://lists.freedesktop.org/mailman/listinfo/igt-dev
> > > >
> > > >
> > > >
> >
> >



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2019-01-22 14:08 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-10 12:51 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_cursor_crc: Change crc collection Mika Kahola
2019-01-10 12:51 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_cursor_crc: Change the way we collect crc's Mika Kahola
2019-01-22  9:20   ` Daniel Vetter
2019-01-22 10:45     ` Kahola, Mika
2019-01-22 13:20       ` Daniel Vetter
2019-01-22 13:53         ` Kahola, Mika
2019-01-22 14:08           ` Daniel Vetter
2019-01-10 12:51 ` [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_cursor_crc: Remove unnecessary waits for vblank Mika Kahola
2019-01-10 13:22 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Change crc collection (rev3) Patchwork
2019-01-10 18:24 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2019-01-11 10:02 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_cursor_crc: Change crc collection (rev4) Patchwork
2019-01-11 16:02 ` [igt-dev] ✗ Fi.CI.IGT: failure " 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.