* [PATCH i-g-t] kms_atomic_transition: Split out modeset tests on internal panels
@ 2017-11-02 13:38 Imre Deak
2017-11-02 15:56 ` ✓ Fi.CI.BAT: success for " Patchwork
` (6 more replies)
0 siblings, 7 replies; 12+ messages in thread
From: Imre Deak @ 2017-11-02 13:38 UTC (permalink / raw)
To: intel-gfx
Doing modeset on internal panels may have a considerable overhead due to
the panel specific power sequencing delays. To avoid long test runtimes
in the CI fast-feedback test split out the testing of internal panels
from the plane modeset subtests. Create fast and slow versions of these
new subtests. In the fast one only combinations with all enabled, all
planes disabled or a single plane enable are tested. In the slow one all
plane combinations are tested.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103334
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
tests/kms_atomic_transition.c | 64 ++++++++++++++++++++++++++++++++++++++++---
1 file changed, 60 insertions(+), 4 deletions(-)
diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index 4c295125..c27e48e1 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -189,6 +189,7 @@ enum transition_type {
TRANSITION_PLANES,
TRANSITION_AFTER_FREE,
TRANSITION_MODESET,
+ TRANSITION_MODESET_PLANES_FAST,
TRANSITION_MODESET_DISABLE,
};
@@ -528,6 +529,10 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
}
for (i = 0; i < iter_max; i++) {
+ if (type == TRANSITION_MODESET_PLANES_FAST &&
+ hweight32(i) != 1 && hweight32(i) != pipe_obj->n_planes)
+ continue;
+
igt_output_set_pipe(output, pipe);
wm_setup_plane(display, pipe, i, parms, fencing);
@@ -547,16 +552,20 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
/* i -> i+1 will be done when i increases, can be skipped here */
for (j = iter_max - 1; j > i + 1; j--) {
+ if (type == TRANSITION_MODESET_PLANES_FAST &&
+ hweight32(j) != 1 && hweight32(j) != pipe_obj->n_planes)
+ continue;
+
wm_setup_plane(display, pipe, j, parms, fencing);
- if (type == TRANSITION_MODESET)
+ if (type >= TRANSITION_MODESET)
igt_output_override_mode(output, &override_mode);
atomic_commit(display, pipe, flags, (void *)(unsigned long) j, fencing);
wait_for_transition(display, pipe, nonblocking, fencing);
wm_setup_plane(display, pipe, i, parms, fencing);
- if (type == TRANSITION_MODESET)
+ if (type >= TRANSITION_MODESET)
igt_output_override_mode(output, NULL);
atomic_commit(display, pipe, flags, (void *)(unsigned long) i, fencing);
@@ -864,6 +873,19 @@ static void run_modeset_transition(igt_display_t *display, int requested_outputs
run_modeset_tests(display, requested_outputs, nonblocking, fencing);
}
+static bool output_is_internal_panel(igt_output_t *output)
+{
+ switch (output->config.connector->connector_type) {
+ case DRM_MODE_CONNECTOR_LVDS:
+ case DRM_MODE_CONNECTOR_eDP:
+ case DRM_MODE_CONNECTOR_DSI:
+ case DRM_MODE_CONNECTOR_DPI:
+ return true;
+ default:
+ return false;
+ }
+}
+
igt_main
{
igt_display_t display;
@@ -914,12 +936,46 @@ igt_main
run_transition_test(&display, pipe, output, TRANSITION_AFTER_FREE, true, true);
igt_subtest("plane-all-modeset-transition")
- for_each_pipe_with_valid_output(&display, pipe, output)
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (output_is_internal_panel(output))
+ continue;
run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, false);
+ }
igt_subtest("plane-all-modeset-transition-fencing")
- for_each_pipe_with_valid_output(&display, pipe, output)
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (output_is_internal_panel(output))
+ continue;
run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, true);
+ }
+
+ igt_subtest("plane-all-modeset-transition-internal-panels-fast")
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (!output_is_internal_panel(output))
+ continue;
+ run_transition_test(&display, pipe, output, TRANSITION_MODESET_PLANES_FAST, false, false);
+ }
+
+ igt_subtest("plane-all-modeset-transition-fencing-internal-panels-fast")
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (!output_is_internal_panel(output))
+ continue;
+ run_transition_test(&display, pipe, output, TRANSITION_MODESET_PLANES_FAST, false, true);
+ }
+
+ igt_subtest("plane-all-modeset-transition-internal-panels-slow")
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (!output_is_internal_panel(output))
+ continue;
+ run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, false);
+ }
+
+ igt_subtest("plane-all-modeset-transition-fencing-internal-panels-slow")
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (!output_is_internal_panel(output))
+ continue;
+ run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, true);
+ }
igt_subtest("plane-toggle-modeset-transition")
for_each_pipe_with_valid_output(&display, pipe, output)
--
2.11.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 12+ messages in thread
* ✓ Fi.CI.BAT: success for kms_atomic_transition: Split out modeset tests on internal panels
2017-11-02 13:38 [PATCH i-g-t] kms_atomic_transition: Split out modeset tests on internal panels Imre Deak
@ 2017-11-02 15:56 ` Patchwork
2017-11-02 17:09 ` ✗ Fi.CI.IGT: warning " Patchwork
` (5 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2017-11-02 15:56 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: kms_atomic_transition: Split out modeset tests on internal panels
URL : https://patchwork.freedesktop.org/series/33052/
State : success
== Summary ==
IGT patchset tested on top of latest successful build
6d16875736b9fb1ebf4bf3dc5a941f9e431d58e0 lib/igt_debugfs: Remove support for legacy CRC api.
with latest DRM-Tip kernel build CI_DRM_3309
fca2506bc5d4 drm-tip: 2017y-11m-02d-13h-10m-58s UTC integration manifest
Testlist changes:
+igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels-fast
+igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels-slow
+igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels-fast
+igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels-slow
Test chamelium:
Subgroup dp-crc-fast:
fail -> PASS (fi-kbl-7500u) fdo#102514
Test kms_cursor_legacy:
Subgroup basic-flip-before-cursor-varying-size:
skip -> PASS (fi-hsw-4770r)
Test kms_pipe_crc_basic:
Subgroup nonblocking-crc-pipe-a-frame-sequence:
dmesg-warn -> PASS (fi-skl-6700k) fdo#103546 +1
fdo#102514 https://bugs.freedesktop.org/show_bug.cgi?id=102514
fdo#103546 https://bugs.freedesktop.org/show_bug.cgi?id=103546
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:446s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:461s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:380s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:554s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:277s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:508s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:504s
fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:513s
fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:491s
fi-cfl-s total:289 pass:253 dwarn:4 dfail:0 fail:0 skip:32 time:551s
fi-cnl-y total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:635s
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:431s
fi-gdg-551 total:289 pass:178 dwarn:1 dfail:0 fail:1 skip:109 time:263s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:594s
fi-glk-dsi total:289 pass:258 dwarn:0 dfail:0 fail:1 skip:30 time:497s
fi-hsw-4770 total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:435s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:429s
fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:430s
fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:499s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:464s
fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:488s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:575s
fi-kbl-7567u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:481s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:585s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:574s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:453s
fi-skl-6600u total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:601s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:649s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:521s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:499s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:464s
fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:577s
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:434s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_468/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* ✗ Fi.CI.IGT: warning for kms_atomic_transition: Split out modeset tests on internal panels
2017-11-02 13:38 [PATCH i-g-t] kms_atomic_transition: Split out modeset tests on internal panels Imre Deak
2017-11-02 15:56 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2017-11-02 17:09 ` Patchwork
2017-11-02 17:12 ` [PATCH i-g-t] " Chris Wilson
` (4 subsequent siblings)
6 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2017-11-02 17:09 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: kms_atomic_transition: Split out modeset tests on internal panels
URL : https://patchwork.freedesktop.org/series/33052/
State : warning
== Summary ==
Test kms_setmode:
Subgroup basic:
pass -> FAIL (shard-hsw) fdo#99912
Test kms_atomic_transition:
Subgroup 1x-modeset-transitions-nonblocking:
pass -> DMESG-WARN (shard-hsw)
Test drv_module_reload:
Subgroup basic-reload:
dmesg-warn -> PASS (shard-hsw) fdo#102707
Test kms_busy:
Subgroup extended-modeset-hang-oldfb-with-reset-render-A:
dmesg-warn -> PASS (shard-hsw)
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
fdo#102707 https://bugs.freedesktop.org/show_bug.cgi?id=102707
shard-hsw total:2543 pass:1436 dwarn:1 dfail:0 fail:9 skip:1097 time:9266s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_468/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH i-g-t] kms_atomic_transition: Split out modeset tests on internal panels
2017-11-02 13:38 [PATCH i-g-t] kms_atomic_transition: Split out modeset tests on internal panels Imre Deak
2017-11-02 15:56 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-11-02 17:09 ` ✗ Fi.CI.IGT: warning " Patchwork
@ 2017-11-02 17:12 ` Chris Wilson
2017-11-03 9:21 ` Imre Deak
2017-11-03 13:27 ` [PATCH i-g-t v2] " Imre Deak
` (3 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Chris Wilson @ 2017-11-02 17:12 UTC (permalink / raw)
To: Imre Deak, intel-gfx
Quoting Imre Deak (2017-11-02 13:38:09)
> Doing modeset on internal panels may have a considerable overhead due to
> the panel specific power sequencing delays. To avoid long test runtimes
> in the CI fast-feedback test split out the testing of internal panels
> from the plane modeset subtests. Create fast and slow versions of these
> new subtests. In the fast one only combinations with all enabled, all
> planes disabled or a single plane enable are tested. In the slow one all
> plane combinations are tested.
> @@ -528,6 +529,10 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
> }
>
> for (i = 0; i < iter_max; i++) {
> + if (type == TRANSITION_MODESET_PLANES_FAST &&
> + hweight32(i) != 1 && hweight32(i) != pipe_obj->n_planes)
So reduce number of iterations to a power of two, and only operate if
pipe_obj->n_planes == 1
Why repeat hweight32(i) when you've already proved it is 1? That reads
very fishily.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH i-g-t] kms_atomic_transition: Split out modeset tests on internal panels
2017-11-02 17:12 ` [PATCH i-g-t] " Chris Wilson
@ 2017-11-03 9:21 ` Imre Deak
0 siblings, 0 replies; 12+ messages in thread
From: Imre Deak @ 2017-11-03 9:21 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
On Thu, Nov 02, 2017 at 05:12:56PM +0000, Chris Wilson wrote:
> Quoting Imre Deak (2017-11-02 13:38:09)
> > Doing modeset on internal panels may have a considerable overhead due to
> > the panel specific power sequencing delays. To avoid long test runtimes
> > in the CI fast-feedback test split out the testing of internal panels
> > from the plane modeset subtests. Create fast and slow versions of these
> > new subtests. In the fast one only combinations with all enabled, all
> > planes disabled or a single plane enable are tested. In the slow one all
> > plane combinations are tested.
>
> > @@ -528,6 +529,10 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
> > }
> >
> > for (i = 0; i < iter_max; i++) {
> > + if (type == TRANSITION_MODESET_PLANES_FAST &&
> > + hweight32(i) != 1 && hweight32(i) != pipe_obj->n_planes)
>
> So reduce number of iterations to a power of two, and only operate if
> pipe_obj->n_planes == 1
>
> Why repeat hweight32(i) when you've already proved it is 1? That reads
> very fishily.
I wanted to test only combinations where either only one plane is
enabled or all planes are enabled. How about adding
int n_enabled_planes = hweight32(i);
and checking that instead to make things clearer?
--Imre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH i-g-t v2] kms_atomic_transition: Split out modeset tests on internal panels
2017-11-02 13:38 [PATCH i-g-t] kms_atomic_transition: Split out modeset tests on internal panels Imre Deak
` (2 preceding siblings ...)
2017-11-02 17:12 ` [PATCH i-g-t] " Chris Wilson
@ 2017-11-03 13:27 ` Imre Deak
2017-11-08 19:33 ` [PATCH i-g-t v3] " Imre Deak
2017-11-03 15:34 ` ✓ Fi.CI.BAT: success for kms_atomic_transition: Split out modeset tests on internal panels (rev2) Patchwork
` (2 subsequent siblings)
6 siblings, 1 reply; 12+ messages in thread
From: Imre Deak @ 2017-11-03 13:27 UTC (permalink / raw)
To: intel-gfx
Doing modeset on internal panels may have a considerable overhead due to
the panel specific power sequencing delays. To avoid long test runtimes
in CI split out the testing of internal panels from the plane modeset
subtests and test only a reduced number of plane combinations on these:
where only a single plane is enabled or all planes are enabled.
v2:
- Add code comment explaining the need for the separate internal-panels
subtests.
- Calculate the number of enabled planes only once. (Chris)
- Disable the slow internal-panels subtests testing all combinations.
(Petri)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103334
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
tests/kms_atomic_transition.c | 61 ++++++++++++++++++++++++++++++++++++++++---
1 file changed, 57 insertions(+), 4 deletions(-)
diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index 4c295125..c57a9356 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -189,6 +189,7 @@ enum transition_type {
TRANSITION_PLANES,
TRANSITION_AFTER_FREE,
TRANSITION_MODESET,
+ TRANSITION_MODESET_FAST,
TRANSITION_MODESET_DISABLE,
};
@@ -528,6 +529,13 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
}
for (i = 0; i < iter_max; i++) {
+ int n_enable_planes = hweight32(i);
+
+ if (type == TRANSITION_MODESET_FAST &&
+ n_enable_planes != 1 &&
+ n_enable_planes != pipe_obj->n_planes)
+ continue;
+
igt_output_set_pipe(output, pipe);
wm_setup_plane(display, pipe, i, parms, fencing);
@@ -547,16 +555,23 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
/* i -> i+1 will be done when i increases, can be skipped here */
for (j = iter_max - 1; j > i + 1; j--) {
+ n_enable_planes = hweight32(j);
+
+ if (type == TRANSITION_MODESET_FAST &&
+ n_enable_planes != 1 &&
+ n_enable_planes != pipe_obj->n_planes)
+ continue;
+
wm_setup_plane(display, pipe, j, parms, fencing);
- if (type == TRANSITION_MODESET)
+ if (type >= TRANSITION_MODESET)
igt_output_override_mode(output, &override_mode);
atomic_commit(display, pipe, flags, (void *)(unsigned long) j, fencing);
wait_for_transition(display, pipe, nonblocking, fencing);
wm_setup_plane(display, pipe, i, parms, fencing);
- if (type == TRANSITION_MODESET)
+ if (type >= TRANSITION_MODESET)
igt_output_override_mode(output, NULL);
atomic_commit(display, pipe, flags, (void *)(unsigned long) i, fencing);
@@ -864,6 +879,19 @@ static void run_modeset_transition(igt_display_t *display, int requested_outputs
run_modeset_tests(display, requested_outputs, nonblocking, fencing);
}
+static bool output_is_internal_panel(igt_output_t *output)
+{
+ switch (output->config.connector->connector_type) {
+ case DRM_MODE_CONNECTOR_LVDS:
+ case DRM_MODE_CONNECTOR_eDP:
+ case DRM_MODE_CONNECTOR_DSI:
+ case DRM_MODE_CONNECTOR_DPI:
+ return true;
+ default:
+ return false;
+ }
+}
+
igt_main
{
igt_display_t display;
@@ -913,13 +941,38 @@ igt_main
for_each_pipe_with_valid_output(&display, pipe, output)
run_transition_test(&display, pipe, output, TRANSITION_AFTER_FREE, true, true);
+ /*
+ * Test modeset cases on internal panels separately with a reduced
+ * number of combinations, to avoid long runtimes due to modesets on
+ * panels with long power cycle delays.
+ */
igt_subtest("plane-all-modeset-transition")
- for_each_pipe_with_valid_output(&display, pipe, output)
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (output_is_internal_panel(output))
+ continue;
run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, false);
+ }
igt_subtest("plane-all-modeset-transition-fencing")
- for_each_pipe_with_valid_output(&display, pipe, output)
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (output_is_internal_panel(output))
+ continue;
run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, true);
+ }
+
+ igt_subtest("plane-all-modeset-transition-internal-panels")
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (!output_is_internal_panel(output))
+ continue;
+ run_transition_test(&display, pipe, output, TRANSITION_MODESET_FAST, false, false);
+ }
+
+ igt_subtest("plane-all-modeset-transition-fencing-internal-panels")
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (!output_is_internal_panel(output))
+ continue;
+ run_transition_test(&display, pipe, output, TRANSITION_MODESET_FAST, false, true);
+ }
igt_subtest("plane-toggle-modeset-transition")
for_each_pipe_with_valid_output(&display, pipe, output)
--
2.13.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 12+ messages in thread
* ✓ Fi.CI.BAT: success for kms_atomic_transition: Split out modeset tests on internal panels (rev2)
2017-11-02 13:38 [PATCH i-g-t] kms_atomic_transition: Split out modeset tests on internal panels Imre Deak
` (3 preceding siblings ...)
2017-11-03 13:27 ` [PATCH i-g-t v2] " Imre Deak
@ 2017-11-03 15:34 ` Patchwork
2017-11-03 18:12 ` ✗ Fi.CI.IGT: failure " Patchwork
2017-11-08 20:53 ` ✗ Fi.CI.BAT: failure for kms_atomic_transition: Split out modeset tests on internal panels (rev3) Patchwork
6 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2017-11-03 15:34 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: kms_atomic_transition: Split out modeset tests on internal panels (rev2)
URL : https://patchwork.freedesktop.org/series/33052/
State : success
== Summary ==
IGT patchset tested on top of latest successful build
c8d1ea24d3bfaf11b223bbe22407aeca196d0d89 tests/debugfs_test: Pretty print subdirectories
with latest DRM-Tip kernel build CI_DRM_3312
de359919ae46 drm-tip: 2017y-11m-03d-14h-00m-37s UTC integration manifest
Testlist changes:
+igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels
+igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels
Test gem_exec_flush:
Subgroup basic-wb-set-default:
incomplete -> PASS (fi-glk-dsi)
Test gem_exec_reloc:
Subgroup basic-write-gtt-active:
fail -> PASS (fi-gdg-551) fdo#102582
Test kms_busy:
Subgroup basic-flip-b:
fail -> PASS (fi-bwr-2160)
Test drv_module_reload:
Subgroup basic-no-display:
fail -> PASS (fi-hsw-4770r) fdo#103534
fdo#102582 https://bugs.freedesktop.org/show_bug.cgi?id=102582
fdo#103534 https://bugs.freedesktop.org/show_bug.cgi?id=103534
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:446s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:467s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:383s
fi-bsw-n3050 total:289 pass:243 dwarn:0 dfail:0 fail:0 skip:46 time:552s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:278s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:502s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:504s
fi-byt-j1900 total:289 pass:253 dwarn:1 dfail:0 fail:0 skip:35 time:507s
fi-byt-n2820 total:289 pass:249 dwarn:1 dfail:0 fail:0 skip:39 time:496s
fi-cfl-s total:289 pass:254 dwarn:3 dfail:0 fail:0 skip:32 time:555s
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:427s
fi-gdg-551 total:289 pass:178 dwarn:1 dfail:0 fail:1 skip:109 time:266s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:592s
fi-glk-dsi total:289 pass:258 dwarn:0 dfail:0 fail:1 skip:30 time:497s
fi-hsw-4770 total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:432s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:434s
fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:425s
fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:500s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:462s
fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:496s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:578s
fi-kbl-7567u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:476s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:576s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:577s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:457s
fi-skl-6600u total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:595s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:652s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:526s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:510s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:461s
fi-snb-2520m total:289 pass:250 dwarn:0 dfail:0 fail:0 skip:39 time:575s
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:434s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_474/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* ✗ Fi.CI.IGT: failure for kms_atomic_transition: Split out modeset tests on internal panels (rev2)
2017-11-02 13:38 [PATCH i-g-t] kms_atomic_transition: Split out modeset tests on internal panels Imre Deak
` (4 preceding siblings ...)
2017-11-03 15:34 ` ✓ Fi.CI.BAT: success for kms_atomic_transition: Split out modeset tests on internal panels (rev2) Patchwork
@ 2017-11-03 18:12 ` Patchwork
2017-11-08 20:53 ` ✗ Fi.CI.BAT: failure for kms_atomic_transition: Split out modeset tests on internal panels (rev3) Patchwork
6 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2017-11-03 18:12 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: kms_atomic_transition: Split out modeset tests on internal panels (rev2)
URL : https://patchwork.freedesktop.org/series/33052/
State : failure
== Summary ==
Test kms_busy:
Subgroup extended-modeset-hang-newfb-with-reset-render-B:
pass -> DMESG-WARN (shard-hsw)
Subgroup extended-modeset-hang-oldfb-with-reset-render-C:
pass -> DMESG-WARN (shard-hsw)
Test kms_setmode:
Subgroup basic:
fail -> PASS (shard-hsw) fdo#99912
Test drv_suspend:
Subgroup fence-restore-untiled-hibernate:
dmesg-fail -> FAIL (shard-hsw) fdo#103375
Subgroup debugfs-reader:
pass -> INCOMPLETE (shard-hsw)
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
shard-hsw total:2492 pass:1408 dwarn:2 dfail:0 fail:8 skip:1073 time:9100s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_474/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH i-g-t v3] kms_atomic_transition: Split out modeset tests on internal panels
2017-11-03 13:27 ` [PATCH i-g-t v2] " Imre Deak
@ 2017-11-08 19:33 ` Imre Deak
2017-11-09 8:03 ` Maarten Lankhorst
0 siblings, 1 reply; 12+ messages in thread
From: Imre Deak @ 2017-11-08 19:33 UTC (permalink / raw)
To: intel-gfx
Doing modeset on internal panels may have a considerable overhead due to
the panel specific power sequencing delays. To avoid long test runtimes
in CI split out the testing of internal panels from the plane modeset
subtests and test only a reduced number of plane combinations on these:
where only a single plane is enabled, all planes are disabled or all
planes are enabled.
v2:
- Add code comment explaining the need for the separate internal-panels
subtests.
- Calculate the number of enabled planes only once. (Chris)
- Disable the slow internal-panels subtests testing all combinations.
(Petri)
v3: (Maarten)
- Skip the internal-panels subtests if no internal panels are found.
- Also test transitions with all planes disabled.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103334
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
tests/kms_atomic_transition.c | 71 ++++++++++++++++++++++++++++++++++++++++---
1 file changed, 67 insertions(+), 4 deletions(-)
diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index 4c295125..54581ed7 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -189,6 +189,7 @@ enum transition_type {
TRANSITION_PLANES,
TRANSITION_AFTER_FREE,
TRANSITION_MODESET,
+ TRANSITION_MODESET_FAST,
TRANSITION_MODESET_DISABLE,
};
@@ -528,6 +529,13 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
}
for (i = 0; i < iter_max; i++) {
+ int n_enable_planes = hweight32(i);
+
+ if (type == TRANSITION_MODESET_FAST &&
+ n_enable_planes > 1 &&
+ n_enable_planes < pipe_obj->n_planes)
+ continue;
+
igt_output_set_pipe(output, pipe);
wm_setup_plane(display, pipe, i, parms, fencing);
@@ -547,16 +555,23 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
/* i -> i+1 will be done when i increases, can be skipped here */
for (j = iter_max - 1; j > i + 1; j--) {
+ n_enable_planes = hweight32(j);
+
+ if (type == TRANSITION_MODESET_FAST &&
+ n_enable_planes > 1 &&
+ n_enable_planes < pipe_obj->n_planes)
+ continue;
+
wm_setup_plane(display, pipe, j, parms, fencing);
- if (type == TRANSITION_MODESET)
+ if (type >= TRANSITION_MODESET)
igt_output_override_mode(output, &override_mode);
atomic_commit(display, pipe, flags, (void *)(unsigned long) j, fencing);
wait_for_transition(display, pipe, nonblocking, fencing);
wm_setup_plane(display, pipe, i, parms, fencing);
- if (type == TRANSITION_MODESET)
+ if (type >= TRANSITION_MODESET)
igt_output_override_mode(output, NULL);
atomic_commit(display, pipe, flags, (void *)(unsigned long) i, fencing);
@@ -864,6 +879,19 @@ static void run_modeset_transition(igt_display_t *display, int requested_outputs
run_modeset_tests(display, requested_outputs, nonblocking, fencing);
}
+static bool output_is_internal_panel(igt_output_t *output)
+{
+ switch (output->config.connector->connector_type) {
+ case DRM_MODE_CONNECTOR_LVDS:
+ case DRM_MODE_CONNECTOR_eDP:
+ case DRM_MODE_CONNECTOR_DSI:
+ case DRM_MODE_CONNECTOR_DPI:
+ return true;
+ default:
+ return false;
+ }
+}
+
igt_main
{
igt_display_t display;
@@ -913,13 +941,48 @@ igt_main
for_each_pipe_with_valid_output(&display, pipe, output)
run_transition_test(&display, pipe, output, TRANSITION_AFTER_FREE, true, true);
+ /*
+ * Test modeset cases on internal panels separately with a reduced
+ * number of combinations, to avoid long runtimes due to modesets on
+ * panels with long power cycle delays.
+ */
igt_subtest("plane-all-modeset-transition")
- for_each_pipe_with_valid_output(&display, pipe, output)
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (output_is_internal_panel(output))
+ continue;
run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, false);
+ }
igt_subtest("plane-all-modeset-transition-fencing")
- for_each_pipe_with_valid_output(&display, pipe, output)
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (output_is_internal_panel(output))
+ continue;
run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, true);
+ }
+
+ igt_subtest("plane-all-modeset-transition-internal-panels") {
+ int tested = 0;
+
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (!output_is_internal_panel(output))
+ continue;
+ run_transition_test(&display, pipe, output, TRANSITION_MODESET_FAST, false, false);
+ tested++;
+ }
+ igt_skip_on_f(!tested, "No output with internal panel found\n");
+ }
+
+ igt_subtest("plane-all-modeset-transition-fencing-internal-panels") {
+ int tested = 0;
+
+ for_each_pipe_with_valid_output(&display, pipe, output) {
+ if (!output_is_internal_panel(output))
+ continue;
+ run_transition_test(&display, pipe, output, TRANSITION_MODESET_FAST, false, true);
+ tested++;
+ }
+ igt_skip_on_f(!tested, "No output with internal panel found\n");
+ }
igt_subtest("plane-toggle-modeset-transition")
for_each_pipe_with_valid_output(&display, pipe, output)
--
2.13.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 12+ messages in thread
* ✗ Fi.CI.BAT: failure for kms_atomic_transition: Split out modeset tests on internal panels (rev3)
2017-11-02 13:38 [PATCH i-g-t] kms_atomic_transition: Split out modeset tests on internal panels Imre Deak
` (5 preceding siblings ...)
2017-11-03 18:12 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2017-11-08 20:53 ` Patchwork
6 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2017-11-08 20:53 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: kms_atomic_transition: Split out modeset tests on internal panels (rev3)
URL : https://patchwork.freedesktop.org/series/33052/
State : failure
== Summary ==
IGT patchset tested on top of latest successful build
9fe5a9a3de9e2ce345d5967a1e10a9a586b19836 tests/kms_fbcon_fbt: Report fbc_status on error
with latest DRM-Tip kernel build CI_DRM_3322
d284738777d7 drm-tip: 2017y-11m-08d-17h-36m-01s UTC integration manifest
Testlist changes:
+igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels
+igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels
Test chamelium:
Subgroup dp-crc-fast:
fail -> PASS (fi-kbl-7500u) fdo#102514
Test gem_mmap_gtt:
Subgroup basic-wc:
pass -> DMESG-WARN (fi-bsw-n3050)
Test kms_cursor_legacy:
Subgroup basic-busy-flip-before-cursor-legacy:
fail -> PASS (fi-gdg-551) fdo#102618
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass -> INCOMPLETE (fi-snb-2520m)
fdo#102514 https://bugs.freedesktop.org/show_bug.cgi?id=102514
fdo#102618 https://bugs.freedesktop.org/show_bug.cgi?id=102618
fi-bdw-5557u total:289 pass:268 dwarn:0 dfail:0 fail:0 skip:21 time:451s
fi-bdw-gvtdvm total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:462s
fi-blb-e6850 total:289 pass:223 dwarn:1 dfail:0 fail:0 skip:65 time:384s
fi-bsw-n3050 total:289 pass:242 dwarn:1 dfail:0 fail:0 skip:46 time:545s
fi-bwr-2160 total:289 pass:183 dwarn:0 dfail:0 fail:0 skip:106 time:275s
fi-bxt-dsi total:289 pass:259 dwarn:0 dfail:0 fail:0 skip:30 time:508s
fi-bxt-j4205 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:518s
fi-byt-j1900 total:289 pass:254 dwarn:0 dfail:0 fail:0 skip:35 time:506s
fi-elk-e7500 total:289 pass:229 dwarn:0 dfail:0 fail:0 skip:60 time:429s
fi-gdg-551 total:289 pass:178 dwarn:1 dfail:0 fail:1 skip:109 time:265s
fi-glk-1 total:289 pass:261 dwarn:0 dfail:0 fail:0 skip:28 time:543s
fi-hsw-4770 total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:430s
fi-hsw-4770r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:442s
fi-ilk-650 total:289 pass:228 dwarn:0 dfail:0 fail:0 skip:61 time:432s
fi-ivb-3520m total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:483s
fi-ivb-3770 total:289 pass:260 dwarn:0 dfail:0 fail:0 skip:29 time:462s
fi-kbl-7500u total:289 pass:264 dwarn:1 dfail:0 fail:0 skip:24 time:484s
fi-kbl-7560u total:289 pass:270 dwarn:0 dfail:0 fail:0 skip:19 time:523s
fi-kbl-7567u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:481s
fi-kbl-r total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:536s
fi-pnv-d510 total:289 pass:222 dwarn:1 dfail:0 fail:0 skip:66 time:570s
fi-skl-6260u total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:462s
fi-skl-6600u total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:546s
fi-skl-6700hq total:289 pass:263 dwarn:0 dfail:0 fail:0 skip:26 time:566s
fi-skl-6700k total:289 pass:265 dwarn:0 dfail:0 fail:0 skip:24 time:524s
fi-skl-6770hq total:289 pass:269 dwarn:0 dfail:0 fail:0 skip:20 time:497s
fi-skl-gvtdvm total:289 pass:266 dwarn:0 dfail:0 fail:0 skip:23 time:452s
fi-snb-2520m total:246 pass:212 dwarn:0 dfail:0 fail:0 skip:33
fi-snb-2600 total:289 pass:249 dwarn:0 dfail:0 fail:0 skip:40 time:422s
Blacklisted hosts:
fi-cfl-s total:289 pass:254 dwarn:3 dfail:0 fail:0 skip:32 time:531s
fi-cnl-y total:289 pass:262 dwarn:0 dfail:0 fail:0 skip:27 time:554s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_487/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH i-g-t v3] kms_atomic_transition: Split out modeset tests on internal panels
2017-11-08 19:33 ` [PATCH i-g-t v3] " Imre Deak
@ 2017-11-09 8:03 ` Maarten Lankhorst
2017-11-09 12:39 ` Imre Deak
0 siblings, 1 reply; 12+ messages in thread
From: Maarten Lankhorst @ 2017-11-09 8:03 UTC (permalink / raw)
To: Imre Deak, intel-gfx
Op 08-11-17 om 20:33 schreef Imre Deak:
> Doing modeset on internal panels may have a considerable overhead due to
> the panel specific power sequencing delays. To avoid long test runtimes
> in CI split out the testing of internal panels from the plane modeset
> subtests and test only a reduced number of plane combinations on these:
> where only a single plane is enabled, all planes are disabled or all
> planes are enabled.
>
> v2:
> - Add code comment explaining the need for the separate internal-panels
> subtests.
> - Calculate the number of enabled planes only once. (Chris)
> - Disable the slow internal-panels subtests testing all combinations.
> (Petri)
>
> v3: (Maarten)
> - Skip the internal-panels subtests if no internal panels are found.
> - Also test transitions with all planes disabled.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103334
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Petri Latvala <petri.latvala@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> tests/kms_atomic_transition.c | 71 ++++++++++++++++++++++++++++++++++++++++---
> 1 file changed, 67 insertions(+), 4 deletions(-)
>
> diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
> index 4c295125..54581ed7 100644
> --- a/tests/kms_atomic_transition.c
> +++ b/tests/kms_atomic_transition.c
> @@ -189,6 +189,7 @@ enum transition_type {
> TRANSITION_PLANES,
> TRANSITION_AFTER_FREE,
> TRANSITION_MODESET,
> + TRANSITION_MODESET_FAST,
> TRANSITION_MODESET_DISABLE,
> };
>
> @@ -528,6 +529,13 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
> }
>
> for (i = 0; i < iter_max; i++) {
> + int n_enable_planes = hweight32(i);
> +
> + if (type == TRANSITION_MODESET_FAST &&
> + n_enable_planes > 1 &&
> + n_enable_planes < pipe_obj->n_planes)
> + continue;
> +
> igt_output_set_pipe(output, pipe);
>
> wm_setup_plane(display, pipe, i, parms, fencing);
> @@ -547,16 +555,23 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
>
> /* i -> i+1 will be done when i increases, can be skipped here */
> for (j = iter_max - 1; j > i + 1; j--) {
> + n_enable_planes = hweight32(j);
> +
> + if (type == TRANSITION_MODESET_FAST &&
> + n_enable_planes > 1 &&
> + n_enable_planes < pipe_obj->n_planes)
> + continue;
> +
> wm_setup_plane(display, pipe, j, parms, fencing);
>
> - if (type == TRANSITION_MODESET)
> + if (type >= TRANSITION_MODESET)
> igt_output_override_mode(output, &override_mode);
>
> atomic_commit(display, pipe, flags, (void *)(unsigned long) j, fencing);
> wait_for_transition(display, pipe, nonblocking, fencing);
>
> wm_setup_plane(display, pipe, i, parms, fencing);
> - if (type == TRANSITION_MODESET)
> + if (type >= TRANSITION_MODESET)
> igt_output_override_mode(output, NULL);
>
> atomic_commit(display, pipe, flags, (void *)(unsigned long) i, fencing);
> @@ -864,6 +879,19 @@ static void run_modeset_transition(igt_display_t *display, int requested_outputs
> run_modeset_tests(display, requested_outputs, nonblocking, fencing);
> }
>
> +static bool output_is_internal_panel(igt_output_t *output)
> +{
> + switch (output->config.connector->connector_type) {
> + case DRM_MODE_CONNECTOR_LVDS:
> + case DRM_MODE_CONNECTOR_eDP:
> + case DRM_MODE_CONNECTOR_DSI:
> + case DRM_MODE_CONNECTOR_DPI:
> + return true;
> + default:
> + return false;
> + }
> +}
> +
> igt_main
> {
> igt_display_t display;
> @@ -913,13 +941,48 @@ igt_main
> for_each_pipe_with_valid_output(&display, pipe, output)
> run_transition_test(&display, pipe, output, TRANSITION_AFTER_FREE, true, true);
>
> + /*
> + * Test modeset cases on internal panels separately with a reduced
> + * number of combinations, to avoid long runtimes due to modesets on
> + * panels with long power cycle delays.
> + */
> igt_subtest("plane-all-modeset-transition")
> - for_each_pipe_with_valid_output(&display, pipe, output)
> + for_each_pipe_with_valid_output(&display, pipe, output) {
> + if (output_is_internal_panel(output))
> + continue;
> run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, false);
> + }
>
> igt_subtest("plane-all-modeset-transition-fencing")
> - for_each_pipe_with_valid_output(&display, pipe, output)
> + for_each_pipe_with_valid_output(&display, pipe, output) {
> + if (output_is_internal_panel(output))
> + continue;
> run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, true);
> + }
> +
> + igt_subtest("plane-all-modeset-transition-internal-panels") {
> + int tested = 0;
> +
> + for_each_pipe_with_valid_output(&display, pipe, output) {
> + if (!output_is_internal_panel(output))
> + continue;
> + run_transition_test(&display, pipe, output, TRANSITION_MODESET_FAST, false, false);
> + tested++;
> + }
> + igt_skip_on_f(!tested, "No output with internal panel found\n");
> + }
> +
> + igt_subtest("plane-all-modeset-transition-fencing-internal-panels") {
> + int tested = 0;
> +
> + for_each_pipe_with_valid_output(&display, pipe, output) {
> + if (!output_is_internal_panel(output))
> + continue;
> + run_transition_test(&display, pipe, output, TRANSITION_MODESET_FAST, false, true);
> + tested++;
> + }
> + igt_skip_on_f(!tested, "No output with internal panel found\n");
> + }
>
> igt_subtest("plane-toggle-modeset-transition")
> for_each_pipe_with_valid_output(&display, pipe, output)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH i-g-t v3] kms_atomic_transition: Split out modeset tests on internal panels
2017-11-09 8:03 ` Maarten Lankhorst
@ 2017-11-09 12:39 ` Imre Deak
0 siblings, 0 replies; 12+ messages in thread
From: Imre Deak @ 2017-11-09 12:39 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: intel-gfx
On Thu, Nov 09, 2017 at 09:03:37AM +0100, Maarten Lankhorst wrote:
> Op 08-11-17 om 20:33 schreef Imre Deak:
> > Doing modeset on internal panels may have a considerable overhead due to
> > the panel specific power sequencing delays. To avoid long test runtimes
> > in CI split out the testing of internal panels from the plane modeset
> > subtests and test only a reduced number of plane combinations on these:
> > where only a single plane is enabled, all planes are disabled or all
> > planes are enabled.
> >
> > v2:
> > - Add code comment explaining the need for the separate internal-panels
> > subtests.
> > - Calculate the number of enabled planes only once. (Chris)
> > - Disable the slow internal-panels subtests testing all combinations.
> > (Petri)
> >
> > v3: (Maarten)
> > - Skip the internal-panels subtests if no internal panels are found.
> > - Also test transitions with all planes disabled.
> >
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103334
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Petri Latvala <petri.latvala@intel.com>
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
>
> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thanks for the reviews, I pushed the patch.
>
> > tests/kms_atomic_transition.c | 71 ++++++++++++++++++++++++++++++++++++++++---
> > 1 file changed, 67 insertions(+), 4 deletions(-)
> >
> > diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
> > index 4c295125..54581ed7 100644
> > --- a/tests/kms_atomic_transition.c
> > +++ b/tests/kms_atomic_transition.c
> > @@ -189,6 +189,7 @@ enum transition_type {
> > TRANSITION_PLANES,
> > TRANSITION_AFTER_FREE,
> > TRANSITION_MODESET,
> > + TRANSITION_MODESET_FAST,
> > TRANSITION_MODESET_DISABLE,
> > };
> >
> > @@ -528,6 +529,13 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
> > }
> >
> > for (i = 0; i < iter_max; i++) {
> > + int n_enable_planes = hweight32(i);
> > +
> > + if (type == TRANSITION_MODESET_FAST &&
> > + n_enable_planes > 1 &&
> > + n_enable_planes < pipe_obj->n_planes)
> > + continue;
> > +
> > igt_output_set_pipe(output, pipe);
> >
> > wm_setup_plane(display, pipe, i, parms, fencing);
> > @@ -547,16 +555,23 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
> >
> > /* i -> i+1 will be done when i increases, can be skipped here */
> > for (j = iter_max - 1; j > i + 1; j--) {
> > + n_enable_planes = hweight32(j);
> > +
> > + if (type == TRANSITION_MODESET_FAST &&
> > + n_enable_planes > 1 &&
> > + n_enable_planes < pipe_obj->n_planes)
> > + continue;
> > +
> > wm_setup_plane(display, pipe, j, parms, fencing);
> >
> > - if (type == TRANSITION_MODESET)
> > + if (type >= TRANSITION_MODESET)
> > igt_output_override_mode(output, &override_mode);
> >
> > atomic_commit(display, pipe, flags, (void *)(unsigned long) j, fencing);
> > wait_for_transition(display, pipe, nonblocking, fencing);
> >
> > wm_setup_plane(display, pipe, i, parms, fencing);
> > - if (type == TRANSITION_MODESET)
> > + if (type >= TRANSITION_MODESET)
> > igt_output_override_mode(output, NULL);
> >
> > atomic_commit(display, pipe, flags, (void *)(unsigned long) i, fencing);
> > @@ -864,6 +879,19 @@ static void run_modeset_transition(igt_display_t *display, int requested_outputs
> > run_modeset_tests(display, requested_outputs, nonblocking, fencing);
> > }
> >
> > +static bool output_is_internal_panel(igt_output_t *output)
> > +{
> > + switch (output->config.connector->connector_type) {
> > + case DRM_MODE_CONNECTOR_LVDS:
> > + case DRM_MODE_CONNECTOR_eDP:
> > + case DRM_MODE_CONNECTOR_DSI:
> > + case DRM_MODE_CONNECTOR_DPI:
> > + return true;
> > + default:
> > + return false;
> > + }
> > +}
> > +
> > igt_main
> > {
> > igt_display_t display;
> > @@ -913,13 +941,48 @@ igt_main
> > for_each_pipe_with_valid_output(&display, pipe, output)
> > run_transition_test(&display, pipe, output, TRANSITION_AFTER_FREE, true, true);
> >
> > + /*
> > + * Test modeset cases on internal panels separately with a reduced
> > + * number of combinations, to avoid long runtimes due to modesets on
> > + * panels with long power cycle delays.
> > + */
> > igt_subtest("plane-all-modeset-transition")
> > - for_each_pipe_with_valid_output(&display, pipe, output)
> > + for_each_pipe_with_valid_output(&display, pipe, output) {
> > + if (output_is_internal_panel(output))
> > + continue;
> > run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, false);
> > + }
> >
> > igt_subtest("plane-all-modeset-transition-fencing")
> > - for_each_pipe_with_valid_output(&display, pipe, output)
> > + for_each_pipe_with_valid_output(&display, pipe, output) {
> > + if (output_is_internal_panel(output))
> > + continue;
> > run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, true);
> > + }
> > +
> > + igt_subtest("plane-all-modeset-transition-internal-panels") {
> > + int tested = 0;
> > +
> > + for_each_pipe_with_valid_output(&display, pipe, output) {
> > + if (!output_is_internal_panel(output))
> > + continue;
> > + run_transition_test(&display, pipe, output, TRANSITION_MODESET_FAST, false, false);
> > + tested++;
> > + }
> > + igt_skip_on_f(!tested, "No output with internal panel found\n");
> > + }
> > +
> > + igt_subtest("plane-all-modeset-transition-fencing-internal-panels") {
> > + int tested = 0;
> > +
> > + for_each_pipe_with_valid_output(&display, pipe, output) {
> > + if (!output_is_internal_panel(output))
> > + continue;
> > + run_transition_test(&display, pipe, output, TRANSITION_MODESET_FAST, false, true);
> > + tested++;
> > + }
> > + igt_skip_on_f(!tested, "No output with internal panel found\n");
> > + }
> >
> > igt_subtest("plane-toggle-modeset-transition")
> > for_each_pipe_with_valid_output(&display, pipe, output)
>
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-11-09 12:39 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-02 13:38 [PATCH i-g-t] kms_atomic_transition: Split out modeset tests on internal panels Imre Deak
2017-11-02 15:56 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-11-02 17:09 ` ✗ Fi.CI.IGT: warning " Patchwork
2017-11-02 17:12 ` [PATCH i-g-t] " Chris Wilson
2017-11-03 9:21 ` Imre Deak
2017-11-03 13:27 ` [PATCH i-g-t v2] " Imre Deak
2017-11-08 19:33 ` [PATCH i-g-t v3] " Imre Deak
2017-11-09 8:03 ` Maarten Lankhorst
2017-11-09 12:39 ` Imre Deak
2017-11-03 15:34 ` ✓ Fi.CI.BAT: success for kms_atomic_transition: Split out modeset tests on internal panels (rev2) Patchwork
2017-11-03 18:12 ` ✗ Fi.CI.IGT: failure " Patchwork
2017-11-08 20:53 ` ✗ Fi.CI.BAT: failure for kms_atomic_transition: Split out modeset tests on internal panels (rev3) 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.