All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 0/2] tests/kms_plane_multiple: Fix CI issues
@ 2017-01-16 13:09 Mika Kahola
  2017-01-16 13:09 ` [PATCH i-g-t 1/2] tests/kms_plane_multiple: Relax atomic commit time requirement Mika Kahola
  2017-01-16 13:09 ` [PATCH i-g-t 2/2] tests/kms_plane_multiple: Cleanup in favor of library functions Mika Kahola
  0 siblings, 2 replies; 6+ messages in thread
From: Mika Kahola @ 2017-01-16 13:09 UTC (permalink / raw)
  To: intel-gfx

Fixes for issues seen on CI tests. The patches provide relaxed timing
requirement for atomic commit as well as general cleanup to favor library
functions.

Mika Kahola (2):
  tests/kms_plane_multiple: Relax atomic commit time requirement
  tests/kms_plane_multiple: Cleanup in favor of library functions

 tests/kms_plane_multiple.c | 34 +++++++---------------------------
 1 file changed, 7 insertions(+), 27 deletions(-)

-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH i-g-t 1/2] tests/kms_plane_multiple: Relax atomic commit time requirement
  2017-01-16 13:09 [PATCH i-g-t 0/2] tests/kms_plane_multiple: Fix CI issues Mika Kahola
@ 2017-01-16 13:09 ` Mika Kahola
  2017-01-16 13:26   ` Maarten Lankhorst
  2017-01-16 13:09 ` [PATCH i-g-t 2/2] tests/kms_plane_multiple: Cleanup in favor of library functions Mika Kahola
  1 sibling, 1 reply; 6+ messages in thread
From: Mika Kahola @ 2017-01-16 13:09 UTC (permalink / raw)
  To: intel-gfx

Relax required time to atomic commits from 1 vblank to 2 vblanks.

Reference: Issues seen on BYT CI tests

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_plane_multiple.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index 792f530..6257a8b 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -235,7 +235,7 @@ test_atomic_plane_position_with_output(data_t *data, enum pipe pipe,
 	test_position_t test = { .data = data };
 	color_t blue  = { 0.0f, 0.0f, 1.0f };
 	igt_crc_t *crc = NULL;
-	unsigned int vblank_start;
+	unsigned int vblank_start, vblank_stop;
 	int i, n, ret;
 	int iterations = opt.iterations < 1 ? 1 : opt.iterations;
 	bool loop_forever;
@@ -274,13 +274,14 @@ test_atomic_plane_position_with_output(data_t *data, enum pipe pipe,
 		ret = read(data->display.drm_fd, buf, sizeof(buf));
 		igt_assert(ret >= 0);
 
-		igt_assert_eq(get_vblank(data->display.drm_fd, pipe, 0), vblank_start + 1);
+		vblank_stop = get_vblank(data->display.drm_fd, pipe, 0);
 		igt_assert_eq(e->type, DRM_EVENT_FLIP_COMPLETE);
 		igt_reset_timeout();
 
-		n = igt_pipe_crc_get_crcs(data->pipe_crc, MAX_CRCS, &crc);
+		n = igt_pipe_crc_get_crcs(data->pipe_crc, vblank_stop - vblank_start, &crc);
 
-		igt_assert_eq(n, MAX_CRCS);
+		igt_assert(vblank_stop - vblank_start <= MAX_CRCS);
+		igt_assert_eq(n, vblank_stop - vblank_start);
 
 		igt_assert_crc_equal(&test.reference_crc, crc);
 
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH i-g-t 2/2] tests/kms_plane_multiple: Cleanup in favor of library functions
  2017-01-16 13:09 [PATCH i-g-t 0/2] tests/kms_plane_multiple: Fix CI issues Mika Kahola
  2017-01-16 13:09 ` [PATCH i-g-t 1/2] tests/kms_plane_multiple: Relax atomic commit time requirement Mika Kahola
@ 2017-01-16 13:09 ` Mika Kahola
  2017-01-16 13:27   ` Maarten Lankhorst
  1 sibling, 1 reply; 6+ messages in thread
From: Mika Kahola @ 2017-01-16 13:09 UTC (permalink / raw)
  To: intel-gfx

Cleaunup by replacing get_vblank() function with library function
kmstest_get_vblank().

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_plane_multiple.c | 27 +++------------------------
 1 file changed, 3 insertions(+), 24 deletions(-)

diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index 6257a8b..f66f41a 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -67,28 +67,6 @@ struct {
 	.seed = 1,
 };
 
-static inline uint32_t pipe_select(int pipe)
-{
-	if (pipe > 1)
-		return pipe << DRM_VBLANK_HIGH_CRTC_SHIFT;
-	else if (pipe > 0)
-		return DRM_VBLANK_SECONDARY;
-	else
-		return 0;
-}
-
-static unsigned int get_vblank(int fd, int pipe, unsigned int flags)
-{
-	union drm_wait_vblank vbl;
-
-	memset(&vbl, 0, sizeof(vbl));
-	vbl.request.type = DRM_VBLANK_RELATIVE | pipe_select(pipe) | flags;
-	if (drmIoctl(fd, DRM_IOCTL_WAIT_VBLANK, &vbl))
-		return 0;
-
-	return vbl.reply.sequence;
-}
-
 /*
  * Common code across all tests, acting on data_t
  */
@@ -263,7 +241,8 @@ test_atomic_plane_position_with_output(data_t *data, enum pipe pipe,
 	while (i < iterations || loop_forever) {
 		prepare_planes(data, pipe, &blue, tiling, max_planes, output);
 
-		vblank_start = get_vblank(data->display.drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
+		vblank_start = kmstest_get_vblank(data->display.drm_fd, pipe,
+						  DRM_VBLANK_NEXTONMISS);
 
 		igt_display_commit_atomic(&data->display,
 					  DRM_MODE_PAGE_FLIP_EVENT,
@@ -274,7 +253,7 @@ test_atomic_plane_position_with_output(data_t *data, enum pipe pipe,
 		ret = read(data->display.drm_fd, buf, sizeof(buf));
 		igt_assert(ret >= 0);
 
-		vblank_stop = get_vblank(data->display.drm_fd, pipe, 0);
+		vblank_stop = kmstest_get_vblank(data->display.drm_fd, pipe, 0);
 		igt_assert_eq(e->type, DRM_EVENT_FLIP_COMPLETE);
 		igt_reset_timeout();
 
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH i-g-t 1/2] tests/kms_plane_multiple: Relax atomic commit time requirement
  2017-01-16 13:09 ` [PATCH i-g-t 1/2] tests/kms_plane_multiple: Relax atomic commit time requirement Mika Kahola
@ 2017-01-16 13:26   ` Maarten Lankhorst
  2017-01-16 13:31     ` Mika Kahola
  0 siblings, 1 reply; 6+ messages in thread
From: Maarten Lankhorst @ 2017-01-16 13:26 UTC (permalink / raw)
  To: Mika Kahola, intel-gfx

Op 16-01-17 om 14:09 schreef Mika Kahola:
> Relax required time to atomic commits from 1 vblank to 2 vblanks.
>
> Reference: Issues seen on BYT CI tests
>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> ---
>  tests/kms_plane_multiple.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
> index 792f530..6257a8b 100644
> --- a/tests/kms_plane_multiple.c
> +++ b/tests/kms_plane_multiple.c
> @@ -235,7 +235,7 @@ test_atomic_plane_position_with_output(data_t *data, enum pipe pipe,
>  	test_position_t test = { .data = data };
>  	color_t blue  = { 0.0f, 0.0f, 1.0f };
>  	igt_crc_t *crc = NULL;
> -	unsigned int vblank_start;
> +	unsigned int vblank_start, vblank_stop;
>  	int i, n, ret;
>  	int iterations = opt.iterations < 1 ? 1 : opt.iterations;
>  	bool loop_forever;
> @@ -274,13 +274,14 @@ test_atomic_plane_position_with_output(data_t *data, enum pipe pipe,
>  		ret = read(data->display.drm_fd, buf, sizeof(buf));
>  		igt_assert(ret >= 0);
>  
> -		igt_assert_eq(get_vblank(data->display.drm_fd, pipe, 0), vblank_start + 1);
> +		vblank_stop = get_vblank(data->display.drm_fd, pipe, 0);
>  		igt_assert_eq(e->type, DRM_EVENT_FLIP_COMPLETE);
>  		igt_reset_timeout();
>  
> -		n = igt_pipe_crc_get_crcs(data->pipe_crc, MAX_CRCS, &crc);
> +		n = igt_pipe_crc_get_crcs(data->pipe_crc, vblank_stop - vblank_start, &crc);
>  
> -		igt_assert_eq(n, MAX_CRCS);
> +		igt_assert(vblank_stop - vblank_start <= MAX_CRCS);
> +		igt_assert_eq(n, vblank_stop - vblank_start);
>  
Isn't MAX_CRCS 1? I don't see how this would relax anything then.

~Maarten
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH i-g-t 2/2] tests/kms_plane_multiple: Cleanup in favor of library functions
  2017-01-16 13:09 ` [PATCH i-g-t 2/2] tests/kms_plane_multiple: Cleanup in favor of library functions Mika Kahola
@ 2017-01-16 13:27   ` Maarten Lankhorst
  0 siblings, 0 replies; 6+ messages in thread
From: Maarten Lankhorst @ 2017-01-16 13:27 UTC (permalink / raw)
  To: Mika Kahola, intel-gfx

Op 16-01-17 om 14:09 schreef Mika Kahola:
> Cleaunup by replacing get_vblank() function with library function
> kmstest_get_vblank().
>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>
> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> ---
>  tests/kms_plane_multiple.c | 27 +++------------------------
>  1 file changed, 3 insertions(+), 24 deletions(-)
>
> diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
> index 6257a8b..f66f41a 100644
> --- a/tests/kms_plane_multiple.c
> +++ b/tests/kms_plane_multiple.c
> @@ -67,28 +67,6 @@ struct {
>  	.seed = 1,
>  };
>  
> -static inline uint32_t pipe_select(int pipe)
> -{
> -	if (pipe > 1)
> -		return pipe << DRM_VBLANK_HIGH_CRTC_SHIFT;
> -	else if (pipe > 0)
> -		return DRM_VBLANK_SECONDARY;
> -	else
> -		return 0;
> -}
> -
> -static unsigned int get_vblank(int fd, int pipe, unsigned int flags)
> -{
> -	union drm_wait_vblank vbl;
> -
> -	memset(&vbl, 0, sizeof(vbl));
> -	vbl.request.type = DRM_VBLANK_RELATIVE | pipe_select(pipe) | flags;
> -	if (drmIoctl(fd, DRM_IOCTL_WAIT_VBLANK, &vbl))
> -		return 0;
> -
> -	return vbl.reply.sequence;
> -}
> -
>  /*
>   * Common code across all tests, acting on data_t
>   */
> @@ -263,7 +241,8 @@ test_atomic_plane_position_with_output(data_t *data, enum pipe pipe,
>  	while (i < iterations || loop_forever) {
>  		prepare_planes(data, pipe, &blue, tiling, max_planes, output);
>  
> -		vblank_start = get_vblank(data->display.drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
> +		vblank_start = kmstest_get_vblank(data->display.drm_fd, pipe,
> +						  DRM_VBLANK_NEXTONMISS);
>  
>  		igt_display_commit_atomic(&data->display,
>  					  DRM_MODE_PAGE_FLIP_EVENT,
> @@ -274,7 +253,7 @@ test_atomic_plane_position_with_output(data_t *data, enum pipe pipe,
>  		ret = read(data->display.drm_fd, buf, sizeof(buf));
>  		igt_assert(ret >= 0);
>  
> -		vblank_stop = get_vblank(data->display.drm_fd, pipe, 0);
> +		vblank_stop = kmstest_get_vblank(data->display.drm_fd, pipe, 0);
>  		igt_assert_eq(e->type, DRM_EVENT_FLIP_COMPLETE);
>  		igt_reset_timeout();
>  

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH i-g-t 1/2] tests/kms_plane_multiple: Relax atomic commit time requirement
  2017-01-16 13:26   ` Maarten Lankhorst
@ 2017-01-16 13:31     ` Mika Kahola
  0 siblings, 0 replies; 6+ messages in thread
From: Mika Kahola @ 2017-01-16 13:31 UTC (permalink / raw)
  To: Maarten Lankhorst, intel-gfx

On Mon, 2017-01-16 at 14:26 +0100, Maarten Lankhorst wrote:
> Op 16-01-17 om 14:09 schreef Mika Kahola:
> > 
> > Relax required time to atomic commits from 1 vblank to 2 vblanks.
> > 
> > Reference: Issues seen on BYT CI tests
> > 
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > 
> > Signed-off-by: Mika Kahola <mika.kahola@intel.com>
> > ---
> >  tests/kms_plane_multiple.c | 9 +++++----
> >  1 file changed, 5 insertions(+), 4 deletions(-)
> > 
> > diff --git a/tests/kms_plane_multiple.c
> > b/tests/kms_plane_multiple.c
> > index 792f530..6257a8b 100644
> > --- a/tests/kms_plane_multiple.c
> > +++ b/tests/kms_plane_multiple.c
> > @@ -235,7 +235,7 @@ test_atomic_plane_position_with_output(data_t
> > *data, enum pipe pipe,
> >  	test_position_t test = { .data = data };
> >  	color_t blue  = { 0.0f, 0.0f, 1.0f };
> >  	igt_crc_t *crc = NULL;
> > -	unsigned int vblank_start;
> > +	unsigned int vblank_start, vblank_stop;
> >  	int i, n, ret;
> >  	int iterations = opt.iterations < 1 ? 1 : opt.iterations;
> >  	bool loop_forever;
> > @@ -274,13 +274,14 @@ test_atomic_plane_position_with_output(data_t
> > *data, enum pipe pipe,
> >  		ret = read(data->display.drm_fd, buf,
> > sizeof(buf));
> >  		igt_assert(ret >= 0);
> >  
> > -		igt_assert_eq(get_vblank(data->display.drm_fd,
> > pipe, 0), vblank_start + 1);
> > +		vblank_stop = get_vblank(data->display.drm_fd,
> > pipe, 0);
> >  		igt_assert_eq(e->type, DRM_EVENT_FLIP_COMPLETE);
> >  		igt_reset_timeout();
> >  
> > -		n = igt_pipe_crc_get_crcs(data->pipe_crc,
> > MAX_CRCS, &crc);
> > +		n = igt_pipe_crc_get_crcs(data->pipe_crc,
> > vblank_stop - vblank_start, &crc);
> >  
> > -		igt_assert_eq(n, MAX_CRCS);
> > +		igt_assert(vblank_stop - vblank_start <=
> > MAX_CRCS);
> > +		igt_assert_eq(n, vblank_stop - vblank_start);
> >  
> Isn't MAX_CRCS 1? I don't see how this would relax anything then.
True. I missed to increase MAX_CRCS. Update follows..

> 
> ~Maarten
-- 
Mika Kahola - Intel OTC

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

end of thread, other threads:[~2017-01-16 13:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-16 13:09 [PATCH i-g-t 0/2] tests/kms_plane_multiple: Fix CI issues Mika Kahola
2017-01-16 13:09 ` [PATCH i-g-t 1/2] tests/kms_plane_multiple: Relax atomic commit time requirement Mika Kahola
2017-01-16 13:26   ` Maarten Lankhorst
2017-01-16 13:31     ` Mika Kahola
2017-01-16 13:09 ` [PATCH i-g-t 2/2] tests/kms_plane_multiple: Cleanup in favor of library functions Mika Kahola
2017-01-16 13:27   ` Maarten Lankhorst

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.