All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH 0/2] Test cases for fbdev
@ 2020-11-03 10:48 Thomas Zimmermann
  2020-11-03 10:48 ` [igt-dev] [PATCH 1/2] tests/fbdev: Store framebuffer pointer at function scope Thomas Zimmermann
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Thomas Zimmermann @ 2020-11-03 10:48 UTC (permalink / raw)
  To: igt-dev; +Cc: Thomas Zimmermann

This patchset adds read and write tests for fbdev. It compares the content
of the framebuffer and reference buffer. A number of the special cases
near the EOF are also tested.

Depending on the implementation (sys, cfb), fbdev read/write changes its
semantics. Together with a kernel patches [1] these test cases intend to
provide a reference.

[1] https://patchwork.freedesktop.org/series/80038/

Thomas Zimmermann (2):
  tests/fbdev: Store framebuffer pointer at function scope
  tests/fbdev: Add tests for read/write ops on framebuffer

 tests/fbdev.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 83 insertions(+), 2 deletions(-)

--
2.29.0

_______________________________________________
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 1/2] tests/fbdev: Store framebuffer pointer at function scope
  2020-11-03 10:48 [igt-dev] [PATCH 0/2] Test cases for fbdev Thomas Zimmermann
@ 2020-11-03 10:48 ` Thomas Zimmermann
  2020-11-03 12:01   ` Daniel Vetter
  2020-11-03 10:48 ` [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer Thomas Zimmermann
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Thomas Zimmermann @ 2020-11-03 10:48 UTC (permalink / raw)
  To: igt-dev; +Cc: Thomas Zimmermann

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 tests/fbdev.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tests/fbdev.c b/tests/fbdev.c
index e5efeb93..11df954d 100644
--- a/tests/fbdev.c
+++ b/tests/fbdev.c
@@ -42,6 +42,7 @@ igt_main
 	struct fb_var_screeninfo var_info;
 	struct fb_fix_screeninfo fix_info;
 	int fd = -1;
+	void *map = NULL;
 
 	/*
 	 * Should this test focus on the fbdev independent of any drm driver,
@@ -71,7 +72,6 @@ igt_main
 	}
 
 	igt_subtest("mmap") {
-		void *map;
 
 		igt_require(fix_info.smem_len);
 
@@ -80,10 +80,11 @@ igt_main
 		igt_assert(map != MAP_FAILED);
 
 		memset(map, 0, fix_info.smem_len);
-		munmap(map, fix_info.smem_len);
 	}
 
 	igt_fixture {
+		if (map && map != MAP_FAILED)
+			munmap(map, fix_info.smem_len);
 		close(fd);
 	}
 }
-- 
2.29.0

_______________________________________________
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 2/2] tests/fbdev: Add tests for read/write ops on framebuffer
  2020-11-03 10:48 [igt-dev] [PATCH 0/2] Test cases for fbdev Thomas Zimmermann
  2020-11-03 10:48 ` [igt-dev] [PATCH 1/2] tests/fbdev: Store framebuffer pointer at function scope Thomas Zimmermann
@ 2020-11-03 10:48 ` Thomas Zimmermann
  2020-11-03 12:08   ` Daniel Vetter
                     ` (2 more replies)
  2020-11-03 13:34 ` [igt-dev] ✓ Fi.CI.BAT: success for Test cases for fbdev Patchwork
  2020-11-03 20:48 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 3 replies; 10+ messages in thread
From: Thomas Zimmermann @ 2020-11-03 10:48 UTC (permalink / raw)
  To: igt-dev; +Cc: Thomas Zimmermann

Read and write tests check the read and written buffer against the
content of the mapped framebuffer. Fbdev has some specific behavior
when reading/writing near the EOF, which the eof test checks.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 tests/fbdev.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 80 insertions(+)

diff --git a/tests/fbdev.c b/tests/fbdev.c
index 11df954d..045b0874 100644
--- a/tests/fbdev.c
+++ b/tests/fbdev.c
@@ -25,6 +25,7 @@
 
 #include "igt.h"
 
+#include <errno.h>
 #include <fcntl.h>
 #include <string.h>
 #include <sys/ioctl.h>
@@ -43,6 +44,7 @@ igt_main
 	struct fb_fix_screeninfo fix_info;
 	int fd = -1;
 	void *map = NULL;
+	void *buf = NULL;
 
 	/*
 	 * Should this test focus on the fbdev independent of any drm driver,
@@ -82,7 +84,85 @@ igt_main
 		memset(map, 0, fix_info.smem_len);
 	}
 
+	igt_subtest("read") {
+		ssize_t ret;
+		int cmp;
+
+		/* allocate two additional byte for eof test */
+		buf = malloc(fix_info.smem_len + 2);
+		igt_assert(buf);
+
+		/* framebuffer should be 0 from mmap test */
+		ret = pread(fd, buf, fix_info.smem_len, 0);
+		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
+		cmp = memcmp(map, buf, fix_info.smem_len);
+		igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0\n");
+
+		/* fill framebuffer with 0x55 and compare again */
+		memset(map, 0x55, fix_info.smem_len);
+		ret = pread(fd, buf, fix_info.smem_len, 0);
+		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
+		cmp = memcmp(map, buf, fix_info.smem_len);
+		igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0x55\n");
+	}
+
+	igt_subtest("write") {
+		ssize_t ret;
+		int cmp;
+
+		/* clear framebuffer and compare again */
+		memset(buf, 0, fix_info.smem_len);
+		ret = pwrite(fd, buf, fix_info.smem_len, 0);
+		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pwrite failed\n");
+		cmp = memcmp(map, buf, fix_info.smem_len);
+		igt_require_f(!cmp, "write buffer differs from mapped framebuffer for 0\n");
+	}
+
+	igt_subtest("eof") {
+		unsigned long lastindex = fix_info.smem_len - 1;
+		unsigned char *maplast = &((unsigned char *)map)[lastindex];
+		unsigned char *buflast = &((unsigned char *)buf)[lastindex];
+		long long ret;
+
+		*buflast = 0x55;
+
+		/* write across EOF; set remaining bytes */
+		ret = (long long)pwrite(fd, buflast, 2, lastindex);
+		igt_require_f(ret == 1, "write crossed EOF, ret=%lld\n", ret);
+		igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
+		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+		/* write at EOF; get ENOSPC */
+		ret = (long long)pwrite(fd, &buflast[1], 1, lastindex + 1);
+		igt_require_f((ret == -1) && (errno == ENOSPC), "write at EOF, ret=%lld\n", ret);
+
+		*maplast = 0;
+
+		/* write final byte */
+		ret = (long long)pwrite(fd, buflast, 1, lastindex);
+		igt_require_f(ret == 1, "write before EOF, ret=%lld\n", ret);
+		igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
+		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+		/* write after EOF; get EFBIG */
+		ret = (long long)pwrite(fd, &buflast[2], 1, lastindex + 2);
+		igt_require_f((ret == -1) && (errno == EFBIG), "write after EOF, ret=%lld\n", ret);
+
+		*maplast = 0;
+
+		/* read across the EOF; get remaining bytes */
+		ret = (long long)pread(fd, buflast, 2, lastindex);
+		igt_require_f(ret == 1, "read before EOF\n");
+		igt_require_f(*maplast == *buflast, "read buffer differs from mapped framebuffer at final byte, "
+		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
+
+		/* read after EOF; get 0 */
+		ret = (long long)pread(fd, &buflast[1], 1, lastindex + 1);
+		igt_require_f(ret == 0, "read at EOF, ret=%lld\n", ret);
+	}
+
 	igt_fixture {
+		free(buf);
 		if (map && map != MAP_FAILED)
 			munmap(map, fix_info.smem_len);
 		close(fd);
-- 
2.29.0

_______________________________________________
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 1/2] tests/fbdev: Store framebuffer pointer at function scope
  2020-11-03 10:48 ` [igt-dev] [PATCH 1/2] tests/fbdev: Store framebuffer pointer at function scope Thomas Zimmermann
@ 2020-11-03 12:01   ` Daniel Vetter
  0 siblings, 0 replies; 10+ messages in thread
From: Daniel Vetter @ 2020-11-03 12:01 UTC (permalink / raw)
  To: Thomas Zimmermann; +Cc: IGT development

On Tue, Nov 3, 2020 at 11:48 AM Thomas Zimmermann <tzimmermann@suse.de> wrote:
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>

Quick intro to igt subtests: They can be enumerated without running
them (--list-subtest), which skips everything in these blocks, and
they can be run individually (with --run-subtest).

This means if you extract setup code into common code, you have to
pull it all out into igt_fixtures. But that also complicates the test
flow if e.g. another test would be trying to unload the fbdev driver,
so generally only  a good idea if you need a given pieces of setup for
all tests (or a set of tests in an igt_subtest_group) and the code is
expensive enough to warrant the extraction.

I'd just extract this into an fbdev mmap helper here that you can call
from test functions as needed. That's simpler.
-Daniel

> ---
>  tests/fbdev.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tests/fbdev.c b/tests/fbdev.c
> index e5efeb93..11df954d 100644
> --- a/tests/fbdev.c
> +++ b/tests/fbdev.c
> @@ -42,6 +42,7 @@ igt_main
>         struct fb_var_screeninfo var_info;
>         struct fb_fix_screeninfo fix_info;
>         int fd = -1;
> +       void *map = NULL;
>
>         /*
>          * Should this test focus on the fbdev independent of any drm driver,
> @@ -71,7 +72,6 @@ igt_main
>         }
>
>         igt_subtest("mmap") {
> -               void *map;
>
>                 igt_require(fix_info.smem_len);
>
> @@ -80,10 +80,11 @@ igt_main
>                 igt_assert(map != MAP_FAILED);
>
>                 memset(map, 0, fix_info.smem_len);
> -               munmap(map, fix_info.smem_len);
>         }
>
>         igt_fixture {
> +               if (map && map != MAP_FAILED)
> +                       munmap(map, fix_info.smem_len);
>                 close(fd);
>         }
>  }
> --
> 2.29.0
>
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev



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

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

* Re: [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer
  2020-11-03 10:48 ` [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer Thomas Zimmermann
@ 2020-11-03 12:08   ` Daniel Vetter
  2020-11-03 12:10     ` Daniel Vetter
  2020-11-03 12:14   ` Chris Wilson
  2020-11-03 12:58   ` Petri Latvala
  2 siblings, 1 reply; 10+ messages in thread
From: Daniel Vetter @ 2020-11-03 12:08 UTC (permalink / raw)
  To: Thomas Zimmermann; +Cc: IGT development

On Tue, Nov 3, 2020 at 11:48 AM Thomas Zimmermann <tzimmermann@suse.de> wrote:
>
> Read and write tests check the read and written buffer against the
> content of the mapped framebuffer. Fbdev has some specific behavior
> when reading/writing near the EOF, which the eof test checks.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  tests/fbdev.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 80 insertions(+)
>
> diff --git a/tests/fbdev.c b/tests/fbdev.c
> index 11df954d..045b0874 100644
> --- a/tests/fbdev.c
> +++ b/tests/fbdev.c
> @@ -25,6 +25,7 @@
>
>  #include "igt.h"
>
> +#include <errno.h>
>  #include <fcntl.h>
>  #include <string.h>
>  #include <sys/ioctl.h>
> @@ -43,6 +44,7 @@ igt_main
>         struct fb_fix_screeninfo fix_info;
>         int fd = -1;
>         void *map = NULL;
> +       void *buf = NULL;

Same thing here as with the shared map, this blows up if you only run
specific subtests.

Also I think this is getting unwieldy, and we should extract subtests
into functions that get called for local scoping and everything.

>
>         /*
>          * Should this test focus on the fbdev independent of any drm driver,
> @@ -82,7 +84,85 @@ igt_main
>                 memset(map, 0, fix_info.smem_len);
>         }
>
> +       igt_subtest("read") {
> +               ssize_t ret;
> +               int cmp;
> +
> +               /* allocate two additional byte for eof test */
> +               buf = malloc(fix_info.smem_len + 2);
> +               igt_assert(buf);
> +
> +               /* framebuffer should be 0 from mmap test */
> +               ret = pread(fd, buf, fix_info.smem_len, 0);
> +               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
> +               cmp = memcmp(map, buf, fix_info.smem_len);
> +               igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0\n");
> +
> +               /* fill framebuffer with 0x55 and compare again */
> +               memset(map, 0x55, fix_info.smem_len);
> +               ret = pread(fd, buf, fix_info.smem_len, 0);
> +               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
> +               cmp = memcmp(map, buf, fix_info.smem_len);
> +               igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0x55\n");
> +       }
> +
> +       igt_subtest("write") {
> +               ssize_t ret;
> +               int cmp;
> +
> +               /* clear framebuffer and compare again */
> +               memset(buf, 0, fix_info.smem_len);
> +               ret = pwrite(fd, buf, fix_info.smem_len, 0);
> +               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pwrite failed\n");
> +               cmp = memcmp(map, buf, fix_info.smem_len);
> +               igt_require_f(!cmp, "write buffer differs from mapped framebuffer for 0\n");
> +       }
> +
> +       igt_subtest("eof") {
> +               unsigned long lastindex = fix_info.smem_len - 1;
> +               unsigned char *maplast = &((unsigned char *)map)[lastindex];
> +               unsigned char *buflast = &((unsigned char *)buf)[lastindex];
> +               long long ret;
> +
> +               *buflast = 0x55;
> +
> +               /* write across EOF; set remaining bytes */
> +               ret = (long long)pwrite(fd, buflast, 2, lastindex);
> +               igt_require_f(ret == 1, "write crossed EOF, ret=%lld\n", ret);
> +               igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
> +                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
> +
> +               /* write at EOF; get ENOSPC */
> +               ret = (long long)pwrite(fd, &buflast[1], 1, lastindex + 1);
> +               igt_require_f((ret == -1) && (errno == ENOSPC), "write at EOF, ret=%lld\n", ret);
> +
> +               *maplast = 0;
> +
> +               /* write final byte */
> +               ret = (long long)pwrite(fd, buflast, 1, lastindex);
> +               igt_require_f(ret == 1, "write before EOF, ret=%lld\n", ret);
> +               igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
> +                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
> +
> +               /* write after EOF; get EFBIG */
> +               ret = (long long)pwrite(fd, &buflast[2], 1, lastindex + 2);
> +               igt_require_f((ret == -1) && (errno == EFBIG), "write after EOF, ret=%lld\n", ret);
> +
> +               *maplast = 0;
> +
> +               /* read across the EOF; get remaining bytes */
> +               ret = (long long)pread(fd, buflast, 2, lastindex);
> +               igt_require_f(ret == 1, "read before EOF\n");
> +               igt_require_f(*maplast == *buflast, "read buffer differs from mapped framebuffer at final byte, "
> +                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
> +
> +               /* read after EOF; get 0 */
> +               ret = (long long)pread(fd, &buflast[1], 1, lastindex + 1);
> +               igt_require_f(ret == 0, "read at EOF, ret=%lld\n", ret);

Maybe also a NULL pointer tests which checks we get an EFAULT?

Another corner case is a read/write that's not PAGE aligned, e.g. from
PAGE_SIZE/2 to PAGE_SIZE + PAGE_SIZE/2 (assuming the buffer is at
least 2 pages ofc).

Otherwise test logic looks complete to me. Thanks for creating these.
-Daniel

> +       }
> +
>         igt_fixture {
> +               free(buf);
>                 if (map && map != MAP_FAILED)
>                         munmap(map, fix_info.smem_len);
>                 close(fd);
> --
> 2.29.0
>
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev



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

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

* Re: [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer
  2020-11-03 12:08   ` Daniel Vetter
@ 2020-11-03 12:10     ` Daniel Vetter
  0 siblings, 0 replies; 10+ messages in thread
From: Daniel Vetter @ 2020-11-03 12:10 UTC (permalink / raw)
  To: Thomas Zimmermann; +Cc: IGT development

On Tue, Nov 3, 2020 at 1:08 PM Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> On Tue, Nov 3, 2020 at 11:48 AM Thomas Zimmermann <tzimmermann@suse.de> wrote:
> >
> > Read and write tests check the read and written buffer against the
> > content of the mapped framebuffer. Fbdev has some specific behavior
> > when reading/writing near the EOF, which the eof test checks.
> >
> > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> > ---
> >  tests/fbdev.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 80 insertions(+)
> >
> > diff --git a/tests/fbdev.c b/tests/fbdev.c
> > index 11df954d..045b0874 100644
> > --- a/tests/fbdev.c
> > +++ b/tests/fbdev.c
> > @@ -25,6 +25,7 @@
> >
> >  #include "igt.h"
> >
> > +#include <errno.h>
> >  #include <fcntl.h>
> >  #include <string.h>
> >  #include <sys/ioctl.h>
> > @@ -43,6 +44,7 @@ igt_main
> >         struct fb_fix_screeninfo fix_info;
> >         int fd = -1;
> >         void *map = NULL;
> > +       void *buf = NULL;
>
> Same thing here as with the shared map, this blows up if you only run
> specific subtests.
>
> Also I think this is getting unwieldy, and we should extract subtests
> into functions that get called for local scoping and everything.
>
> >
> >         /*
> >          * Should this test focus on the fbdev independent of any drm driver,
> > @@ -82,7 +84,85 @@ igt_main
> >                 memset(map, 0, fix_info.smem_len);
> >         }
> >
> > +       igt_subtest("read") {
> > +               ssize_t ret;
> > +               int cmp;
> > +
> > +               /* allocate two additional byte for eof test */
> > +               buf = malloc(fix_info.smem_len + 2);
> > +               igt_assert(buf);
> > +
> > +               /* framebuffer should be 0 from mmap test */
> > +               ret = pread(fd, buf, fix_info.smem_len, 0);
> > +               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
> > +               cmp = memcmp(map, buf, fix_info.smem_len);
> > +               igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0\n");
> > +
> > +               /* fill framebuffer with 0x55 and compare again */
> > +               memset(map, 0x55, fix_info.smem_len);
> > +               ret = pread(fd, buf, fix_info.smem_len, 0);
> > +               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
> > +               cmp = memcmp(map, buf, fix_info.smem_len);
> > +               igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0x55\n");
> > +       }
> > +
> > +       igt_subtest("write") {
> > +               ssize_t ret;
> > +               int cmp;
> > +
> > +               /* clear framebuffer and compare again */
> > +               memset(buf, 0, fix_info.smem_len);
> > +               ret = pwrite(fd, buf, fix_info.smem_len, 0);
> > +               igt_require_f(ret == (ssize_t)fix_info.smem_len, "pwrite failed\n");
> > +               cmp = memcmp(map, buf, fix_info.smem_len);
> > +               igt_require_f(!cmp, "write buffer differs from mapped framebuffer for 0\n");
> > +       }
> > +
> > +       igt_subtest("eof") {
> > +               unsigned long lastindex = fix_info.smem_len - 1;
> > +               unsigned char *maplast = &((unsigned char *)map)[lastindex];
> > +               unsigned char *buflast = &((unsigned char *)buf)[lastindex];
> > +               long long ret;
> > +
> > +               *buflast = 0x55;
> > +
> > +               /* write across EOF; set remaining bytes */
> > +               ret = (long long)pwrite(fd, buflast, 2, lastindex);
> > +               igt_require_f(ret == 1, "write crossed EOF, ret=%lld\n", ret);
> > +               igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
> > +                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
> > +
> > +               /* write at EOF; get ENOSPC */
> > +               ret = (long long)pwrite(fd, &buflast[1], 1, lastindex + 1);
> > +               igt_require_f((ret == -1) && (errno == ENOSPC), "write at EOF, ret=%lld\n", ret);
> > +
> > +               *maplast = 0;
> > +
> > +               /* write final byte */
> > +               ret = (long long)pwrite(fd, buflast, 1, lastindex);
> > +               igt_require_f(ret == 1, "write before EOF, ret=%lld\n", ret);
> > +               igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
> > +                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
> > +
> > +               /* write after EOF; get EFBIG */
> > +               ret = (long long)pwrite(fd, &buflast[2], 1, lastindex + 2);
> > +               igt_require_f((ret == -1) && (errno == EFBIG), "write after EOF, ret=%lld\n", ret);
> > +
> > +               *maplast = 0;
> > +
> > +               /* read across the EOF; get remaining bytes */
> > +               ret = (long long)pread(fd, buflast, 2, lastindex);
> > +               igt_require_f(ret == 1, "read before EOF\n");
> > +               igt_require_f(*maplast == *buflast, "read buffer differs from mapped framebuffer at final byte, "
> > +                                                   "maplast=%u buflast=%u\n", *maplast, *buflast);
> > +
> > +               /* read after EOF; get 0 */
> > +               ret = (long long)pread(fd, &buflast[1], 1, lastindex + 1);
> > +               igt_require_f(ret == 0, "read at EOF, ret=%lld\n", ret);
>
> Maybe also a NULL pointer tests which checks we get an EFAULT?
>
> Another corner case is a read/write that's not PAGE aligned, e.g. from
> PAGE_SIZE/2 to PAGE_SIZE + PAGE_SIZE/2 (assuming the buffer is at
> least 2 pages ofc).

Uh that gives us a read/write size of PAGE_SIZE, so not too
interesting. Would need to be more misaligned (maybe even make it odd
or something nasty like that, and bigger than one size so we go
through the loop once in the kernel code).
-Daniel

> Otherwise test logic looks complete to me. Thanks for creating these.
> -Daniel
>
> > +       }
> > +
> >         igt_fixture {
> > +               free(buf);
> >                 if (map && map != MAP_FAILED)
> >                         munmap(map, fix_info.smem_len);
> >                 close(fd);
> > --
> > 2.29.0
> >
> > _______________________________________________
> > igt-dev mailing list
> > igt-dev@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/igt-dev
>
>
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch



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

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

* Re: [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer
  2020-11-03 10:48 ` [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer Thomas Zimmermann
  2020-11-03 12:08   ` Daniel Vetter
@ 2020-11-03 12:14   ` Chris Wilson
  2020-11-03 12:58   ` Petri Latvala
  2 siblings, 0 replies; 10+ messages in thread
From: Chris Wilson @ 2020-11-03 12:14 UTC (permalink / raw)
  To: Thomas Zimmermann, igt-dev; +Cc: Thomas Zimmermann

Quoting Thomas Zimmermann (2020-11-03 10:48:13)
> Read and write tests check the read and written buffer against the
> content of the mapped framebuffer. Fbdev has some specific behavior
> when reading/writing near the EOF, which the eof test checks.

Subtests are run independently. If you need something across multiple
tests, put it into a fixture (ideally within a subtest group), or
instantiate it per subtest (more common approach with each subtest being
its own routine).
-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 2/2] tests/fbdev: Add tests for read/write ops on framebuffer
  2020-11-03 10:48 ` [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer Thomas Zimmermann
  2020-11-03 12:08   ` Daniel Vetter
  2020-11-03 12:14   ` Chris Wilson
@ 2020-11-03 12:58   ` Petri Latvala
  2 siblings, 0 replies; 10+ messages in thread
From: Petri Latvala @ 2020-11-03 12:58 UTC (permalink / raw)
  To: Thomas Zimmermann; +Cc: igt-dev

On Tue, Nov 03, 2020 at 11:48:13AM +0100, Thomas Zimmermann wrote:
> Read and write tests check the read and written buffer against the
> content of the mapped framebuffer. Fbdev has some specific behavior
> when reading/writing near the EOF, which the eof test checks.
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>  tests/fbdev.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 80 insertions(+)
> 
> diff --git a/tests/fbdev.c b/tests/fbdev.c
> index 11df954d..045b0874 100644
> --- a/tests/fbdev.c
> +++ b/tests/fbdev.c
> @@ -25,6 +25,7 @@
>  
>  #include "igt.h"
>  
> +#include <errno.h>
>  #include <fcntl.h>
>  #include <string.h>
>  #include <sys/ioctl.h>
> @@ -43,6 +44,7 @@ igt_main
>  	struct fb_fix_screeninfo fix_info;
>  	int fd = -1;
>  	void *map = NULL;
> +	void *buf = NULL;

In addition to what Daniel and Chris already pointed out:

Behind the scenes igt_subtest and igt_fixture use longjmp. Variables
in function scope that are assigned after setjmp have unspecified
values after longjmp. Translated to IGT terms: Variables declared in
igt_main that are assigned to when inside igt_fixture or igt_subtest
have unspecified values when inside another such block.

In essence if you move the variables to be shared across multiple
tests they need to be moved all the way to global scope.


-- 
Petri Latvala



>  
>  	/*
>  	 * Should this test focus on the fbdev independent of any drm driver,
> @@ -82,7 +84,85 @@ igt_main
>  		memset(map, 0, fix_info.smem_len);
>  	}
>  
> +	igt_subtest("read") {
> +		ssize_t ret;
> +		int cmp;
> +
> +		/* allocate two additional byte for eof test */
> +		buf = malloc(fix_info.smem_len + 2);
> +		igt_assert(buf);
> +
> +		/* framebuffer should be 0 from mmap test */
> +		ret = pread(fd, buf, fix_info.smem_len, 0);
> +		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
> +		cmp = memcmp(map, buf, fix_info.smem_len);
> +		igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0\n");
> +
> +		/* fill framebuffer with 0x55 and compare again */
> +		memset(map, 0x55, fix_info.smem_len);
> +		ret = pread(fd, buf, fix_info.smem_len, 0);
> +		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pread failed\n");
> +		cmp = memcmp(map, buf, fix_info.smem_len);
> +		igt_require_f(!cmp, "read buffer differs from mapped framebuffer for 0x55\n");
> +	}
> +
> +	igt_subtest("write") {
> +		ssize_t ret;
> +		int cmp;
> +
> +		/* clear framebuffer and compare again */
> +		memset(buf, 0, fix_info.smem_len);
> +		ret = pwrite(fd, buf, fix_info.smem_len, 0);
> +		igt_require_f(ret == (ssize_t)fix_info.smem_len, "pwrite failed\n");
> +		cmp = memcmp(map, buf, fix_info.smem_len);
> +		igt_require_f(!cmp, "write buffer differs from mapped framebuffer for 0\n");
> +	}
> +
> +	igt_subtest("eof") {
> +		unsigned long lastindex = fix_info.smem_len - 1;
> +		unsigned char *maplast = &((unsigned char *)map)[lastindex];
> +		unsigned char *buflast = &((unsigned char *)buf)[lastindex];
> +		long long ret;
> +
> +		*buflast = 0x55;
> +
> +		/* write across EOF; set remaining bytes */
> +		ret = (long long)pwrite(fd, buflast, 2, lastindex);
> +		igt_require_f(ret == 1, "write crossed EOF, ret=%lld\n", ret);
> +		igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
> +		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
> +
> +		/* write at EOF; get ENOSPC */
> +		ret = (long long)pwrite(fd, &buflast[1], 1, lastindex + 1);
> +		igt_require_f((ret == -1) && (errno == ENOSPC), "write at EOF, ret=%lld\n", ret);
> +
> +		*maplast = 0;
> +
> +		/* write final byte */
> +		ret = (long long)pwrite(fd, buflast, 1, lastindex);
> +		igt_require_f(ret == 1, "write before EOF, ret=%lld\n", ret);
> +		igt_require_f(*maplast == *buflast, "write buffer differs from mapped framebuffer at final byte, "
> +		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
> +
> +		/* write after EOF; get EFBIG */
> +		ret = (long long)pwrite(fd, &buflast[2], 1, lastindex + 2);
> +		igt_require_f((ret == -1) && (errno == EFBIG), "write after EOF, ret=%lld\n", ret);
> +
> +		*maplast = 0;
> +
> +		/* read across the EOF; get remaining bytes */
> +		ret = (long long)pread(fd, buflast, 2, lastindex);
> +		igt_require_f(ret == 1, "read before EOF\n");
> +		igt_require_f(*maplast == *buflast, "read buffer differs from mapped framebuffer at final byte, "
> +		                                    "maplast=%u buflast=%u\n", *maplast, *buflast);
> +
> +		/* read after EOF; get 0 */
> +		ret = (long long)pread(fd, &buflast[1], 1, lastindex + 1);
> +		igt_require_f(ret == 0, "read at EOF, ret=%lld\n", ret);
> +	}
> +
>  	igt_fixture {
> +		free(buf);
>  		if (map && map != MAP_FAILED)
>  			munmap(map, fix_info.smem_len);
>  		close(fd);
> -- 
> 2.29.0
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for Test cases for fbdev
  2020-11-03 10:48 [igt-dev] [PATCH 0/2] Test cases for fbdev Thomas Zimmermann
  2020-11-03 10:48 ` [igt-dev] [PATCH 1/2] tests/fbdev: Store framebuffer pointer at function scope Thomas Zimmermann
  2020-11-03 10:48 ` [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer Thomas Zimmermann
@ 2020-11-03 13:34 ` Patchwork
  2020-11-03 20:48 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2020-11-03 13:34 UTC (permalink / raw)
  To: Thomas Zimmermann; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 4348 bytes --]

== Series Details ==

Series: Test cases for fbdev
URL   : https://patchwork.freedesktop.org/series/83424/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9253 -> IGTPW_5124
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-tgl-u2:          [PASS][1] -> [FAIL][2] ([i915#1888])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-apl-guc:         [PASS][3] -> [DMESG-WARN][4] ([i915#1635] / [i915#1982])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-apl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-apl-guc/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-bsw-n3050:       [PASS][5] -> [DMESG-WARN][6] ([i915#1982])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
    - fi-byt-j1900:       [PASS][7] -> [DMESG-WARN][8] ([i915#1982])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-byt-j1900/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-byt-j1900/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-icl-u2:          [PASS][9] -> [DMESG-WARN][10] ([i915#1982]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  
#### Possible fixes ####

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-apl-guc:         [DMESG-WARN][11] ([i915#1635] / [i915#1982]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-apl-guc/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-apl-guc/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
    - fi-icl-u2:          [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html

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

  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2524]: https://gitlab.freedesktop.org/drm/intel/issues/2524


Participating hosts (43 -> 38)
------------------------------

  Missing    (5): fi-ilk-m540 fi-tgl-dsi fi-hsw-4200u fi-bsw-cyan fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5830 -> IGTPW_5124

  CI-20190529: 20190529
  CI_DRM_9253: a8c030d641dc0961d180b866ab6e5e9032dcbdf4 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_5124: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/index.html
  IGT_5830: 12d370cb57e0cfcb781c87ad9e15e68b17a1f41f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@fbdev@eof
+igt@fbdev@read
+igt@fbdev@write

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/index.html

[-- Attachment #1.2: Type: text/html, Size: 5471 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
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: failure for Test cases for fbdev
  2020-11-03 10:48 [igt-dev] [PATCH 0/2] Test cases for fbdev Thomas Zimmermann
                   ` (2 preceding siblings ...)
  2020-11-03 13:34 ` [igt-dev] ✓ Fi.CI.BAT: success for Test cases for fbdev Patchwork
@ 2020-11-03 20:48 ` Patchwork
  3 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2020-11-03 20:48 UTC (permalink / raw)
  To: Thomas Zimmermann; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 27089 bytes --]

== Series Details ==

Series: Test cases for fbdev
URL   : https://patchwork.freedesktop.org/series/83424/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9253_full -> IGTPW_5124_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_5124_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_5124_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://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/index.html

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@fbdev@eof} (NEW):
    - shard-tglb:         NOTRUN -> [CRASH][1] +2 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb3/igt@fbdev@eof.html

  * {igt@fbdev@read} (NEW):
    - shard-kbl:          NOTRUN -> [CRASH][2] +2 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl4/igt@fbdev@read.html
    - shard-hsw:          NOTRUN -> [CRASH][3] +2 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw4/igt@fbdev@read.html
    - shard-glk:          NOTRUN -> [CRASH][4] +2 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk9/igt@fbdev@read.html

  * {igt@fbdev@write} (NEW):
    - shard-iclb:         NOTRUN -> [CRASH][5] +2 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb1/igt@fbdev@write.html
    - shard-snb:          NOTRUN -> [CRASH][6] +2 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-snb5/igt@fbdev@write.html

  * igt@kms_big_fb@linear-8bpp-rotate-180:
    - shard-snb:          [PASS][7] -> [FAIL][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-snb2/igt@kms_big_fb@linear-8bpp-rotate-180.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-snb6/igt@kms_big_fb@linear-8bpp-rotate-180.html

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
    - shard-hsw:          [PASS][9] -> [INCOMPLETE][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw6/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw7/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
    - shard-glk:          [PASS][11] -> [INCOMPLETE][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk9/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk1/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html

  * igt@perf_pmu@rc6-runtime-pm:
    - shard-iclb:         [PASS][13] -> [SKIP][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb2/igt@perf_pmu@rc6-runtime-pm.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@perf_pmu@rc6-runtime-pm.html

  
New tests
---------

  New tests have been introduced between CI_DRM_9253_full and IGTPW_5124_full:

### New IGT tests (3) ###

  * igt@fbdev@eof:
    - Statuses : 7 crash(s)
    - Exec time: [0.01, 0.02] s

  * igt@fbdev@read:
    - Statuses : 7 crash(s)
    - Exec time: [0.03, 0.21] s

  * igt@fbdev@write:
    - Statuses : 7 crash(s)
    - Exec time: [0.01, 0.02] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_softpin@softpin:
    - shard-glk:          [PASS][15] -> [DMESG-WARN][16] ([i915#118] / [i915#95])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk6/igt@gem_softpin@softpin.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk4/igt@gem_softpin@softpin.html

  * igt@i915_pm_rpm@pm-caching:
    - shard-iclb:         [PASS][17] -> [SKIP][18] ([i915#579])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb4/igt@i915_pm_rpm@pm-caching.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@i915_pm_rpm@pm-caching.html

  * igt@kms_color@pipe-c-ctm-blue-to-red:
    - shard-kbl:          [PASS][19] -> [FAIL][20] ([i915#129])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl1/igt@kms_color@pipe-c-ctm-blue-to-red.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl7/igt@kms_color@pipe-c-ctm-blue-to-red.html
    - shard-apl:          [PASS][21] -> [FAIL][22] ([i915#129] / [i915#1635])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl7/igt@kms_color@pipe-c-ctm-blue-to-red.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl6/igt@kms_color@pipe-c-ctm-blue-to-red.html

  * igt@kms_cursor_crc@pipe-b-cursor-size-change:
    - shard-kbl:          [PASS][23] -> [FAIL][24] ([i915#54]) +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl3/igt@kms_cursor_crc@pipe-b-cursor-size-change.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl2/igt@kms_cursor_crc@pipe-b-cursor-size-change.html
    - shard-apl:          [PASS][25] -> [FAIL][26] ([i915#1635] / [i915#54]) +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl2/igt@kms_cursor_crc@pipe-b-cursor-size-change.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl3/igt@kms_cursor_crc@pipe-b-cursor-size-change.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
    - shard-apl:          [PASS][27] -> [DMESG-WARN][28] ([i915#1635] / [i915#1982]) +4 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl8/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl8/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
    - shard-glk:          [PASS][29] -> [DMESG-WARN][30] ([i915#1982]) +5 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk5/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk4/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
    - shard-kbl:          [PASS][31] -> [DMESG-WARN][32] ([i915#1982]) +3 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl1/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl3/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-kbl:          [PASS][33] -> [DMESG-WARN][34] ([i915#180])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl1/igt@kms_fbcon_fbt@fbc-suspend.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl6/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@a-vga1:
    - shard-snb:          [PASS][35] -> [INCOMPLETE][36] ([i915#82])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-snb7/igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@a-vga1.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-snb6/igt@kms_flip@single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@a-vga1.html

  * igt@kms_frontbuffer_tracking@fbc-stridechange:
    - shard-tglb:         [PASS][37] -> [DMESG-WARN][38] ([i915#1982]) +7 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb8/igt@kms_frontbuffer_tracking@fbc-stridechange.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb8/igt@kms_frontbuffer_tracking@fbc-stridechange.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [PASS][39] -> [SKIP][40] ([fdo#109441]) +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb8/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
    - shard-apl:          [PASS][41] -> [INCOMPLETE][42] ([i915#1635])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl4/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl3/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
    - shard-iclb:         [PASS][43] -> [INCOMPLETE][44] ([i915#1078] / [i915#1185])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb3/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
    - shard-kbl:          [PASS][45] -> [INCOMPLETE][46] ([i915#155])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl4/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl4/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html

  * igt@perf@polling-parameterized:
    - shard-iclb:         [PASS][47] -> [FAIL][48] ([i915#1542])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb8/igt@perf@polling-parameterized.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb6/igt@perf@polling-parameterized.html

  * igt@perf_pmu@module-unload:
    - shard-iclb:         [PASS][49] -> [DMESG-WARN][50] ([i915#1982]) +1 similar issue
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb7/igt@perf_pmu@module-unload.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb6/igt@perf_pmu@module-unload.html

  * igt@perf_pmu@rc6-runtime-pm:
    - shard-glk:          [PASS][51] -> [SKIP][52] ([fdo#109271]) +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk4/igt@perf_pmu@rc6-runtime-pm.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk1/igt@perf_pmu@rc6-runtime-pm.html
    - shard-apl:          [PASS][53] -> [SKIP][54] ([fdo#109271] / [i915#1635]) +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl1/igt@perf_pmu@rc6-runtime-pm.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl3/igt@perf_pmu@rc6-runtime-pm.html
    - shard-kbl:          [PASS][55] -> [SKIP][56] ([fdo#109271]) +1 similar issue
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl6/igt@perf_pmu@rc6-runtime-pm.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl4/igt@perf_pmu@rc6-runtime-pm.html
    - shard-hsw:          [PASS][57] -> [SKIP][58] ([fdo#109271]) +1 similar issue
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw1/igt@perf_pmu@rc6-runtime-pm.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw7/igt@perf_pmu@rc6-runtime-pm.html

  * igt@syncobj_wait@single-wait-all-for-submit-signaled:
    - shard-hsw:          [PASS][59] -> [DMESG-WARN][60] ([i915#1982]) +2 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw6/igt@syncobj_wait@single-wait-all-for-submit-signaled.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw6/igt@syncobj_wait@single-wait-all-for-submit-signaled.html

  
#### Possible fixes ####

  * igt@core_hotunplug@hotrebind-lateclose:
    - shard-iclb:         [DMESG-WARN][61] ([i915#1982]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@core_hotunplug@hotrebind-lateclose.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb6/igt@core_hotunplug@hotrebind-lateclose.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
    - shard-hsw:          [FAIL][63] ([i915#2261]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw2/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw5/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html

  * igt@i915_pm_rpm@pm-tiling:
    - shard-hsw:          [SKIP][65] ([fdo#109271]) -> [PASS][66] +2 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw4/igt@i915_pm_rpm@pm-tiling.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw2/igt@i915_pm_rpm@pm-tiling.html
    - shard-kbl:          [SKIP][67] ([fdo#109271]) -> [PASS][68] +1 similar issue
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl7/igt@i915_pm_rpm@pm-tiling.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl2/igt@i915_pm_rpm@pm-tiling.html
    - shard-apl:          [SKIP][69] ([fdo#109271] / [i915#1635]) -> [PASS][70] +1 similar issue
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl6/igt@i915_pm_rpm@pm-tiling.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl3/igt@i915_pm_rpm@pm-tiling.html
    - shard-glk:          [SKIP][71] ([fdo#109271]) -> [PASS][72] +1 similar issue
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk1/igt@i915_pm_rpm@pm-tiling.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk5/igt@i915_pm_rpm@pm-tiling.html
    - shard-iclb:         [SKIP][73] ([i915#579]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb4/igt@i915_pm_rpm@pm-tiling.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb5/igt@i915_pm_rpm@pm-tiling.html

  * {igt@kms_async_flips@alternate-sync-async-flip}:
    - shard-tglb:         [FAIL][75] ([i915#2521]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb2/igt@kms_async_flips@alternate-sync-async-flip.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb2/igt@kms_async_flips@alternate-sync-async-flip.html

  * {igt@kms_async_flips@async-flip-with-page-flip-events}:
    - shard-kbl:          [FAIL][77] ([i915#2521]) -> [PASS][78] +1 similar issue
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl6/igt@kms_async_flips@async-flip-with-page-flip-events.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl1/igt@kms_async_flips@async-flip-with-page-flip-events.html
    - shard-glk:          [FAIL][79] ([i915#2521]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk4/igt@kms_async_flips@async-flip-with-page-flip-events.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk2/igt@kms_async_flips@async-flip-with-page-flip-events.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
    - shard-tglb:         [FAIL][81] ([i915#2346]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb1/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb3/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html

  * igt@kms_draw_crc@draw-method-xrgb8888-render-untiled:
    - shard-glk:          [DMESG-WARN][83] ([i915#1982]) -> [PASS][84] +5 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk2/igt@kms_draw_crc@draw-method-xrgb8888-render-untiled.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk9/igt@kms_draw_crc@draw-method-xrgb8888-render-untiled.html

  * igt@kms_flip@absolute-wf_vblank-interruptible@a-dp1:
    - shard-apl:          [DMESG-WARN][85] ([i915#1635] / [i915#1982]) -> [PASS][86] +2 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl4/igt@kms_flip@absolute-wf_vblank-interruptible@a-dp1.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl6/igt@kms_flip@absolute-wf_vblank-interruptible@a-dp1.html

  * igt@kms_flip@flip-vs-suspend@c-hdmi-a1:
    - shard-hsw:          [INCOMPLETE][87] ([i915#2055]) -> [PASS][88]
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-hsw4/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-hsw5/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html

  * igt@kms_flip_tiling@flip-x-tiled:
    - shard-kbl:          [DMESG-WARN][89] ([i915#1982]) -> [PASS][90] +3 similar issues
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl1/igt@kms_flip_tiling@flip-x-tiled.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl3/igt@kms_flip_tiling@flip-x-tiled.html

  * igt@kms_psr@psr2_sprite_mmap_gtt:
    - shard-iclb:         [SKIP][91] ([fdo#109441]) -> [PASS][92]
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@kms_psr@psr2_sprite_mmap_gtt.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html

  * igt@kms_psr@suspend:
    - shard-iclb:         [INCOMPLETE][93] ([i915#1185]) -> [PASS][94]
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@kms_psr@suspend.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb3/igt@kms_psr@suspend.html

  * igt@kms_vblank@pipe-d-accuracy-idle:
    - shard-tglb:         [DMESG-WARN][95] ([i915#1982]) -> [PASS][96] +1 similar issue
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb3/igt@kms_vblank@pipe-d-accuracy-idle.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb5/igt@kms_vblank@pipe-d-accuracy-idle.html

  * igt@perf@non-system-wide-paranoid:
    - shard-apl:          [SKIP][97] ([fdo#109271] / [i915#1354] / [i915#1635]) -> [PASS][98]
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl4/igt@perf@non-system-wide-paranoid.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl4/igt@perf@non-system-wide-paranoid.html
    - shard-glk:          [SKIP][99] ([fdo#109271] / [i915#1354]) -> [PASS][100]
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-glk2/igt@perf@non-system-wide-paranoid.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-glk8/igt@perf@non-system-wide-paranoid.html
    - shard-iclb:         [SKIP][101] ([i915#1354]) -> [PASS][102]
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@perf@non-system-wide-paranoid.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb7/igt@perf@non-system-wide-paranoid.html
    - shard-kbl:          [SKIP][103] ([fdo#109271] / [i915#1354]) -> [PASS][104]
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-kbl7/igt@perf@non-system-wide-paranoid.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-kbl4/igt@perf@non-system-wide-paranoid.html
    - shard-tglb:         [SKIP][105] ([i915#1354]) -> [PASS][106]
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb3/igt@perf@non-system-wide-paranoid.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb3/igt@perf@non-system-wide-paranoid.html

  
#### Warnings ####

  * igt@i915_pm_backlight@fade_with_suspend:
    - shard-tglb:         [INCOMPLETE][107] ([i915#1436] / [i915#456]) -> [DMESG-WARN][108] ([i915#2411])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb7/igt@i915_pm_backlight@fade_with_suspend.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb8/igt@i915_pm_backlight@fade_with_suspend.html

  * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-iclb:         [SKIP][109] ([i915#579]) -> [SKIP][110] ([fdo#110892])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb4/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@i915_pm_rpm@pm-caching:
    - shard-tglb:         [DMESG-WARN][111] ([i915#2411]) -> [SKIP][112] ([i915#579])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb6/igt@i915_pm_rpm@pm-caching.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb1/igt@i915_pm_rpm@pm-caching.html

  * igt@i915_pm_rpm@pm-tiling:
    - shard-tglb:         [SKIP][113] ([i915#579]) -> [DMESG-WARN][114] ([i915#2411])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb7/igt@i915_pm_rpm@pm-tiling.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb6/igt@i915_pm_rpm@pm-tiling.html

  * igt@i915_pm_rpm@system-suspend-execbuf:
    - shard-tglb:         [INCOMPLETE][115] ([i915#2411] / [i915#456] / [i915#750]) -> [DMESG-WARN][116] ([i915#2411])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb8/igt@i915_pm_rpm@system-suspend-execbuf.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb7/igt@i915_pm_rpm@system-suspend-execbuf.html

  * igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:
    - shard-apl:          [DMESG-FAIL][117] ([fdo#108145] / [i915#1635] / [i915#1982]) -> [FAIL][118] ([fdo#108145] / [i915#1635] / [i915#265])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-apl8/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         [SKIP][119] ([fdo#109441]) -> [DMESG-WARN][120] ([i915#1226])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb8/igt@kms_psr@psr2_cursor_mmap_cpu.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
    - shard-tglb:         [DMESG-WARN][121] ([i915#2411]) -> [DMESG-WARN][122] ([i915#1436])
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb6/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb1/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html

  * igt@perf_pmu@rc6-runtime-pm:
    - shard-tglb:         [DMESG-WARN][123] ([i915#2411]) -> [SKIP][124] ([fdo#111719])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb3/igt@perf_pmu@rc6-runtime-pm.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb1/igt@perf_pmu@rc6-runtime-pm.html

  * igt@runner@aborted:
    - shard-iclb:         [FAIL][125] ([i915#1814] / [i915#483]) -> [FAIL][126] ([i915#1814])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-iclb5/igt@runner@aborted.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-iclb2/igt@runner@aborted.html
    - shard-tglb:         [FAIL][127] ([i915#2439]) -> [FAIL][128] ([i915#1602])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-tglb7/igt@runner@aborted.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-tglb1/igt@runner@aborted.html
    - shard-snb:          [FAIL][129] ([i915#2426] / [i915#2439]) -> [FAIL][130] ([i915#2426] / [i915#698])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9253/shard-snb6/igt@runner@aborted.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/shard-snb6/igt@runner@aborted.html

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

  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110892]: https://bugs.freedesktop.org/show_bug.cgi?id=110892
  [fdo#111719]: https://bugs.freedesktop.org/show_bug.cgi?id=111719
  [i915#1078]: https://gitlab.freedesktop.org/drm/intel/issues/1078
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1185]: https://gitlab.freedesktop.org/drm/intel/issues/1185
  [i915#1226]: https://gitlab.freedesktop.org/drm/intel/issues/1226
  [i915#129]: https://gitlab.freedesktop.org/drm/intel/issues/129
  [i915#1354]: https://gitlab.freedesktop.org/drm/intel/issues/1354
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
  [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
  [i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2055]: https://gitlab.freedesktop.org/drm/intel/issues/2055
  [i915#2261]: https://gitlab.freedesktop.org/drm/intel/issues/2261
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
  [i915#2439]: https://gitlab.freedesktop.org/drm/intel/issues/2439
  [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
  [i915#483]: https://gitlab.freedesktop.org/drm/intel/issues/483
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#579]: https://gitlab.freedesktop.org/drm/intel/issues/579
  [i915#698]: https://gitlab.freedesktop.org/drm/intel/issues/698
  [i915#750]: https://gitlab.freedesktop.org/drm/intel/issues/750
  [i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


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

  Missing    (3): pig-skl-6260u pig-glk-j5005 pig-icl-1065g7 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5830 -> IGTPW_5124
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_9253: a8c030d641dc0961d180b866ab6e5e9032dcbdf4 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_5124: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/index.html
  IGT_5830: 12d370cb57e0cfcb781c87ad9e15e68b17a1f41f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5124/index.html

[-- Attachment #1.2: Type: text/html, Size: 33025 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
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:[~2020-11-03 20:48 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-03 10:48 [igt-dev] [PATCH 0/2] Test cases for fbdev Thomas Zimmermann
2020-11-03 10:48 ` [igt-dev] [PATCH 1/2] tests/fbdev: Store framebuffer pointer at function scope Thomas Zimmermann
2020-11-03 12:01   ` Daniel Vetter
2020-11-03 10:48 ` [igt-dev] [PATCH 2/2] tests/fbdev: Add tests for read/write ops on framebuffer Thomas Zimmermann
2020-11-03 12:08   ` Daniel Vetter
2020-11-03 12:10     ` Daniel Vetter
2020-11-03 12:14   ` Chris Wilson
2020-11-03 12:58   ` Petri Latvala
2020-11-03 13:34 ` [igt-dev] ✓ Fi.CI.BAT: success for Test cases for fbdev Patchwork
2020-11-03 20:48 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork

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