* [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_flip: Binary mode optimizations
@ 2018-06-13 12:58 Mika Kahola
2018-06-13 12:58 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_flip: Set duration for subtest from command line Mika Kahola
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Mika Kahola @ 2018-06-13 12:58 UTC (permalink / raw)
To: igt-dev
kms_flip in binary mode takes considerable amount of time to complete.
These couple of patches introduces optimizations to the test. The first
patch sets the subtest duration to be a configurable command line parameter.
The second patch suggests the change in execution order so that all basic
subtests are executed first and after that move on to execute 2X tests.
For VIZ-14324
Mika Kahola (2):
tests/kms_flip: Set duration for subtest from command line
tests/kms_flip: Change 2x tests execution order
tests/kms_flip.c | 122 ++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 85 insertions(+), 37 deletions(-)
--
2.7.4
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 10+ messages in thread* [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_flip: Set duration for subtest from command line
2018-06-13 12:58 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_flip: Binary mode optimizations Mika Kahola
@ 2018-06-13 12:58 ` Mika Kahola
2018-06-13 13:57 ` Ville Syrjälä
2018-06-13 12:58 ` [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_flip: Change 2x tests execution order Mika Kahola
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Mika Kahola @ 2018-06-13 12:58 UTC (permalink / raw)
To: igt-dev
To reduce the execution time of kms_flip test on CI, let's move subtest
duration parameter as command line option. The default subtest duration
is 0 seconds meaning that the subtest is run only once.
The patch reduces the kms_flip binary mode execution time on Geminilake from
1189 seconds down to 307 seconds with default subtest duration.
No functional changes on subtests.
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
tests/kms_flip.c | 113 +++++++++++++++++++++++++++++++++++++------------------
1 file changed, 77 insertions(+), 36 deletions(-)
diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index 3d6fe94..09aaac2 100644
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -82,6 +82,8 @@
#define DRM_CAP_TIMESTAMP_MONOTONIC 6
#endif
+#define MAX_DURATION 60
+
drmModeRes *resources;
int drm_fd;
static drm_intel_bufmgr *bufmgr;
@@ -95,6 +97,13 @@ static drmModeConnector *last_connector;
uint32_t *fb_ptr;
+/* Command line parameters. */
+struct {
+ int duration;
+} opt = {
+ .duration = 0,
+};
+
struct type_name {
int type;
const char *name;
@@ -1518,56 +1527,89 @@ static void test_nonblocking_read(int in)
close(fd);
}
+static int opt_handler(int option, int option_index, void *input)
+{
+ switch (option) {
+ case 'd':
+ opt.duration = strtol(optarg, NULL, 0);
+
+ if (opt.duration > MAX_DURATION) {
+ igt_debug("limiting test duration from %ds to %ds\n",
+ opt.duration, MAX_DURATION);
+ opt.duration = MAX_DURATION;
+ }
+
+ if (opt.duration < 0) {
+ igt_debug("limiting test duration from %ds to %ds\n",
+ opt.duration, 0);
+ opt.duration = 0;
+ }
+ break;
+ default:
+ igt_assert(false);
+ }
+
+ return 0;
+}
+
+const char *help_str =
+ " --duration test duration in seconds (default 0s)\n";
+
int main(int argc, char **argv)
{
+ struct option long_options[] = {
+ { "duration", required_argument, NULL, 'd'},
+ { 0, 0, 0, 0 }
+ };
+
struct {
- int duration;
int flags;
const char *name;
} tests[] = {
- { 30, TEST_VBLANK | TEST_CHECK_TS, "wf_vblank-ts-check" },
- { 30, TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_CHECK_TS,
+ { TEST_VBLANK | TEST_CHECK_TS, "wf_vblank-ts-check" },
+ { TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_CHECK_TS,
"blocking-wf_vblank" },
- { 30, TEST_VBLANK | TEST_VBLANK_ABSOLUTE,
+ { TEST_VBLANK | TEST_VBLANK_ABSOLUTE,
"absolute-wf_vblank" },
- { 30, TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_VBLANK_ABSOLUTE,
+ { TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_VBLANK_ABSOLUTE,
"blocking-absolute-wf_vblank" },
- { 10, TEST_FLIP | TEST_BASIC, "plain-flip" },
- { 30, TEST_FLIP | TEST_EBUSY , "busy-flip" },
- { 30, TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
- { 30, TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-check" },
- { 30, TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
+ { TEST_FLIP | TEST_BASIC, "plain-flip" },
+ { TEST_FLIP | TEST_EBUSY , "busy-flip" },
+ { TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
+ { TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-check" },
+ { TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
"plain-flip-fb-recreate" },
- { 30, TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
- { 20, TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "flip-vs-dpms" },
- { 30, TEST_FLIP | TEST_PAN, "flip-vs-panning" },
- { 20, TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "flip-vs-modeset" },
- { 30, TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
+ { TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
+ { TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "flip-vs-dpms" },
+ { TEST_FLIP | TEST_PAN, "flip-vs-panning" },
+ { TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "flip-vs-modeset" },
+ { TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
"flip-vs-expired-vblank" },
- { 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_ABSOLUTE |
- TEST_CHECK_TS, "flip-vs-absolute-wf_vblank" },
- { 10, TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS | TEST_BASIC,
+ { TEST_FLIP | TEST_VBLANK | TEST_VBLANK_ABSOLUTE |
+ TEST_CHECK_TS, "flip-vs-absolute-wf_vblank" },
+ { TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS | TEST_BASIC,
"flip-vs-wf_vblank" },
- { 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK |
- TEST_CHECK_TS, "flip-vs-blocking-wf-vblank" },
- { 30, TEST_FLIP | TEST_MODESET | TEST_HANG | TEST_NOEVENT, "flip-vs-modeset-vs-hang" },
- { 30, TEST_FLIP | TEST_PAN | TEST_HANG, "flip-vs-panning-vs-hang" },
- { 1, TEST_FLIP | TEST_EINVAL | TEST_FB_BAD_TILING, "flip-vs-bad-tiling" },
+ { TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK |
+ TEST_CHECK_TS, "flip-vs-blocking-wf-vblank" },
+ { TEST_FLIP | TEST_MODESET | TEST_HANG | TEST_NOEVENT, "flip-vs-modeset-vs-hang" },
+ { TEST_FLIP | TEST_PAN | TEST_HANG, "flip-vs-panning-vs-hang" },
+ { TEST_FLIP | TEST_EINVAL | TEST_FB_BAD_TILING, "flip-vs-bad-tiling" },
- { 1, TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP,
+ { TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP,
"flip-vs-dpms-off-vs-modeset" },
- { 1, TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP | TEST_SINGLE_BUFFER,
+ { TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP | TEST_SINGLE_BUFFER,
"single-buffer-flip-vs-dpms-off-vs-modeset" },
- { 30, TEST_FLIP | TEST_NO_2X_OUTPUT | TEST_DPMS_OFF_OTHERS , "dpms-off-confusion" },
- { 0, TEST_ENOENT | TEST_NOEVENT, "nonexisting-fb" },
- { 10, TEST_DPMS_OFF | TEST_DPMS | TEST_VBLANK_RACE, "dpms-vs-vblank-race" },
- { 10, TEST_MODESET | TEST_VBLANK_RACE, "modeset-vs-vblank-race" },
- { 0, TEST_BO_TOOBIG | TEST_NO_2X_OUTPUT, "bo-too-big" },
+ { TEST_FLIP | TEST_NO_2X_OUTPUT | TEST_DPMS_OFF_OTHERS , "dpms-off-confusion" },
+ { TEST_ENOENT | TEST_NOEVENT, "nonexisting-fb" },
+ { TEST_DPMS_OFF | TEST_DPMS | TEST_VBLANK_RACE, "dpms-vs-vblank-race" },
+ { TEST_MODESET | TEST_VBLANK_RACE, "modeset-vs-vblank-race" },
+ { TEST_BO_TOOBIG | TEST_NO_2X_OUTPUT, "bo-too-big" },
};
int i;
- igt_subtest_init(argc, argv);
+ igt_subtest_init_parse_opts(&argc, argv, "", long_options, help_str,
+ opt_handler, NULL);
igt_fixture {
drm_fd = drm_open_driver_master(DRIVER_ANY);
@@ -1592,7 +1634,7 @@ int main(int argc, char **argv)
igt_subtest_f("%s%s",
tests[i].flags & TEST_BASIC ? "basic-" : "",
tests[i].name)
- run_test(tests[i].duration, tests[i].flags);
+ run_test(opt.duration, tests[i].flags);
if (tests[i].flags & TEST_NO_2X_OUTPUT)
continue;
@@ -1602,7 +1644,7 @@ int main(int argc, char **argv)
continue;
igt_subtest_f( "2x-%s", tests[i].name)
- run_pair(tests[i].duration, tests[i].flags);
+ run_pair(opt.duration, tests[i].flags);
}
igt_fork_signal_helper();
@@ -1614,7 +1656,7 @@ int main(int argc, char **argv)
continue;
igt_subtest_f( "%s-interruptible", tests[i].name)
- run_test(tests[i].duration, tests[i].flags);
+ run_test(opt.duration, tests[i].flags);
if (tests[i].flags & TEST_NO_2X_OUTPUT)
continue;
@@ -1624,7 +1666,7 @@ int main(int argc, char **argv)
continue;
igt_subtest_f( "2x-%s-interruptible", tests[i].name)
- run_pair(tests[i].duration, tests[i].flags);
+ run_pair(opt.duration, tests[i].flags);
}
igt_stop_signal_helper();
@@ -1632,6 +1674,5 @@ int main(int argc, char **argv)
* Let drm_fd leak, since it's needed by the dpms restore
* exit_handler and igt_exit() won't return.
*/
-
igt_exit();
}
--
2.7.4
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_flip: Set duration for subtest from command line
2018-06-13 12:58 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_flip: Set duration for subtest from command line Mika Kahola
@ 2018-06-13 13:57 ` Ville Syrjälä
2018-06-14 10:40 ` Mika Kahola
0 siblings, 1 reply; 10+ messages in thread
From: Ville Syrjälä @ 2018-06-13 13:57 UTC (permalink / raw)
To: Mika Kahola; +Cc: igt-dev
On Wed, Jun 13, 2018 at 03:58:33PM +0300, Mika Kahola wrote:
> To reduce the execution time of kms_flip test on CI, let's move subtest
> duration parameter as command line option. The default subtest duration
> is 0 seconds meaning that the subtest is run only once.
Single iteration doesn't seem particularly robust. The flip tests for
example are checking for jitter and such so running it just once
probably means we're not actually testing anything.
>
> The patch reduces the kms_flip binary mode execution time on Geminilake from
> 1189 seconds down to 307 seconds with default subtest duration.
>
> No functional changes on subtests.
>
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> ---
> tests/kms_flip.c | 113 +++++++++++++++++++++++++++++++++++++------------------
> 1 file changed, 77 insertions(+), 36 deletions(-)
>
> diff --git a/tests/kms_flip.c b/tests/kms_flip.c
> index 3d6fe94..09aaac2 100644
> --- a/tests/kms_flip.c
> +++ b/tests/kms_flip.c
> @@ -82,6 +82,8 @@
> #define DRM_CAP_TIMESTAMP_MONOTONIC 6
> #endif
>
> +#define MAX_DURATION 60
> +
> drmModeRes *resources;
> int drm_fd;
> static drm_intel_bufmgr *bufmgr;
> @@ -95,6 +97,13 @@ static drmModeConnector *last_connector;
>
> uint32_t *fb_ptr;
>
> +/* Command line parameters. */
> +struct {
> + int duration;
> +} opt = {
> + .duration = 0,
> +};
> +
> struct type_name {
> int type;
> const char *name;
> @@ -1518,56 +1527,89 @@ static void test_nonblocking_read(int in)
> close(fd);
> }
>
> +static int opt_handler(int option, int option_index, void *input)
> +{
> + switch (option) {
> + case 'd':
> + opt.duration = strtol(optarg, NULL, 0);
> +
> + if (opt.duration > MAX_DURATION) {
> + igt_debug("limiting test duration from %ds to %ds\n",
> + opt.duration, MAX_DURATION);
> + opt.duration = MAX_DURATION;
> + }
> +
> + if (opt.duration < 0) {
> + igt_debug("limiting test duration from %ds to %ds\n",
> + opt.duration, 0);
> + opt.duration = 0;
> + }
> + break;
> + default:
> + igt_assert(false);
> + }
> +
> + return 0;
> +}
> +
> +const char *help_str =
> + " --duration test duration in seconds (default 0s)\n";
> +
> int main(int argc, char **argv)
> {
> + struct option long_options[] = {
> + { "duration", required_argument, NULL, 'd'},
> + { 0, 0, 0, 0 }
> + };
> +
> struct {
> - int duration;
> int flags;
> const char *name;
> } tests[] = {
> - { 30, TEST_VBLANK | TEST_CHECK_TS, "wf_vblank-ts-check" },
> - { 30, TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_CHECK_TS,
> + { TEST_VBLANK | TEST_CHECK_TS, "wf_vblank-ts-check" },
> + { TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_CHECK_TS,
> "blocking-wf_vblank" },
> - { 30, TEST_VBLANK | TEST_VBLANK_ABSOLUTE,
> + { TEST_VBLANK | TEST_VBLANK_ABSOLUTE,
> "absolute-wf_vblank" },
> - { 30, TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_VBLANK_ABSOLUTE,
> + { TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_VBLANK_ABSOLUTE,
> "blocking-absolute-wf_vblank" },
> - { 10, TEST_FLIP | TEST_BASIC, "plain-flip" },
> - { 30, TEST_FLIP | TEST_EBUSY , "busy-flip" },
> - { 30, TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
> - { 30, TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-check" },
> - { 30, TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
> + { TEST_FLIP | TEST_BASIC, "plain-flip" },
> + { TEST_FLIP | TEST_EBUSY , "busy-flip" },
> + { TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
> + { TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-check" },
> + { TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
> "plain-flip-fb-recreate" },
> - { 30, TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
> - { 20, TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "flip-vs-dpms" },
> - { 30, TEST_FLIP | TEST_PAN, "flip-vs-panning" },
> - { 20, TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "flip-vs-modeset" },
> - { 30, TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
> + { TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
> + { TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "flip-vs-dpms" },
> + { TEST_FLIP | TEST_PAN, "flip-vs-panning" },
> + { TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "flip-vs-modeset" },
> + { TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
> "flip-vs-expired-vblank" },
>
> - { 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_ABSOLUTE |
> - TEST_CHECK_TS, "flip-vs-absolute-wf_vblank" },
> - { 10, TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS | TEST_BASIC,
> + { TEST_FLIP | TEST_VBLANK | TEST_VBLANK_ABSOLUTE |
> + TEST_CHECK_TS, "flip-vs-absolute-wf_vblank" },
> + { TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS | TEST_BASIC,
> "flip-vs-wf_vblank" },
> - { 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK |
> - TEST_CHECK_TS, "flip-vs-blocking-wf-vblank" },
> - { 30, TEST_FLIP | TEST_MODESET | TEST_HANG | TEST_NOEVENT, "flip-vs-modeset-vs-hang" },
> - { 30, TEST_FLIP | TEST_PAN | TEST_HANG, "flip-vs-panning-vs-hang" },
> - { 1, TEST_FLIP | TEST_EINVAL | TEST_FB_BAD_TILING, "flip-vs-bad-tiling" },
> + { TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK |
> + TEST_CHECK_TS, "flip-vs-blocking-wf-vblank" },
> + { TEST_FLIP | TEST_MODESET | TEST_HANG | TEST_NOEVENT, "flip-vs-modeset-vs-hang" },
> + { TEST_FLIP | TEST_PAN | TEST_HANG, "flip-vs-panning-vs-hang" },
> + { TEST_FLIP | TEST_EINVAL | TEST_FB_BAD_TILING, "flip-vs-bad-tiling" },
>
> - { 1, TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP,
> + { TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP,
> "flip-vs-dpms-off-vs-modeset" },
> - { 1, TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP | TEST_SINGLE_BUFFER,
> + { TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP | TEST_SINGLE_BUFFER,
> "single-buffer-flip-vs-dpms-off-vs-modeset" },
> - { 30, TEST_FLIP | TEST_NO_2X_OUTPUT | TEST_DPMS_OFF_OTHERS , "dpms-off-confusion" },
> - { 0, TEST_ENOENT | TEST_NOEVENT, "nonexisting-fb" },
> - { 10, TEST_DPMS_OFF | TEST_DPMS | TEST_VBLANK_RACE, "dpms-vs-vblank-race" },
> - { 10, TEST_MODESET | TEST_VBLANK_RACE, "modeset-vs-vblank-race" },
> - { 0, TEST_BO_TOOBIG | TEST_NO_2X_OUTPUT, "bo-too-big" },
> + { TEST_FLIP | TEST_NO_2X_OUTPUT | TEST_DPMS_OFF_OTHERS , "dpms-off-confusion" },
> + { TEST_ENOENT | TEST_NOEVENT, "nonexisting-fb" },
> + { TEST_DPMS_OFF | TEST_DPMS | TEST_VBLANK_RACE, "dpms-vs-vblank-race" },
> + { TEST_MODESET | TEST_VBLANK_RACE, "modeset-vs-vblank-race" },
> + { TEST_BO_TOOBIG | TEST_NO_2X_OUTPUT, "bo-too-big" },
> };
> int i;
>
> - igt_subtest_init(argc, argv);
> + igt_subtest_init_parse_opts(&argc, argv, "", long_options, help_str,
> + opt_handler, NULL);
>
> igt_fixture {
> drm_fd = drm_open_driver_master(DRIVER_ANY);
> @@ -1592,7 +1634,7 @@ int main(int argc, char **argv)
> igt_subtest_f("%s%s",
> tests[i].flags & TEST_BASIC ? "basic-" : "",
> tests[i].name)
> - run_test(tests[i].duration, tests[i].flags);
> + run_test(opt.duration, tests[i].flags);
>
> if (tests[i].flags & TEST_NO_2X_OUTPUT)
> continue;
> @@ -1602,7 +1644,7 @@ int main(int argc, char **argv)
> continue;
>
> igt_subtest_f( "2x-%s", tests[i].name)
> - run_pair(tests[i].duration, tests[i].flags);
> + run_pair(opt.duration, tests[i].flags);
> }
>
> igt_fork_signal_helper();
> @@ -1614,7 +1656,7 @@ int main(int argc, char **argv)
> continue;
>
> igt_subtest_f( "%s-interruptible", tests[i].name)
> - run_test(tests[i].duration, tests[i].flags);
> + run_test(opt.duration, tests[i].flags);
>
> if (tests[i].flags & TEST_NO_2X_OUTPUT)
> continue;
> @@ -1624,7 +1666,7 @@ int main(int argc, char **argv)
> continue;
>
> igt_subtest_f( "2x-%s-interruptible", tests[i].name)
> - run_pair(tests[i].duration, tests[i].flags);
> + run_pair(opt.duration, tests[i].flags);
> }
> igt_stop_signal_helper();
>
> @@ -1632,6 +1674,5 @@ int main(int argc, char **argv)
> * Let drm_fd leak, since it's needed by the dpms restore
> * exit_handler and igt_exit() won't return.
> */
> -
> igt_exit();
> }
> --
> 2.7.4
>
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
--
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_flip: Set duration for subtest from command line
2018-06-13 13:57 ` Ville Syrjälä
@ 2018-06-14 10:40 ` Mika Kahola
0 siblings, 0 replies; 10+ messages in thread
From: Mika Kahola @ 2018-06-14 10:40 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: igt-dev
On Wed, 2018-06-13 at 16:57 +0300, Ville Syrjälä wrote:
> On Wed, Jun 13, 2018 at 03:58:33PM +0300, Mika Kahola wrote:
> >
> > To reduce the execution time of kms_flip test on CI, let's move
> > subtest
> > duration parameter as command line option. The default subtest
> > duration
> > is 0 seconds meaning that the subtest is run only once.
> Single iteration doesn't seem particularly robust. The flip tests for
> example are checking for jitter and such so running it just once
> probably means we're not actually testing anything.
Maybe we could add minimum duration for the tests that need more than
one iteration to produce meaningful results. That would still reduce
the total runtime of the tests if majority of the tests would be happy
with one iteration.
>
> >
> >
> > The patch reduces the kms_flip binary mode execution time on
> > Geminilake from
> > 1189 seconds down to 307 seconds with default subtest duration.
> >
> > No functional changes on subtests.
> >
> > Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> > ---
> > tests/kms_flip.c | 113 +++++++++++++++++++++++++++++++++++++----
> > --------------
> > 1 file changed, 77 insertions(+), 36 deletions(-)
> >
> > diff --git a/tests/kms_flip.c b/tests/kms_flip.c
> > index 3d6fe94..09aaac2 100644
> > --- a/tests/kms_flip.c
> > +++ b/tests/kms_flip.c
> > @@ -82,6 +82,8 @@
> > #define DRM_CAP_TIMESTAMP_MONOTONIC 6
> > #endif
> >
> > +#define MAX_DURATION 60
> > +
> > drmModeRes *resources;
> > int drm_fd;
> > static drm_intel_bufmgr *bufmgr;
> > @@ -95,6 +97,13 @@ static drmModeConnector *last_connector;
> >
> > uint32_t *fb_ptr;
> >
> > +/* Command line parameters. */
> > +struct {
> > + int duration;
> > +} opt = {
> > + .duration = 0,
> > +};
> > +
> > struct type_name {
> > int type;
> > const char *name;
> > @@ -1518,56 +1527,89 @@ static void test_nonblocking_read(int in)
> > close(fd);
> > }
> >
> > +static int opt_handler(int option, int option_index, void *input)
> > +{
> > + switch (option) {
> > + case 'd':
> > + opt.duration = strtol(optarg, NULL, 0);
> > +
> > + if (opt.duration > MAX_DURATION) {
> > + igt_debug("limiting test duration from %ds
> > to %ds\n",
> > + opt.duration, MAX_DURATION);
> > + opt.duration = MAX_DURATION;
> > + }
> > +
> > + if (opt.duration < 0) {
> > + igt_debug("limiting test duration from %ds
> > to %ds\n",
> > + opt.duration, 0);
> > + opt.duration = 0;
> > + }
> > + break;
> > + default:
> > + igt_assert(false);
> > + }
> > +
> > + return 0;
> > +}
> > +
> > +const char *help_str =
> > + " --duration test duration in seconds (default 0s)\n";
> > +
> > int main(int argc, char **argv)
> > {
> > + struct option long_options[] = {
> > + { "duration", required_argument, NULL, 'd'},
> > + { 0, 0, 0, 0 }
> > + };
> > +
> > struct {
> > - int duration;
> > int flags;
> > const char *name;
> > } tests[] = {
> > - { 30, TEST_VBLANK | TEST_CHECK_TS, "wf_vblank-ts-
> > check" },
> > - { 30, TEST_VBLANK | TEST_VBLANK_BLOCK |
> > TEST_CHECK_TS,
> > + { TEST_VBLANK | TEST_CHECK_TS, "wf_vblank-ts-
> > check" },
> > + { TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_CHECK_TS,
> > "blocking-wf_vblank" },
> > - { 30, TEST_VBLANK | TEST_VBLANK_ABSOLUTE,
> > + { TEST_VBLANK | TEST_VBLANK_ABSOLUTE,
> > "absolute-wf_vblank" },
> > - { 30, TEST_VBLANK | TEST_VBLANK_BLOCK |
> > TEST_VBLANK_ABSOLUTE,
> > + { TEST_VBLANK | TEST_VBLANK_BLOCK |
> > TEST_VBLANK_ABSOLUTE,
> > "blocking-absolute-
> > wf_vblank" },
> > - { 10, TEST_FLIP | TEST_BASIC, "plain-flip" },
> > - { 30, TEST_FLIP | TEST_EBUSY , "busy-flip" },
> > - { 30, TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-
> > fences" },
> > - { 30, TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-
> > check" },
> > - { 30, TEST_FLIP | TEST_CHECK_TS |
> > TEST_FB_RECREATE,
> > + { TEST_FLIP | TEST_BASIC, "plain-flip" },
> > + { TEST_FLIP | TEST_EBUSY , "busy-flip" },
> > + { TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences"
> > },
> > + { TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-check"
> > },
> > + { TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
> > "plain-flip-fb-recreate" },
> > - { 30, TEST_FLIP | TEST_RMFB | TEST_MODESET ,
> > "flip-vs-rmfb" },
> > - { 20, TEST_FLIP | TEST_DPMS | TEST_EINVAL |
> > TEST_BASIC, "flip-vs-dpms" },
> > - { 30, TEST_FLIP | TEST_PAN, "flip-vs-panning" },
> > - { 20, TEST_FLIP | TEST_MODESET | TEST_EINVAL |
> > TEST_BASIC, "flip-vs-modeset" },
> > - { 30, TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
> > + { TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-
> > rmfb" },
> > + { TEST_FLIP | TEST_DPMS | TEST_EINVAL |
> > TEST_BASIC, "flip-vs-dpms" },
> > + { TEST_FLIP | TEST_PAN, "flip-vs-panning" },
> > + { TEST_FLIP | TEST_MODESET | TEST_EINVAL |
> > TEST_BASIC, "flip-vs-modeset" },
> > + { TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
> > "flip-vs-expired-vblank"
> > },
> >
> > - { 30, TEST_FLIP | TEST_VBLANK |
> > TEST_VBLANK_ABSOLUTE |
> > - TEST_CHECK_TS, "flip-vs-absolute-wf_vblank"
> > },
> > - { 10, TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS |
> > TEST_BASIC,
> > + { TEST_FLIP | TEST_VBLANK | TEST_VBLANK_ABSOLUTE |
> > + TEST_CHECK_TS, "flip-vs-absolute-wf_vblank" },
> > + { TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS |
> > TEST_BASIC,
> > "flip-vs-wf_vblank" },
> > - { 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK
> > |
> > - TEST_CHECK_TS, "flip-vs-blocking-wf-
> > vblank" },
> > - { 30, TEST_FLIP | TEST_MODESET | TEST_HANG |
> > TEST_NOEVENT, "flip-vs-modeset-vs-hang" },
> > - { 30, TEST_FLIP | TEST_PAN | TEST_HANG, "flip-vs-
> > panning-vs-hang" },
> > - { 1, TEST_FLIP | TEST_EINVAL | TEST_FB_BAD_TILING,
> > "flip-vs-bad-tiling" },
> > + { TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK |
> > + TEST_CHECK_TS, "flip-vs-blocking-wf-vblank" },
> > + { TEST_FLIP | TEST_MODESET | TEST_HANG |
> > TEST_NOEVENT, "flip-vs-modeset-vs-hang" },
> > + { TEST_FLIP | TEST_PAN | TEST_HANG, "flip-vs-
> > panning-vs-hang" },
> > + { TEST_FLIP | TEST_EINVAL | TEST_FB_BAD_TILING,
> > "flip-vs-bad-tiling" },
> >
> > - { 1, TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP,
> > + { TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP,
> > "flip-vs-dpms-off-vs-
> > modeset" },
> > - { 1, TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP |
> > TEST_SINGLE_BUFFER,
> > + { TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP |
> > TEST_SINGLE_BUFFER,
> > "single-buffer-flip-vs-
> > dpms-off-vs-modeset" },
> > - { 30, TEST_FLIP | TEST_NO_2X_OUTPUT |
> > TEST_DPMS_OFF_OTHERS , "dpms-off-confusion" },
> > - { 0, TEST_ENOENT | TEST_NOEVENT, "nonexisting-fb"
> > },
> > - { 10, TEST_DPMS_OFF | TEST_DPMS |
> > TEST_VBLANK_RACE, "dpms-vs-vblank-race" },
> > - { 10, TEST_MODESET | TEST_VBLANK_RACE, "modeset-
> > vs-vblank-race" },
> > - { 0, TEST_BO_TOOBIG | TEST_NO_2X_OUTPUT, "bo-too-
> > big" },
> > + { TEST_FLIP | TEST_NO_2X_OUTPUT |
> > TEST_DPMS_OFF_OTHERS , "dpms-off-confusion" },
> > + { TEST_ENOENT | TEST_NOEVENT, "nonexisting-fb" },
> > + { TEST_DPMS_OFF | TEST_DPMS | TEST_VBLANK_RACE,
> > "dpms-vs-vblank-race" },
> > + { TEST_MODESET | TEST_VBLANK_RACE, "modeset-vs-
> > vblank-race" },
> > + { TEST_BO_TOOBIG | TEST_NO_2X_OUTPUT, "bo-too-big"
> > },
> > };
> > int i;
> >
> > - igt_subtest_init(argc, argv);
> > + igt_subtest_init_parse_opts(&argc, argv, "", long_options,
> > help_str,
> > + opt_handler, NULL);
> >
> > igt_fixture {
> > drm_fd = drm_open_driver_master(DRIVER_ANY);
> > @@ -1592,7 +1634,7 @@ int main(int argc, char **argv)
> > igt_subtest_f("%s%s",
> > tests[i].flags & TEST_BASIC ?
> > "basic-" : "",
> > tests[i].name)
> > - run_test(tests[i].duration,
> > tests[i].flags);
> > + run_test(opt.duration, tests[i].flags);
> >
> > if (tests[i].flags & TEST_NO_2X_OUTPUT)
> > continue;
> > @@ -1602,7 +1644,7 @@ int main(int argc, char **argv)
> > continue;
> >
> > igt_subtest_f( "2x-%s", tests[i].name)
> > - run_pair(tests[i].duration,
> > tests[i].flags);
> > + run_pair(opt.duration, tests[i].flags);
> > }
> >
> > igt_fork_signal_helper();
> > @@ -1614,7 +1656,7 @@ int main(int argc, char **argv)
> > continue;
> >
> > igt_subtest_f( "%s-interruptible", tests[i].name)
> > - run_test(tests[i].duration,
> > tests[i].flags);
> > + run_test(opt.duration, tests[i].flags);
> >
> > if (tests[i].flags & TEST_NO_2X_OUTPUT)
> > continue;
> > @@ -1624,7 +1666,7 @@ int main(int argc, char **argv)
> > continue;
> >
> > igt_subtest_f( "2x-%s-interruptible",
> > tests[i].name)
> > - run_pair(tests[i].duration,
> > tests[i].flags);
> > + run_pair(opt.duration, tests[i].flags);
> > }
> > igt_stop_signal_helper();
> >
> > @@ -1632,6 +1674,5 @@ int main(int argc, char **argv)
> > * Let drm_fd leak, since it's needed by the dpms restore
> > * exit_handler and igt_exit() won't return.
> > */
> > -
> > igt_exit();
> > }
> > --
> > 2.7.4
> >
> > _______________________________________________
> > igt-dev mailing list
> > igt-dev@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/igt-dev
--
Mika Kahola - Intel OTC
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_flip: Change 2x tests execution order
2018-06-13 12:58 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_flip: Binary mode optimizations Mika Kahola
2018-06-13 12:58 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_flip: Set duration for subtest from command line Mika Kahola
@ 2018-06-13 12:58 ` Mika Kahola
2018-06-13 15:55 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_flip: Binary mode optimizations (rev3) Patchwork
2018-06-13 19:43 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 0 replies; 10+ messages in thread
From: Mika Kahola @ 2018-06-13 12:58 UTC (permalink / raw)
To: igt-dev
In order to optimize execution of kms_flip binary mode tests, let's change
the execution order so that 2x tests will be executed after basic tests.
On GLK platform with 1 display, the patch reduced the execution time by
2 seconds on average (2X tests were skipped). As these 2X tests are meant
to run with 2 display configuration the expected reduction in time on test
execution will be higher.
v2: update commit message (Petri)
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
tests/kms_flip.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index 09aaac2..511ed8c 100644
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -1635,7 +1635,9 @@ int main(int argc, char **argv)
tests[i].flags & TEST_BASIC ? "basic-" : "",
tests[i].name)
run_test(opt.duration, tests[i].flags);
+ }
+ for (i = 0; i < sizeof(tests) / sizeof (tests[0]); i++) {
if (tests[i].flags & TEST_NO_2X_OUTPUT)
continue;
@@ -1657,8 +1659,13 @@ int main(int argc, char **argv)
igt_subtest_f( "%s-interruptible", tests[i].name)
run_test(opt.duration, tests[i].flags);
+ }
- if (tests[i].flags & TEST_NO_2X_OUTPUT)
+ for (i = 0; i < sizeof(tests) / sizeof (tests[0]); i++) {
+ /* relative blocking vblank waits that get constantly interrupt
+ * take forver. So don't do them. */
+ if ((tests[i].flags & TEST_VBLANK_BLOCK) &&
+ !(tests[i].flags & TEST_VBLANK_ABSOLUTE))
continue;
/* code doesn't disable all crtcs, so skip rpm tests */
--
2.7.4
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 10+ messages in thread* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_flip: Binary mode optimizations (rev3)
2018-06-13 12:58 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_flip: Binary mode optimizations Mika Kahola
2018-06-13 12:58 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_flip: Set duration for subtest from command line Mika Kahola
2018-06-13 12:58 ` [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_flip: Change 2x tests execution order Mika Kahola
@ 2018-06-13 15:55 ` Patchwork
2018-06-13 19:43 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2018-06-13 15:55 UTC (permalink / raw)
To: Mika Kahola; +Cc: igt-dev
== Series Details ==
Series: tests/kms_flip: Binary mode optimizations (rev3)
URL : https://patchwork.freedesktop.org/series/44619/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4309 -> IGTPW_1458 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/44619/revisions/3/mbox/
== Known issues ==
Here are the changes found in IGTPW_1458 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@kms_flip@basic-flip-vs-modeset:
fi-skl-6700hq: PASS -> DMESG-WARN (fdo#105998)
igt@kms_frontbuffer_tracking@basic:
fi-hsw-4200u: PASS -> DMESG-FAIL (fdo#106103, fdo#102614)
==== Possible fixes ====
igt@gem_exec_suspend@basic-s4-devices:
fi-kbl-7500u: DMESG-WARN (fdo#105128) -> PASS
igt@kms_flip@basic-flip-vs-dpms:
fi-skl-6700hq: DMESG-WARN (fdo#105998) -> PASS
igt@kms_flip@basic-flip-vs-modeset:
fi-glk-j4005: DMESG-WARN (fdo#106000) -> PASS
igt@kms_flip@basic-flip-vs-wf_vblank:
fi-glk-j4005: FAIL (fdo#100368) -> PASS
igt@kms_pipe_crc_basic@read-crc-pipe-c:
fi-glk-j4005: DMESG-WARN (fdo#106097) -> PASS
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
fi-cnl-psr: DMESG-WARN (fdo#104951) -> PASS
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
fdo#104951 https://bugs.freedesktop.org/show_bug.cgi?id=104951
fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
fdo#105998 https://bugs.freedesktop.org/show_bug.cgi?id=105998
fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000
fdo#106097 https://bugs.freedesktop.org/show_bug.cgi?id=106097
fdo#106103 https://bugs.freedesktop.org/show_bug.cgi?id=106103
== Participating hosts (43 -> 39) ==
Missing (4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan
== Build changes ==
* IGT: IGT_4517 -> IGTPW_1458
CI_DRM_4309: 2740c5b0d0f40092355b329a62ede8cced7f64b9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1458: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1458/
IGT_4517: e94ce40798e35d2e3c4494f50b617908066bbf8b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Testlist changes ==
+igt@kms_flip@2x-bo-too-big-interruptible
+igt@kms_flip@2x-dpms-off-confusion-interruptible
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1458/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 10+ messages in thread* [igt-dev] ✓ Fi.CI.IGT: success for tests/kms_flip: Binary mode optimizations (rev3)
2018-06-13 12:58 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_flip: Binary mode optimizations Mika Kahola
` (2 preceding siblings ...)
2018-06-13 15:55 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_flip: Binary mode optimizations (rev3) Patchwork
@ 2018-06-13 19:43 ` Patchwork
3 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2018-06-13 19:43 UTC (permalink / raw)
To: Mika Kahola; +Cc: igt-dev
== Series Details ==
Series: tests/kms_flip: Binary mode optimizations (rev3)
URL : https://patchwork.freedesktop.org/series/44619/
State : success
== Summary ==
= CI Bug Log - changes from IGT_4517_full -> IGTPW_1458_full =
== Summary - WARNING ==
Minor unknown changes coming with IGTPW_1458_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_1458_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/44619/revisions/3/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in IGTPW_1458_full:
=== IGT changes ===
==== Warnings ====
igt@gem_exec_schedule@deep-bsd2:
shard-kbl: SKIP -> PASS +1
igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-cpu:
shard-snb: PASS -> SKIP +1
igt@pm_rc6_residency@rc6-accuracy:
shard-kbl: PASS -> SKIP +1
== Known issues ==
Here are the changes found in IGTPW_1458_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@gem_exec_reloc@basic-gtt-read-active:
shard-snb: PASS -> INCOMPLETE (fdo#105411)
igt@gem_exec_schedule@pi-ringfull-blt:
shard-glk: NOTRUN -> FAIL (fdo#103158) +2
igt@kms_flip@flip-vs-blocking-wf-vblank:
shard-hsw: PASS -> FAIL (fdo#103928)
igt@kms_flip_tiling@flip-to-y-tiled:
shard-glk: NOTRUN -> FAIL (fdo#103822, fdo#104724) +1
igt@kms_flip_tiling@flip-x-tiled:
shard-glk: NOTRUN -> FAIL (fdo#104724)
igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc:
shard-glk: NOTRUN -> FAIL (fdo#103167, fdo#104724)
igt@perf@blocking:
shard-hsw: PASS -> FAIL (fdo#102252)
igt@prime_vgem@coherency-gtt:
shard-glk: NOTRUN -> FAIL (fdo#100587)
igt@testdisplay:
shard-glk: NOTRUN -> INCOMPLETE (fdo#103359, k.org#198133)
==== Possible fixes ====
igt@drv_selftest@live_gtt:
shard-kbl: FAIL (fdo#105347) -> PASS
igt@drv_suspend@shrink:
shard-apl: INCOMPLETE (fdo#103927) -> PASS
shard-glk: INCOMPLETE (fdo#103359, k.org#198133) -> PASS
igt@kms_atomic_transition@1x-modeset-transitions-nonblocking-fencing:
shard-glk: FAIL (fdo#105703) -> PASS
igt@kms_flip@flip-vs-panning-vs-hang:
shard-snb: DMESG-WARN (fdo#103821) -> PASS
igt@kms_flip@plain-flip-ts-check-interruptible:
shard-hsw: FAIL (fdo#100368) -> PASS
igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
shard-snb: FAIL (fdo#103166, fdo#104724) -> PASS
igt@perf_pmu@busy-accuracy-50-vcs1:
shard-snb: INCOMPLETE (fdo#105411) -> SKIP
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#100587 https://bugs.freedesktop.org/show_bug.cgi?id=100587
fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
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#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
fdo#103821 https://bugs.freedesktop.org/show_bug.cgi?id=103821
fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
fdo#105347 https://bugs.freedesktop.org/show_bug.cgi?id=105347
fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
fdo#105703 https://bugs.freedesktop.org/show_bug.cgi?id=105703
k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133
== Participating hosts (5 -> 5) ==
No changes in participating hosts
== Build changes ==
* IGT: IGT_4517 -> IGTPW_1458
* Linux: CI_DRM_4307 -> CI_DRM_4309
CI_DRM_4307: 0cf6f8f74cad691364d738d1607bc45945f3a5f9 @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_4309: 2740c5b0d0f40092355b329a62ede8cced7f64b9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1458: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1458/
IGT_4517: e94ce40798e35d2e3c4494f50b617908066bbf8b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1458/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 1/2] tests/kms_flip: Set duration for subtest from command line
@ 2018-06-12 11:19 Mika Kahola
2018-06-13 11:30 ` [igt-dev] [PATCH i-g-t v2 " Mika Kahola
0 siblings, 1 reply; 10+ messages in thread
From: Mika Kahola @ 2018-06-12 11:19 UTC (permalink / raw)
To: igt-dev
To reduce the execution time of kms_flip test on CI, let's move subtest
duration parameter as command line option. The default subtest duration
is 0 seconds meaning that the subtest is run only once.
The patch reduces the kms_flip binary mode execution time on Geminilake from
1189 seconds down to 307 seconds with default subtest duration.
No functional changes on subtests.
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
tests/kms_flip.c | 113 +++++++++++++++++++++++++++++++++++++------------------
1 file changed, 77 insertions(+), 36 deletions(-)
diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index 3d6fe94..09aaac2 100644
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -82,6 +82,8 @@
#define DRM_CAP_TIMESTAMP_MONOTONIC 6
#endif
+#define MAX_DURATION 60
+
drmModeRes *resources;
int drm_fd;
static drm_intel_bufmgr *bufmgr;
@@ -95,6 +97,13 @@ static drmModeConnector *last_connector;
uint32_t *fb_ptr;
+/* Command line parameters. */
+struct {
+ int duration;
+} opt = {
+ .duration = 0,
+};
+
struct type_name {
int type;
const char *name;
@@ -1518,56 +1527,89 @@ static void test_nonblocking_read(int in)
close(fd);
}
+static int opt_handler(int option, int option_index, void *input)
+{
+ switch (option) {
+ case 'd':
+ opt.duration = strtol(optarg, NULL, 0);
+
+ if (opt.duration > MAX_DURATION) {
+ igt_debug("limiting test duration from %ds to %ds\n",
+ opt.duration, MAX_DURATION);
+ opt.duration = MAX_DURATION;
+ }
+
+ if (opt.duration < 0) {
+ igt_debug("limiting test duration from %ds to %ds\n",
+ opt.duration, 0);
+ opt.duration = 0;
+ }
+ break;
+ default:
+ igt_assert(false);
+ }
+
+ return 0;
+}
+
+const char *help_str =
+ " --duration test duration in seconds (default 0s)\n";
+
int main(int argc, char **argv)
{
+ struct option long_options[] = {
+ { "duration", required_argument, NULL, 'd'},
+ { 0, 0, 0, 0 }
+ };
+
struct {
- int duration;
int flags;
const char *name;
} tests[] = {
- { 30, TEST_VBLANK | TEST_CHECK_TS, "wf_vblank-ts-check" },
- { 30, TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_CHECK_TS,
+ { TEST_VBLANK | TEST_CHECK_TS, "wf_vblank-ts-check" },
+ { TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_CHECK_TS,
"blocking-wf_vblank" },
- { 30, TEST_VBLANK | TEST_VBLANK_ABSOLUTE,
+ { TEST_VBLANK | TEST_VBLANK_ABSOLUTE,
"absolute-wf_vblank" },
- { 30, TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_VBLANK_ABSOLUTE,
+ { TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_VBLANK_ABSOLUTE,
"blocking-absolute-wf_vblank" },
- { 10, TEST_FLIP | TEST_BASIC, "plain-flip" },
- { 30, TEST_FLIP | TEST_EBUSY , "busy-flip" },
- { 30, TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
- { 30, TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-check" },
- { 30, TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
+ { TEST_FLIP | TEST_BASIC, "plain-flip" },
+ { TEST_FLIP | TEST_EBUSY , "busy-flip" },
+ { TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
+ { TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-check" },
+ { TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
"plain-flip-fb-recreate" },
- { 30, TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
- { 20, TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "flip-vs-dpms" },
- { 30, TEST_FLIP | TEST_PAN, "flip-vs-panning" },
- { 20, TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "flip-vs-modeset" },
- { 30, TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
+ { TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
+ { TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "flip-vs-dpms" },
+ { TEST_FLIP | TEST_PAN, "flip-vs-panning" },
+ { TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "flip-vs-modeset" },
+ { TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
"flip-vs-expired-vblank" },
- { 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_ABSOLUTE |
- TEST_CHECK_TS, "flip-vs-absolute-wf_vblank" },
- { 10, TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS | TEST_BASIC,
+ { TEST_FLIP | TEST_VBLANK | TEST_VBLANK_ABSOLUTE |
+ TEST_CHECK_TS, "flip-vs-absolute-wf_vblank" },
+ { TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS | TEST_BASIC,
"flip-vs-wf_vblank" },
- { 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK |
- TEST_CHECK_TS, "flip-vs-blocking-wf-vblank" },
- { 30, TEST_FLIP | TEST_MODESET | TEST_HANG | TEST_NOEVENT, "flip-vs-modeset-vs-hang" },
- { 30, TEST_FLIP | TEST_PAN | TEST_HANG, "flip-vs-panning-vs-hang" },
- { 1, TEST_FLIP | TEST_EINVAL | TEST_FB_BAD_TILING, "flip-vs-bad-tiling" },
+ { TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK |
+ TEST_CHECK_TS, "flip-vs-blocking-wf-vblank" },
+ { TEST_FLIP | TEST_MODESET | TEST_HANG | TEST_NOEVENT, "flip-vs-modeset-vs-hang" },
+ { TEST_FLIP | TEST_PAN | TEST_HANG, "flip-vs-panning-vs-hang" },
+ { TEST_FLIP | TEST_EINVAL | TEST_FB_BAD_TILING, "flip-vs-bad-tiling" },
- { 1, TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP,
+ { TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP,
"flip-vs-dpms-off-vs-modeset" },
- { 1, TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP | TEST_SINGLE_BUFFER,
+ { TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP | TEST_SINGLE_BUFFER,
"single-buffer-flip-vs-dpms-off-vs-modeset" },
- { 30, TEST_FLIP | TEST_NO_2X_OUTPUT | TEST_DPMS_OFF_OTHERS , "dpms-off-confusion" },
- { 0, TEST_ENOENT | TEST_NOEVENT, "nonexisting-fb" },
- { 10, TEST_DPMS_OFF | TEST_DPMS | TEST_VBLANK_RACE, "dpms-vs-vblank-race" },
- { 10, TEST_MODESET | TEST_VBLANK_RACE, "modeset-vs-vblank-race" },
- { 0, TEST_BO_TOOBIG | TEST_NO_2X_OUTPUT, "bo-too-big" },
+ { TEST_FLIP | TEST_NO_2X_OUTPUT | TEST_DPMS_OFF_OTHERS , "dpms-off-confusion" },
+ { TEST_ENOENT | TEST_NOEVENT, "nonexisting-fb" },
+ { TEST_DPMS_OFF | TEST_DPMS | TEST_VBLANK_RACE, "dpms-vs-vblank-race" },
+ { TEST_MODESET | TEST_VBLANK_RACE, "modeset-vs-vblank-race" },
+ { TEST_BO_TOOBIG | TEST_NO_2X_OUTPUT, "bo-too-big" },
};
int i;
- igt_subtest_init(argc, argv);
+ igt_subtest_init_parse_opts(&argc, argv, "", long_options, help_str,
+ opt_handler, NULL);
igt_fixture {
drm_fd = drm_open_driver_master(DRIVER_ANY);
@@ -1592,7 +1634,7 @@ int main(int argc, char **argv)
igt_subtest_f("%s%s",
tests[i].flags & TEST_BASIC ? "basic-" : "",
tests[i].name)
- run_test(tests[i].duration, tests[i].flags);
+ run_test(opt.duration, tests[i].flags);
if (tests[i].flags & TEST_NO_2X_OUTPUT)
continue;
@@ -1602,7 +1644,7 @@ int main(int argc, char **argv)
continue;
igt_subtest_f( "2x-%s", tests[i].name)
- run_pair(tests[i].duration, tests[i].flags);
+ run_pair(opt.duration, tests[i].flags);
}
igt_fork_signal_helper();
@@ -1614,7 +1656,7 @@ int main(int argc, char **argv)
continue;
igt_subtest_f( "%s-interruptible", tests[i].name)
- run_test(tests[i].duration, tests[i].flags);
+ run_test(opt.duration, tests[i].flags);
if (tests[i].flags & TEST_NO_2X_OUTPUT)
continue;
@@ -1624,7 +1666,7 @@ int main(int argc, char **argv)
continue;
igt_subtest_f( "2x-%s-interruptible", tests[i].name)
- run_pair(tests[i].duration, tests[i].flags);
+ run_pair(opt.duration, tests[i].flags);
}
igt_stop_signal_helper();
@@ -1632,6 +1674,5 @@ int main(int argc, char **argv)
* Let drm_fd leak, since it's needed by the dpms restore
* exit_handler and igt_exit() won't return.
*/
-
igt_exit();
}
--
2.7.4
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 10+ messages in thread* [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_flip: Set duration for subtest from command line
2018-06-12 11:19 [igt-dev] [PATCH i-g-t 1/2] tests/kms_flip: Set duration for subtest from command line Mika Kahola
@ 2018-06-13 11:30 ` Mika Kahola
2018-06-13 12:07 ` Chris Wilson
0 siblings, 1 reply; 10+ messages in thread
From: Mika Kahola @ 2018-06-13 11:30 UTC (permalink / raw)
To: igt-dev
To reduce the execution time of kms_flip test on CI, let's move subtest
duration parameter as command line option. The default subtest duration
is 0 seconds meaning that the subtest is run only once.
The patch reduces the kms_flip binary mode execution time on Geminilake from
1189 seconds down to 307 seconds with default subtest duration.
No functional changes on subtests.
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
tests/kms_flip.c | 113 +++++++++++++++++++++++++++++++++++++------------------
1 file changed, 77 insertions(+), 36 deletions(-)
diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index 3d6fe94..09aaac2 100644
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -82,6 +82,8 @@
#define DRM_CAP_TIMESTAMP_MONOTONIC 6
#endif
+#define MAX_DURATION 60
+
drmModeRes *resources;
int drm_fd;
static drm_intel_bufmgr *bufmgr;
@@ -95,6 +97,13 @@ static drmModeConnector *last_connector;
uint32_t *fb_ptr;
+/* Command line parameters. */
+struct {
+ int duration;
+} opt = {
+ .duration = 0,
+};
+
struct type_name {
int type;
const char *name;
@@ -1518,56 +1527,89 @@ static void test_nonblocking_read(int in)
close(fd);
}
+static int opt_handler(int option, int option_index, void *input)
+{
+ switch (option) {
+ case 'd':
+ opt.duration = strtol(optarg, NULL, 0);
+
+ if (opt.duration > MAX_DURATION) {
+ igt_debug("limiting test duration from %ds to %ds\n",
+ opt.duration, MAX_DURATION);
+ opt.duration = MAX_DURATION;
+ }
+
+ if (opt.duration < 0) {
+ igt_debug("limiting test duration from %ds to %ds\n",
+ opt.duration, 0);
+ opt.duration = 0;
+ }
+ break;
+ default:
+ igt_assert(false);
+ }
+
+ return 0;
+}
+
+const char *help_str =
+ " --duration test duration in seconds (default 0s)\n";
+
int main(int argc, char **argv)
{
+ struct option long_options[] = {
+ { "duration", required_argument, NULL, 'd'},
+ { 0, 0, 0, 0 }
+ };
+
struct {
- int duration;
int flags;
const char *name;
} tests[] = {
- { 30, TEST_VBLANK | TEST_CHECK_TS, "wf_vblank-ts-check" },
- { 30, TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_CHECK_TS,
+ { TEST_VBLANK | TEST_CHECK_TS, "wf_vblank-ts-check" },
+ { TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_CHECK_TS,
"blocking-wf_vblank" },
- { 30, TEST_VBLANK | TEST_VBLANK_ABSOLUTE,
+ { TEST_VBLANK | TEST_VBLANK_ABSOLUTE,
"absolute-wf_vblank" },
- { 30, TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_VBLANK_ABSOLUTE,
+ { TEST_VBLANK | TEST_VBLANK_BLOCK | TEST_VBLANK_ABSOLUTE,
"blocking-absolute-wf_vblank" },
- { 10, TEST_FLIP | TEST_BASIC, "plain-flip" },
- { 30, TEST_FLIP | TEST_EBUSY , "busy-flip" },
- { 30, TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
- { 30, TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-check" },
- { 30, TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
+ { TEST_FLIP | TEST_BASIC, "plain-flip" },
+ { TEST_FLIP | TEST_EBUSY , "busy-flip" },
+ { TEST_FLIP | TEST_FENCE_STRESS , "flip-vs-fences" },
+ { TEST_FLIP | TEST_CHECK_TS, "plain-flip-ts-check" },
+ { TEST_FLIP | TEST_CHECK_TS | TEST_FB_RECREATE,
"plain-flip-fb-recreate" },
- { 30, TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
- { 20, TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "flip-vs-dpms" },
- { 30, TEST_FLIP | TEST_PAN, "flip-vs-panning" },
- { 20, TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "flip-vs-modeset" },
- { 30, TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
+ { TEST_FLIP | TEST_RMFB | TEST_MODESET , "flip-vs-rmfb" },
+ { TEST_FLIP | TEST_DPMS | TEST_EINVAL | TEST_BASIC, "flip-vs-dpms" },
+ { TEST_FLIP | TEST_PAN, "flip-vs-panning" },
+ { TEST_FLIP | TEST_MODESET | TEST_EINVAL | TEST_BASIC, "flip-vs-modeset" },
+ { TEST_FLIP | TEST_VBLANK_EXPIRED_SEQ,
"flip-vs-expired-vblank" },
- { 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_ABSOLUTE |
- TEST_CHECK_TS, "flip-vs-absolute-wf_vblank" },
- { 10, TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS | TEST_BASIC,
+ { TEST_FLIP | TEST_VBLANK | TEST_VBLANK_ABSOLUTE |
+ TEST_CHECK_TS, "flip-vs-absolute-wf_vblank" },
+ { TEST_FLIP | TEST_VBLANK | TEST_CHECK_TS | TEST_BASIC,
"flip-vs-wf_vblank" },
- { 30, TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK |
- TEST_CHECK_TS, "flip-vs-blocking-wf-vblank" },
- { 30, TEST_FLIP | TEST_MODESET | TEST_HANG | TEST_NOEVENT, "flip-vs-modeset-vs-hang" },
- { 30, TEST_FLIP | TEST_PAN | TEST_HANG, "flip-vs-panning-vs-hang" },
- { 1, TEST_FLIP | TEST_EINVAL | TEST_FB_BAD_TILING, "flip-vs-bad-tiling" },
+ { TEST_FLIP | TEST_VBLANK | TEST_VBLANK_BLOCK |
+ TEST_CHECK_TS, "flip-vs-blocking-wf-vblank" },
+ { TEST_FLIP | TEST_MODESET | TEST_HANG | TEST_NOEVENT, "flip-vs-modeset-vs-hang" },
+ { TEST_FLIP | TEST_PAN | TEST_HANG, "flip-vs-panning-vs-hang" },
+ { TEST_FLIP | TEST_EINVAL | TEST_FB_BAD_TILING, "flip-vs-bad-tiling" },
- { 1, TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP,
+ { TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP,
"flip-vs-dpms-off-vs-modeset" },
- { 1, TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP | TEST_SINGLE_BUFFER,
+ { TEST_DPMS_OFF | TEST_MODESET | TEST_FLIP | TEST_SINGLE_BUFFER,
"single-buffer-flip-vs-dpms-off-vs-modeset" },
- { 30, TEST_FLIP | TEST_NO_2X_OUTPUT | TEST_DPMS_OFF_OTHERS , "dpms-off-confusion" },
- { 0, TEST_ENOENT | TEST_NOEVENT, "nonexisting-fb" },
- { 10, TEST_DPMS_OFF | TEST_DPMS | TEST_VBLANK_RACE, "dpms-vs-vblank-race" },
- { 10, TEST_MODESET | TEST_VBLANK_RACE, "modeset-vs-vblank-race" },
- { 0, TEST_BO_TOOBIG | TEST_NO_2X_OUTPUT, "bo-too-big" },
+ { TEST_FLIP | TEST_NO_2X_OUTPUT | TEST_DPMS_OFF_OTHERS , "dpms-off-confusion" },
+ { TEST_ENOENT | TEST_NOEVENT, "nonexisting-fb" },
+ { TEST_DPMS_OFF | TEST_DPMS | TEST_VBLANK_RACE, "dpms-vs-vblank-race" },
+ { TEST_MODESET | TEST_VBLANK_RACE, "modeset-vs-vblank-race" },
+ { TEST_BO_TOOBIG | TEST_NO_2X_OUTPUT, "bo-too-big" },
};
int i;
- igt_subtest_init(argc, argv);
+ igt_subtest_init_parse_opts(&argc, argv, "", long_options, help_str,
+ opt_handler, NULL);
igt_fixture {
drm_fd = drm_open_driver_master(DRIVER_ANY);
@@ -1592,7 +1634,7 @@ int main(int argc, char **argv)
igt_subtest_f("%s%s",
tests[i].flags & TEST_BASIC ? "basic-" : "",
tests[i].name)
- run_test(tests[i].duration, tests[i].flags);
+ run_test(opt.duration, tests[i].flags);
if (tests[i].flags & TEST_NO_2X_OUTPUT)
continue;
@@ -1602,7 +1644,7 @@ int main(int argc, char **argv)
continue;
igt_subtest_f( "2x-%s", tests[i].name)
- run_pair(tests[i].duration, tests[i].flags);
+ run_pair(opt.duration, tests[i].flags);
}
igt_fork_signal_helper();
@@ -1614,7 +1656,7 @@ int main(int argc, char **argv)
continue;
igt_subtest_f( "%s-interruptible", tests[i].name)
- run_test(tests[i].duration, tests[i].flags);
+ run_test(opt.duration, tests[i].flags);
if (tests[i].flags & TEST_NO_2X_OUTPUT)
continue;
@@ -1624,7 +1666,7 @@ int main(int argc, char **argv)
continue;
igt_subtest_f( "2x-%s-interruptible", tests[i].name)
- run_pair(tests[i].duration, tests[i].flags);
+ run_pair(opt.duration, tests[i].flags);
}
igt_stop_signal_helper();
@@ -1632,6 +1674,5 @@ int main(int argc, char **argv)
* Let drm_fd leak, since it's needed by the dpms restore
* exit_handler and igt_exit() won't return.
*/
-
igt_exit();
}
--
2.7.4
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_flip: Set duration for subtest from command line
2018-06-13 11:30 ` [igt-dev] [PATCH i-g-t v2 " Mika Kahola
@ 2018-06-13 12:07 ` Chris Wilson
2018-06-13 12:49 ` Mika Kahola
0 siblings, 1 reply; 10+ messages in thread
From: Chris Wilson @ 2018-06-13 12:07 UTC (permalink / raw)
To: Mika Kahola, igt-dev
Quoting Mika Kahola (2018-06-13 12:30:37)
> To reduce the execution time of kms_flip test on CI, let's move subtest
> duration parameter as command line option. The default subtest duration
> is 0 seconds meaning that the subtest is run only once.
>
> The patch reduces the kms_flip binary mode execution time on Geminilake from
> 1189 seconds down to 307 seconds with default subtest duration.
>
> No functional changes on subtests.
That's a bold claim, since you change the very essence of the test.
Going from a few commits to one is a big change, a supplementary set of
tests but not a replacement.
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_flip: Set duration for subtest from command line
2018-06-13 12:07 ` Chris Wilson
@ 2018-06-13 12:49 ` Mika Kahola
0 siblings, 0 replies; 10+ messages in thread
From: Mika Kahola @ 2018-06-13 12:49 UTC (permalink / raw)
To: Chris Wilson, igt-dev
On Wed, 2018-06-13 at 13:07 +0100, Chris Wilson wrote:
> Quoting Mika Kahola (2018-06-13 12:30:37)
> >
> > To reduce the execution time of kms_flip test on CI, let's move
> > subtest
> > duration parameter as command line option. The default subtest
> > duration
> > is 0 seconds meaning that the subtest is run only once.
> >
> > The patch reduces the kms_flip binary mode execution time on
> > Geminilake from
> > 1189 seconds down to 307 seconds with default subtest duration.
> >
> > No functional changes on subtests.
> That's a bold claim, since you change the very essence of the test.
> Going from a few commits to one is a big change, a supplementary set
> of
> tests but not a replacement.
What I meant to say by this statement was that I didn't change any
functionality of the subtests itself. The patch introduces a command
line option to set the duration of the subtest instead of hardcoded
one. In that sense, I didn't considered it such a big change as you
still have the option to set the test duration.
> -Chris
--
Mika Kahola - Intel OTC
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2018-06-14 10:40 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-13 12:58 [igt-dev] [PATCH i-g-t v2 0/2] tests/kms_flip: Binary mode optimizations Mika Kahola
2018-06-13 12:58 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_flip: Set duration for subtest from command line Mika Kahola
2018-06-13 13:57 ` Ville Syrjälä
2018-06-14 10:40 ` Mika Kahola
2018-06-13 12:58 ` [igt-dev] [PATCH i-g-t v2 2/2] tests/kms_flip: Change 2x tests execution order Mika Kahola
2018-06-13 15:55 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_flip: Binary mode optimizations (rev3) Patchwork
2018-06-13 19:43 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2018-06-12 11:19 [igt-dev] [PATCH i-g-t 1/2] tests/kms_flip: Set duration for subtest from command line Mika Kahola
2018-06-13 11:30 ` [igt-dev] [PATCH i-g-t v2 " Mika Kahola
2018-06-13 12:07 ` Chris Wilson
2018-06-13 12:49 ` Mika Kahola
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox