* [igt-dev] [PATCH i-g-t v3 1/2] lib/dmabuf_sync_file: move common stuff into lib
@ 2022-12-07 16:52 ` Matthew Auld
0 siblings, 0 replies; 11+ messages in thread
From: Matthew Auld @ 2022-12-07 16:52 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Petri Latvala, Nirmoy Das
So we can use this across different tests.
v2
- Add docs for everything (Petri)
- Add missing copyright and fix headers slightly (Kamil)
v3:
- Just return true/false, for the has() family of functions, instead
of tripping up an assert() (Kamil)
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Nirmoy Das <nirmoy.das@intel.com>
---
.../igt-gpu-tools/igt-gpu-tools-docs.xml | 1 +
lib/dmabuf_sync_file.c | 208 ++++++++++++++++++
lib/dmabuf_sync_file.h | 26 +++
lib/meson.build | 1 +
tests/dmabuf_sync_file.c | 133 +----------
5 files changed, 240 insertions(+), 129 deletions(-)
create mode 100644 lib/dmabuf_sync_file.c
create mode 100644 lib/dmabuf_sync_file.h
diff --git a/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml b/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml
index 1ce842f4..102c8a89 100644
--- a/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml
+++ b/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml
@@ -15,6 +15,7 @@
<chapter>
<title>API Reference</title>
+ <xi:include href="xml/dmabuf_sync_file.xml"/>
<xi:include href="xml/drmtest.xml"/>
<xi:include href="xml/igt_alsa.xml"/>
<xi:include href="xml/igt_audio.xml"/>
diff --git a/lib/dmabuf_sync_file.c b/lib/dmabuf_sync_file.c
new file mode 100644
index 00000000..7803ec67
--- /dev/null
+++ b/lib/dmabuf_sync_file.c
@@ -0,0 +1,208 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2022 Intel Corporation
+ */
+
+#include "igt.h"
+#include "igt_vgem.h"
+#include "sw_sync.h"
+
+#include "dmabuf_sync_file.h"
+
+/**
+ * SECTION: dmabuf_sync_file
+ * @short_description: DMABUF importing/exporting fencing support library
+ * @title: DMABUF Sync File
+ * @include: dmabuf_sync_file.h
+ */
+
+struct igt_dma_buf_sync_file {
+ __u32 flags;
+ __s32 fd;
+};
+
+#define IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE _IOWR(DMA_BUF_BASE, 2, struct igt_dma_buf_sync_file)
+#define IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE _IOW(DMA_BUF_BASE, 3, struct igt_dma_buf_sync_file)
+
+/**
+ * has_dmabuf_export_sync_file:
+ * @fd: The open drm fd
+ *
+ * Check if the kernel supports exporting a sync file from dmabuf.
+ */
+bool has_dmabuf_export_sync_file(int fd)
+{
+ struct vgem_bo bo;
+ int dmabuf, ret;
+ struct igt_dma_buf_sync_file arg;
+
+ bo.width = 1;
+ bo.height = 1;
+ bo.bpp = 32;
+ vgem_create(fd, &bo);
+
+ dmabuf = prime_handle_to_fd(fd, bo.handle);
+ gem_close(fd, bo.handle);
+
+ arg.flags = DMA_BUF_SYNC_WRITE;
+ arg.fd = -1;
+
+ ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg);
+ close(dmabuf);
+
+ return (ret == 0 || errno == ENOTTY);
+}
+
+/**
+ * dmabuf_export_sync_file:
+ * @dmabuf: The dmabuf fd
+ * @flags: The flags to control the behaviour
+ *
+ * Take a snapshot of the current dma-resv fences in the dmabuf, and export as a
+ * syncfile. The @flags should at least specify either DMA_BUF_SYNC_WRITE or
+ * DMA_BUF_SYNC_READ, depending on if we care about the read or write fences.
+ */
+int dmabuf_export_sync_file(int dmabuf, uint32_t flags)
+{
+ struct igt_dma_buf_sync_file arg;
+
+ arg.flags = flags;
+ arg.fd = -1;
+ do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg);
+
+ return arg.fd;
+}
+
+/**
+ * has_dmabuf_import_sync_file:
+ * @fd: The open drm fd
+ *
+ * Check if the kernel supports importing a sync file into a dmabuf.
+ */
+bool has_dmabuf_import_sync_file(int fd)
+{
+ struct vgem_bo bo;
+ int dmabuf, timeline, fence, ret;
+ struct igt_dma_buf_sync_file arg;
+
+ bo.width = 1;
+ bo.height = 1;
+ bo.bpp = 32;
+ vgem_create(fd, &bo);
+
+ dmabuf = prime_handle_to_fd(fd, bo.handle);
+ gem_close(fd, bo.handle);
+
+ timeline = sw_sync_timeline_create();
+ fence = sw_sync_timeline_create_fence(timeline, 1);
+ sw_sync_timeline_inc(timeline, 1);
+
+ arg.flags = DMA_BUF_SYNC_RW;
+ arg.fd = fence;
+
+ ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg);
+ close(dmabuf);
+ close(fence);
+ return (ret == 0 || errno == ENOTTY);
+}
+
+/**
+ * dmabuf_import_sync_file:
+ * @dmabuf: The dmabuf fd
+ * @flags: The flags to control the behaviour
+ * @sync_fd: The sync file (i.e our fence) to import
+ *
+ * Import the sync file @sync_fd, into the dmabuf. The @flags should at least
+ * specify DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ, depending on if we are
+ * importing the @sync_fd as a read or write fence.
+ */
+void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd)
+{
+ struct igt_dma_buf_sync_file arg;
+
+ arg.flags = flags;
+ arg.fd = sync_fd;
+ do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg);
+}
+
+/**
+ * dmabuf_import_timeline_fence:
+ * @dmabuf: The dmabuf fd
+ * @flags: The flags to control the behaviour
+ * @timeline: The sync file timeline where the new fence is created
+ * @seqno: The sequence number to use for the fence
+ *
+ * Create a new fence as part of @timeline, and import as a sync file into the
+ * dmabuf. The @flags should at least specify DMA_BUF_SYNC_WRITE or
+ * DMA_BUF_SYNC_READ, depending on if we are importing the new fence as a read
+ * or write fence.
+ */
+void dmabuf_import_timeline_fence(int dmabuf, uint32_t flags,
+ int timeline, uint32_t seqno)
+{
+ int fence;
+
+ fence = sw_sync_timeline_create_fence(timeline, seqno);
+ dmabuf_import_sync_file(dmabuf, flags, fence);
+ close(fence);
+}
+
+/**
+ * dmabuf_busy:
+ * @dmabuf: The dmabuf fd
+ * @flags: The flags to control the behaviour
+ *
+ * Check if the fences in the dmabuf are still busy. The @flags should at least
+ * specify DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ, depending on if we are
+ * checking if the read or read fences have all signalled. Or DMA_BUF_SYNC_RW if
+ * we care about both.
+ */
+bool dmabuf_busy(int dmabuf, uint32_t flags)
+{
+ struct pollfd pfd = { .fd = dmabuf };
+
+ /* If DMA_BUF_SYNC_WRITE is set, we don't want to set POLLIN or
+ * else poll() may return a non-zero value if there are only read
+ * fences because POLLIN is ready even if POLLOUT isn't.
+ */
+ if (flags & DMA_BUF_SYNC_WRITE)
+ pfd.events |= POLLOUT;
+ else if (flags & DMA_BUF_SYNC_READ)
+ pfd.events |= POLLIN;
+
+ return poll(&pfd, 1, 0) == 0;
+}
+
+/**
+ * sync_file_busy:
+ * @sync_file: The sync file to check
+ *
+ * Check if the @sync_file is still busy or not.
+ */
+bool sync_file_busy(int sync_file)
+{
+ struct pollfd pfd = { .fd = sync_file, .events = POLLIN };
+ return poll(&pfd, 1, 0) == 0;
+}
+
+/**
+ * dmabuf_sync_file_busy:
+ * @dmabuf: The dmabuf fd
+ * @flags: The flags to control the behaviour
+ *
+ * Export the current fences in @dmabuf as a sync file and check if still busy.
+ * The @flags should at least contain DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ,
+ * to specify which fences are to be exported from the @dmabuf and checked if
+ * busy. Or DMA_BUF_SYNC_RW if we care about both.
+ */
+bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags)
+{
+ int sync_file;
+ bool busy;
+
+ sync_file = dmabuf_export_sync_file(dmabuf, flags);
+ busy = sync_file_busy(sync_file);
+ close(sync_file);
+
+ return busy;
+}
diff --git a/lib/dmabuf_sync_file.h b/lib/dmabuf_sync_file.h
new file mode 100644
index 00000000..d642ff30
--- /dev/null
+++ b/lib/dmabuf_sync_file.h
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2022 Intel Corporation
+ */
+
+#ifndef DMABUF_SYNC_FILE_H
+#define DMABUF_SYNC_FILE_H
+
+#ifdef __linux__
+#include <linux/dma-buf.h>
+#endif
+#include <sys/poll.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+bool has_dmabuf_export_sync_file(int fd);
+bool has_dmabuf_import_sync_file(int fd);
+int dmabuf_export_sync_file(int dmabuf, uint32_t flags);
+void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd);
+void dmabuf_import_timeline_fence(int dmabuf, uint32_t flags,
+ int timeline, uint32_t seqno);
+bool dmabuf_busy(int dmabuf, uint32_t flags);
+bool sync_file_busy(int sync_file);
+bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags);
+
+#endif
diff --git a/lib/meson.build b/lib/meson.build
index 2c6ebce7..19d9f4f2 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -1,5 +1,6 @@
lib_sources = [
'drmtest.c',
+ 'dmabuf_sync_file.c',
'huc_copy.c',
'i915/gem.c',
'i915/gem_context.c',
diff --git a/tests/dmabuf_sync_file.c b/tests/dmabuf_sync_file.c
index 2179a76d..25bb6ad7 100644
--- a/tests/dmabuf_sync_file.c
+++ b/tests/dmabuf_sync_file.c
@@ -1,140 +1,15 @@
// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2022 Intel Corporation
+ */
#include "igt.h"
#include "igt_vgem.h"
#include "sw_sync.h"
-
-#include <linux/dma-buf.h>
-#include <sys/poll.h>
+#include "dmabuf_sync_file.h"
IGT_TEST_DESCRIPTION("Tests for sync_file support in dma-buf");
-struct igt_dma_buf_sync_file {
- __u32 flags;
- __s32 fd;
-};
-
-#define IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE _IOWR(DMA_BUF_BASE, 2, struct igt_dma_buf_sync_file)
-#define IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE _IOW(DMA_BUF_BASE, 3, struct igt_dma_buf_sync_file)
-
-static bool has_dmabuf_export_sync_file(int fd)
-{
- struct vgem_bo bo;
- int dmabuf, ret;
- struct igt_dma_buf_sync_file arg;
-
- bo.width = 1;
- bo.height = 1;
- bo.bpp = 32;
- vgem_create(fd, &bo);
-
- dmabuf = prime_handle_to_fd(fd, bo.handle);
- gem_close(fd, bo.handle);
-
- arg.flags = DMA_BUF_SYNC_WRITE;
- arg.fd = -1;
-
- ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg);
- close(dmabuf);
- igt_assert(ret == 0 || errno == ENOTTY);
-
- return ret == 0;
-}
-
-static int dmabuf_export_sync_file(int dmabuf, uint32_t flags)
-{
- struct igt_dma_buf_sync_file arg;
-
- arg.flags = flags;
- arg.fd = -1;
- do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg);
-
- return arg.fd;
-}
-
-static bool has_dmabuf_import_sync_file(int fd)
-{
- struct vgem_bo bo;
- int dmabuf, timeline, fence, ret;
- struct igt_dma_buf_sync_file arg;
-
- bo.width = 1;
- bo.height = 1;
- bo.bpp = 32;
- vgem_create(fd, &bo);
-
- dmabuf = prime_handle_to_fd(fd, bo.handle);
- gem_close(fd, bo.handle);
-
- timeline = sw_sync_timeline_create();
- fence = sw_sync_timeline_create_fence(timeline, 1);
- sw_sync_timeline_inc(timeline, 1);
-
- arg.flags = DMA_BUF_SYNC_RW;
- arg.fd = fence;
-
- ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg);
- close(dmabuf);
- close(fence);
- igt_assert(ret == 0 || errno == ENOTTY);
-
- return ret == 0;
-}
-
-static void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd)
-{
- struct igt_dma_buf_sync_file arg;
-
- arg.flags = flags;
- arg.fd = sync_fd;
- do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg);
-}
-
-static void
-dmabuf_import_timeline_fence(int dmabuf, uint32_t flags,
- int timeline, uint32_t seqno)
-{
- int fence;
-
- fence = sw_sync_timeline_create_fence(timeline, seqno);
- dmabuf_import_sync_file(dmabuf, flags, fence);
- close(fence);
-}
-
-static bool dmabuf_busy(int dmabuf, uint32_t flags)
-{
- struct pollfd pfd = { .fd = dmabuf };
-
- /* If DMA_BUF_SYNC_WRITE is set, we don't want to set POLLIN or
- * else poll() may return a non-zero value if there are only read
- * fences because POLLIN is ready even if POLLOUT isn't.
- */
- if (flags & DMA_BUF_SYNC_WRITE)
- pfd.events |= POLLOUT;
- else if (flags & DMA_BUF_SYNC_READ)
- pfd.events |= POLLIN;
-
- return poll(&pfd, 1, 0) == 0;
-}
-
-static bool sync_file_busy(int sync_file)
-{
- struct pollfd pfd = { .fd = sync_file, .events = POLLIN };
- return poll(&pfd, 1, 0) == 0;
-}
-
-static bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags)
-{
- int sync_file;
- bool busy;
-
- sync_file = dmabuf_export_sync_file(dmabuf, flags);
- busy = sync_file_busy(sync_file);
- close(sync_file);
-
- return busy;
-}
-
static void test_export_basic(int fd)
{
struct vgem_bo bo;
--
2.38.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* [Intel-gfx] [PATCH i-g-t v3 1/2] lib/dmabuf_sync_file: move common stuff into lib @ 2022-12-07 16:52 ` Matthew Auld 0 siblings, 0 replies; 11+ messages in thread From: Matthew Auld @ 2022-12-07 16:52 UTC (permalink / raw) To: igt-dev; +Cc: intel-gfx, Andrzej Hajda, Nirmoy Das So we can use this across different tests. v2 - Add docs for everything (Petri) - Add missing copyright and fix headers slightly (Kamil) v3: - Just return true/false, for the has() family of functions, instead of tripping up an assert() (Kamil) Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Andrzej Hajda <andrzej.hajda@intel.com> Cc: Nirmoy Das <nirmoy.das@intel.com> --- .../igt-gpu-tools/igt-gpu-tools-docs.xml | 1 + lib/dmabuf_sync_file.c | 208 ++++++++++++++++++ lib/dmabuf_sync_file.h | 26 +++ lib/meson.build | 1 + tests/dmabuf_sync_file.c | 133 +---------- 5 files changed, 240 insertions(+), 129 deletions(-) create mode 100644 lib/dmabuf_sync_file.c create mode 100644 lib/dmabuf_sync_file.h diff --git a/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml b/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml index 1ce842f4..102c8a89 100644 --- a/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml +++ b/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml @@ -15,6 +15,7 @@ <chapter> <title>API Reference</title> + <xi:include href="xml/dmabuf_sync_file.xml"/> <xi:include href="xml/drmtest.xml"/> <xi:include href="xml/igt_alsa.xml"/> <xi:include href="xml/igt_audio.xml"/> diff --git a/lib/dmabuf_sync_file.c b/lib/dmabuf_sync_file.c new file mode 100644 index 00000000..7803ec67 --- /dev/null +++ b/lib/dmabuf_sync_file.c @@ -0,0 +1,208 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright © 2022 Intel Corporation + */ + +#include "igt.h" +#include "igt_vgem.h" +#include "sw_sync.h" + +#include "dmabuf_sync_file.h" + +/** + * SECTION: dmabuf_sync_file + * @short_description: DMABUF importing/exporting fencing support library + * @title: DMABUF Sync File + * @include: dmabuf_sync_file.h + */ + +struct igt_dma_buf_sync_file { + __u32 flags; + __s32 fd; +}; + +#define IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE _IOWR(DMA_BUF_BASE, 2, struct igt_dma_buf_sync_file) +#define IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE _IOW(DMA_BUF_BASE, 3, struct igt_dma_buf_sync_file) + +/** + * has_dmabuf_export_sync_file: + * @fd: The open drm fd + * + * Check if the kernel supports exporting a sync file from dmabuf. + */ +bool has_dmabuf_export_sync_file(int fd) +{ + struct vgem_bo bo; + int dmabuf, ret; + struct igt_dma_buf_sync_file arg; + + bo.width = 1; + bo.height = 1; + bo.bpp = 32; + vgem_create(fd, &bo); + + dmabuf = prime_handle_to_fd(fd, bo.handle); + gem_close(fd, bo.handle); + + arg.flags = DMA_BUF_SYNC_WRITE; + arg.fd = -1; + + ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); + close(dmabuf); + + return (ret == 0 || errno == ENOTTY); +} + +/** + * dmabuf_export_sync_file: + * @dmabuf: The dmabuf fd + * @flags: The flags to control the behaviour + * + * Take a snapshot of the current dma-resv fences in the dmabuf, and export as a + * syncfile. The @flags should at least specify either DMA_BUF_SYNC_WRITE or + * DMA_BUF_SYNC_READ, depending on if we care about the read or write fences. + */ +int dmabuf_export_sync_file(int dmabuf, uint32_t flags) +{ + struct igt_dma_buf_sync_file arg; + + arg.flags = flags; + arg.fd = -1; + do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); + + return arg.fd; +} + +/** + * has_dmabuf_import_sync_file: + * @fd: The open drm fd + * + * Check if the kernel supports importing a sync file into a dmabuf. + */ +bool has_dmabuf_import_sync_file(int fd) +{ + struct vgem_bo bo; + int dmabuf, timeline, fence, ret; + struct igt_dma_buf_sync_file arg; + + bo.width = 1; + bo.height = 1; + bo.bpp = 32; + vgem_create(fd, &bo); + + dmabuf = prime_handle_to_fd(fd, bo.handle); + gem_close(fd, bo.handle); + + timeline = sw_sync_timeline_create(); + fence = sw_sync_timeline_create_fence(timeline, 1); + sw_sync_timeline_inc(timeline, 1); + + arg.flags = DMA_BUF_SYNC_RW; + arg.fd = fence; + + ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); + close(dmabuf); + close(fence); + return (ret == 0 || errno == ENOTTY); +} + +/** + * dmabuf_import_sync_file: + * @dmabuf: The dmabuf fd + * @flags: The flags to control the behaviour + * @sync_fd: The sync file (i.e our fence) to import + * + * Import the sync file @sync_fd, into the dmabuf. The @flags should at least + * specify DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ, depending on if we are + * importing the @sync_fd as a read or write fence. + */ +void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd) +{ + struct igt_dma_buf_sync_file arg; + + arg.flags = flags; + arg.fd = sync_fd; + do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); +} + +/** + * dmabuf_import_timeline_fence: + * @dmabuf: The dmabuf fd + * @flags: The flags to control the behaviour + * @timeline: The sync file timeline where the new fence is created + * @seqno: The sequence number to use for the fence + * + * Create a new fence as part of @timeline, and import as a sync file into the + * dmabuf. The @flags should at least specify DMA_BUF_SYNC_WRITE or + * DMA_BUF_SYNC_READ, depending on if we are importing the new fence as a read + * or write fence. + */ +void dmabuf_import_timeline_fence(int dmabuf, uint32_t flags, + int timeline, uint32_t seqno) +{ + int fence; + + fence = sw_sync_timeline_create_fence(timeline, seqno); + dmabuf_import_sync_file(dmabuf, flags, fence); + close(fence); +} + +/** + * dmabuf_busy: + * @dmabuf: The dmabuf fd + * @flags: The flags to control the behaviour + * + * Check if the fences in the dmabuf are still busy. The @flags should at least + * specify DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ, depending on if we are + * checking if the read or read fences have all signalled. Or DMA_BUF_SYNC_RW if + * we care about both. + */ +bool dmabuf_busy(int dmabuf, uint32_t flags) +{ + struct pollfd pfd = { .fd = dmabuf }; + + /* If DMA_BUF_SYNC_WRITE is set, we don't want to set POLLIN or + * else poll() may return a non-zero value if there are only read + * fences because POLLIN is ready even if POLLOUT isn't. + */ + if (flags & DMA_BUF_SYNC_WRITE) + pfd.events |= POLLOUT; + else if (flags & DMA_BUF_SYNC_READ) + pfd.events |= POLLIN; + + return poll(&pfd, 1, 0) == 0; +} + +/** + * sync_file_busy: + * @sync_file: The sync file to check + * + * Check if the @sync_file is still busy or not. + */ +bool sync_file_busy(int sync_file) +{ + struct pollfd pfd = { .fd = sync_file, .events = POLLIN }; + return poll(&pfd, 1, 0) == 0; +} + +/** + * dmabuf_sync_file_busy: + * @dmabuf: The dmabuf fd + * @flags: The flags to control the behaviour + * + * Export the current fences in @dmabuf as a sync file and check if still busy. + * The @flags should at least contain DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ, + * to specify which fences are to be exported from the @dmabuf and checked if + * busy. Or DMA_BUF_SYNC_RW if we care about both. + */ +bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags) +{ + int sync_file; + bool busy; + + sync_file = dmabuf_export_sync_file(dmabuf, flags); + busy = sync_file_busy(sync_file); + close(sync_file); + + return busy; +} diff --git a/lib/dmabuf_sync_file.h b/lib/dmabuf_sync_file.h new file mode 100644 index 00000000..d642ff30 --- /dev/null +++ b/lib/dmabuf_sync_file.h @@ -0,0 +1,26 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2022 Intel Corporation + */ + +#ifndef DMABUF_SYNC_FILE_H +#define DMABUF_SYNC_FILE_H + +#ifdef __linux__ +#include <linux/dma-buf.h> +#endif +#include <sys/poll.h> +#include <stdbool.h> +#include <stdint.h> + +bool has_dmabuf_export_sync_file(int fd); +bool has_dmabuf_import_sync_file(int fd); +int dmabuf_export_sync_file(int dmabuf, uint32_t flags); +void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd); +void dmabuf_import_timeline_fence(int dmabuf, uint32_t flags, + int timeline, uint32_t seqno); +bool dmabuf_busy(int dmabuf, uint32_t flags); +bool sync_file_busy(int sync_file); +bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags); + +#endif diff --git a/lib/meson.build b/lib/meson.build index 2c6ebce7..19d9f4f2 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -1,5 +1,6 @@ lib_sources = [ 'drmtest.c', + 'dmabuf_sync_file.c', 'huc_copy.c', 'i915/gem.c', 'i915/gem_context.c', diff --git a/tests/dmabuf_sync_file.c b/tests/dmabuf_sync_file.c index 2179a76d..25bb6ad7 100644 --- a/tests/dmabuf_sync_file.c +++ b/tests/dmabuf_sync_file.c @@ -1,140 +1,15 @@ // SPDX-License-Identifier: MIT +/* + * Copyright © 2022 Intel Corporation + */ #include "igt.h" #include "igt_vgem.h" #include "sw_sync.h" - -#include <linux/dma-buf.h> -#include <sys/poll.h> +#include "dmabuf_sync_file.h" IGT_TEST_DESCRIPTION("Tests for sync_file support in dma-buf"); -struct igt_dma_buf_sync_file { - __u32 flags; - __s32 fd; -}; - -#define IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE _IOWR(DMA_BUF_BASE, 2, struct igt_dma_buf_sync_file) -#define IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE _IOW(DMA_BUF_BASE, 3, struct igt_dma_buf_sync_file) - -static bool has_dmabuf_export_sync_file(int fd) -{ - struct vgem_bo bo; - int dmabuf, ret; - struct igt_dma_buf_sync_file arg; - - bo.width = 1; - bo.height = 1; - bo.bpp = 32; - vgem_create(fd, &bo); - - dmabuf = prime_handle_to_fd(fd, bo.handle); - gem_close(fd, bo.handle); - - arg.flags = DMA_BUF_SYNC_WRITE; - arg.fd = -1; - - ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); - close(dmabuf); - igt_assert(ret == 0 || errno == ENOTTY); - - return ret == 0; -} - -static int dmabuf_export_sync_file(int dmabuf, uint32_t flags) -{ - struct igt_dma_buf_sync_file arg; - - arg.flags = flags; - arg.fd = -1; - do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); - - return arg.fd; -} - -static bool has_dmabuf_import_sync_file(int fd) -{ - struct vgem_bo bo; - int dmabuf, timeline, fence, ret; - struct igt_dma_buf_sync_file arg; - - bo.width = 1; - bo.height = 1; - bo.bpp = 32; - vgem_create(fd, &bo); - - dmabuf = prime_handle_to_fd(fd, bo.handle); - gem_close(fd, bo.handle); - - timeline = sw_sync_timeline_create(); - fence = sw_sync_timeline_create_fence(timeline, 1); - sw_sync_timeline_inc(timeline, 1); - - arg.flags = DMA_BUF_SYNC_RW; - arg.fd = fence; - - ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); - close(dmabuf); - close(fence); - igt_assert(ret == 0 || errno == ENOTTY); - - return ret == 0; -} - -static void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd) -{ - struct igt_dma_buf_sync_file arg; - - arg.flags = flags; - arg.fd = sync_fd; - do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); -} - -static void -dmabuf_import_timeline_fence(int dmabuf, uint32_t flags, - int timeline, uint32_t seqno) -{ - int fence; - - fence = sw_sync_timeline_create_fence(timeline, seqno); - dmabuf_import_sync_file(dmabuf, flags, fence); - close(fence); -} - -static bool dmabuf_busy(int dmabuf, uint32_t flags) -{ - struct pollfd pfd = { .fd = dmabuf }; - - /* If DMA_BUF_SYNC_WRITE is set, we don't want to set POLLIN or - * else poll() may return a non-zero value if there are only read - * fences because POLLIN is ready even if POLLOUT isn't. - */ - if (flags & DMA_BUF_SYNC_WRITE) - pfd.events |= POLLOUT; - else if (flags & DMA_BUF_SYNC_READ) - pfd.events |= POLLIN; - - return poll(&pfd, 1, 0) == 0; -} - -static bool sync_file_busy(int sync_file) -{ - struct pollfd pfd = { .fd = sync_file, .events = POLLIN }; - return poll(&pfd, 1, 0) == 0; -} - -static bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags) -{ - int sync_file; - bool busy; - - sync_file = dmabuf_export_sync_file(dmabuf, flags); - busy = sync_file_busy(sync_file); - close(sync_file); - - return busy; -} - static void test_export_basic(int fd) { struct vgem_bo bo; -- 2.38.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] [PATCH i-g-t v3 2/2] tests/i915/gem_exec_balancer: exercise dmabuf import 2022-12-07 16:52 ` [Intel-gfx] " Matthew Auld @ 2022-12-07 16:52 ` Matthew Auld -1 siblings, 0 replies; 11+ messages in thread From: Matthew Auld @ 2022-12-07 16:52 UTC (permalink / raw) To: igt-dev; +Cc: intel-gfx, Nirmoy Das With parallel submission it should be easy to get a fence array as the output fence. Try importing this into dma-buf reservation object, to see if anything explodes. v2: (Kamil) - Use ifdef __linux__ for linux headers - Add igt_describe() for new test References: https://gitlab.freedesktop.org/drm/intel/-/issues/7532 Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Andrzej Hajda <andrzej.hajda@intel.com> Cc: Nirmoy Das <nirmoy.das@intel.com> Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com> --- tests/i915/gem_exec_balancer.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c index 4300dbd1..d7acdca1 100644 --- a/tests/i915/gem_exec_balancer.c +++ b/tests/i915/gem_exec_balancer.c @@ -27,6 +27,7 @@ #include <sys/signal.h> #include <poll.h> +#include "dmabuf_sync_file.h" #include "i915/gem.h" #include "i915/gem_engine_topology.h" #include "i915/gem_create.h" @@ -2856,6 +2857,7 @@ static void logical_sort_siblings(int i915, #define PARALLEL_SUBMIT_FENCE (0x1 << 3) #define PARALLEL_CONTEXTS (0x1 << 4) #define PARALLEL_VIRTUAL (0x1 << 5) +#define PARALLEL_OUT_FENCE_DMABUF (0x1 << 6) static void parallel_thread(int i915, unsigned int flags, struct i915_engine_class_instance *siblings, @@ -2871,6 +2873,8 @@ static void parallel_thread(int i915, unsigned int flags, uint32_t target_bo_idx = 0; uint32_t first_bb_idx = 1; intel_ctx_cfg_t cfg; + uint32_t dmabuf_handle; + int dmabuf; igt_assert(bb_per_execbuf < 32); @@ -2924,11 +2928,20 @@ static void parallel_thread(int i915, unsigned int flags, execbuf.buffers_ptr = to_user_pointer(obj); execbuf.rsvd1 = ctx->id; + if (flags & PARALLEL_OUT_FENCE_DMABUF) { + dmabuf_handle = gem_create(i915, 4096); + dmabuf = prime_handle_to_fd(i915, dmabuf_handle); + } + for (n = 0; n < PARALLEL_BB_LOOP_COUNT; ++n) { execbuf.flags &= ~0x3full; gem_execbuf_wr(i915, &execbuf); if (flags & PARALLEL_OUT_FENCE) { + if (flags & PARALLEL_OUT_FENCE_DMABUF) + dmabuf_import_sync_file(dmabuf, DMA_BUF_SYNC_WRITE, + execbuf.rsvd2 >> 32); + igt_assert_eq(sync_fence_wait(execbuf.rsvd2 >> 32, 1000), 0); igt_assert_eq(sync_fence_status(execbuf.rsvd2 >> 32), 1); @@ -2959,6 +2972,11 @@ static void parallel_thread(int i915, unsigned int flags, if (fence) close(fence); + if (flags & PARALLEL_OUT_FENCE_DMABUF) { + gem_close(i915, dmabuf_handle); + close(dmabuf); + } + check_bo(i915, obj[target_bo_idx].handle, bb_per_execbuf * PARALLEL_BB_LOOP_COUNT, true); @@ -3420,6 +3438,11 @@ igt_main igt_subtest("parallel-out-fence") parallel(i915, PARALLEL_OUT_FENCE); + igt_describe("Regression test to check that dmabuf imported sync file can handle fence array"); + igt_subtest("parallel-dmabuf-import-out-fence") + parallel(i915, PARALLEL_OUT_FENCE | + PARALLEL_OUT_FENCE_DMABUF); + igt_subtest("parallel-keep-in-fence") parallel(i915, PARALLEL_OUT_FENCE | PARALLEL_IN_FENCE); -- 2.38.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH i-g-t v3 2/2] tests/i915/gem_exec_balancer: exercise dmabuf import @ 2022-12-07 16:52 ` Matthew Auld 0 siblings, 0 replies; 11+ messages in thread From: Matthew Auld @ 2022-12-07 16:52 UTC (permalink / raw) To: igt-dev; +Cc: intel-gfx, Andrzej Hajda, Nirmoy Das With parallel submission it should be easy to get a fence array as the output fence. Try importing this into dma-buf reservation object, to see if anything explodes. v2: (Kamil) - Use ifdef __linux__ for linux headers - Add igt_describe() for new test References: https://gitlab.freedesktop.org/drm/intel/-/issues/7532 Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Andrzej Hajda <andrzej.hajda@intel.com> Cc: Nirmoy Das <nirmoy.das@intel.com> Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com> --- tests/i915/gem_exec_balancer.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c index 4300dbd1..d7acdca1 100644 --- a/tests/i915/gem_exec_balancer.c +++ b/tests/i915/gem_exec_balancer.c @@ -27,6 +27,7 @@ #include <sys/signal.h> #include <poll.h> +#include "dmabuf_sync_file.h" #include "i915/gem.h" #include "i915/gem_engine_topology.h" #include "i915/gem_create.h" @@ -2856,6 +2857,7 @@ static void logical_sort_siblings(int i915, #define PARALLEL_SUBMIT_FENCE (0x1 << 3) #define PARALLEL_CONTEXTS (0x1 << 4) #define PARALLEL_VIRTUAL (0x1 << 5) +#define PARALLEL_OUT_FENCE_DMABUF (0x1 << 6) static void parallel_thread(int i915, unsigned int flags, struct i915_engine_class_instance *siblings, @@ -2871,6 +2873,8 @@ static void parallel_thread(int i915, unsigned int flags, uint32_t target_bo_idx = 0; uint32_t first_bb_idx = 1; intel_ctx_cfg_t cfg; + uint32_t dmabuf_handle; + int dmabuf; igt_assert(bb_per_execbuf < 32); @@ -2924,11 +2928,20 @@ static void parallel_thread(int i915, unsigned int flags, execbuf.buffers_ptr = to_user_pointer(obj); execbuf.rsvd1 = ctx->id; + if (flags & PARALLEL_OUT_FENCE_DMABUF) { + dmabuf_handle = gem_create(i915, 4096); + dmabuf = prime_handle_to_fd(i915, dmabuf_handle); + } + for (n = 0; n < PARALLEL_BB_LOOP_COUNT; ++n) { execbuf.flags &= ~0x3full; gem_execbuf_wr(i915, &execbuf); if (flags & PARALLEL_OUT_FENCE) { + if (flags & PARALLEL_OUT_FENCE_DMABUF) + dmabuf_import_sync_file(dmabuf, DMA_BUF_SYNC_WRITE, + execbuf.rsvd2 >> 32); + igt_assert_eq(sync_fence_wait(execbuf.rsvd2 >> 32, 1000), 0); igt_assert_eq(sync_fence_status(execbuf.rsvd2 >> 32), 1); @@ -2959,6 +2972,11 @@ static void parallel_thread(int i915, unsigned int flags, if (fence) close(fence); + if (flags & PARALLEL_OUT_FENCE_DMABUF) { + gem_close(i915, dmabuf_handle); + close(dmabuf); + } + check_bo(i915, obj[target_bo_idx].handle, bb_per_execbuf * PARALLEL_BB_LOOP_COUNT, true); @@ -3420,6 +3438,11 @@ igt_main igt_subtest("parallel-out-fence") parallel(i915, PARALLEL_OUT_FENCE); + igt_describe("Regression test to check that dmabuf imported sync file can handle fence array"); + igt_subtest("parallel-dmabuf-import-out-fence") + parallel(i915, PARALLEL_OUT_FENCE | + PARALLEL_OUT_FENCE_DMABUF); + igt_subtest("parallel-keep-in-fence") parallel(i915, PARALLEL_OUT_FENCE | PARALLEL_IN_FENCE); -- 2.38.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib 2022-12-07 16:52 ` [Intel-gfx] " Matthew Auld (?) (?) @ 2022-12-07 19:35 ` Patchwork 2022-12-08 21:32 ` Kamil Konieczny -1 siblings, 1 reply; 11+ messages in thread From: Patchwork @ 2022-12-07 19:35 UTC (permalink / raw) To: Matthew Auld; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 7973 bytes --] == Series Details == Series: series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib URL : https://patchwork.freedesktop.org/series/111738/ State : failure == Summary == CI Bug Log - changes from CI_DRM_12478 -> IGTPW_8213 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_8213 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_8213, 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_8213/index.html Participating hosts (39 -> 41) ------------------------------ Additional (4): bat-rpls-2 fi-bwr-2160 fi-tgl-dsi fi-bsw-nick Missing (2): fi-hsw-4770 fi-rkl-11600 Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_8213: ### IGT changes ### #### Possible regressions #### * igt@i915_selftest@live@guc_multi_lrc: - fi-kbl-soraka: [PASS][1] -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-kbl-soraka/igt@i915_selftest@live@guc_multi_lrc.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-kbl-soraka/igt@i915_selftest@live@guc_multi_lrc.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_selftest@live@gt_lrc: - {fi-tgl-dsi}: NOTRUN -> [DMESG-FAIL][3] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-tgl-dsi/igt@i915_selftest@live@gt_lrc.html * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-2: - {bat-dg2-11}: [PASS][4] -> [FAIL][5] +1 similar issue [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-2.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-2.html Known issues ------------ Here are the changes found in IGTPW_8213 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_lmem_swapping@parallel-random-engines: - fi-bsw-nick: NOTRUN -> [SKIP][6] ([fdo#109271]) +39 similar issues [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-nick/igt@gem_lmem_swapping@parallel-random-engines.html * igt@i915_selftest@live@gt_heartbeat: - fi-kbl-soraka: [PASS][7] -> [DMESG-FAIL][8] ([i915#5334]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@gt_lrc: - bat-dg1-5: [PASS][9] -> [INCOMPLETE][10] ([i915#4983]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-dg1-5/igt@i915_selftest@live@gt_lrc.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg1-5/igt@i915_selftest@live@gt_lrc.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-bsw-nick: NOTRUN -> [SKIP][11] ([fdo#109271] / [fdo#111827]) +8 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-nick/igt@kms_chamelium@hdmi-hpd-fast.html * igt@kms_psr@primary_mmap_gtt: - fi-bwr-2160: NOTRUN -> [SKIP][12] ([fdo#109271]) +54 similar issues [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bwr-2160/igt@kms_psr@primary_mmap_gtt.html * igt@runner@aborted: - bat-dg1-5: NOTRUN -> [FAIL][13] ([i915#4312]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg1-5/igt@runner@aborted.html #### Possible fixes #### * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions: - fi-bsw-kefka: [FAIL][14] ([i915#6298]) -> [PASS][15] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html * igt@kms_pipe_crc_basic@read-crc@pipe-b-dp-1: - {bat-adlp-9}: [FAIL][16] -> [PASS][17] +3 similar issues [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-adlp-9/igt@kms_pipe_crc_basic@read-crc@pipe-b-dp-1.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-adlp-9/igt@kms_pipe_crc_basic@read-crc@pipe-b-dp-1.html #### Warnings #### * igt@i915_module_load@load: - fi-bsw-n3050: [DMESG-WARN][18] ([i915#1982] / [i915#7430]) -> [DMESG-WARN][19] ([i915#7430]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-bsw-n3050/igt@i915_module_load@load.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-n3050/igt@i915_module_load@load.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1759]: https://gitlab.freedesktop.org/drm/intel/issues/1759 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#6559]: https://gitlab.freedesktop.org/drm/intel/issues/6559 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#6816]: https://gitlab.freedesktop.org/drm/intel/issues/6816 [i915#6818]: https://gitlab.freedesktop.org/drm/intel/issues/6818 [i915#6949]: https://gitlab.freedesktop.org/drm/intel/issues/6949 [i915#7058]: https://gitlab.freedesktop.org/drm/intel/issues/7058 [i915#7346]: https://gitlab.freedesktop.org/drm/intel/issues/7346 [i915#7430]: https://gitlab.freedesktop.org/drm/intel/issues/7430 [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456 [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7085 -> IGTPW_8213 CI-20190529: 20190529 CI_DRM_12478: f5d2f00fe4daf65ecd6634dec39fbf66b44535e3 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8213: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html IGT_7085: 11af20de3877b23a244b816453bfc41d83591a15 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Testlist changes ---------------- +igt@gem_exec_balancer@parallel-dmabuf-import-out-fence == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html [-- Attachment #2: Type: text/html, Size: 7473 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib 2022-12-07 19:35 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib Patchwork @ 2022-12-08 21:32 ` Kamil Konieczny 2022-12-09 6:45 ` Yedireswarapu, SaiX Nandan 0 siblings, 1 reply; 11+ messages in thread From: Kamil Konieczny @ 2022-12-08 21:32 UTC (permalink / raw) To: igt-dev; +Cc: Sai Nandan Yedireswarapu Hi, On 2022-12-07 at 19:35:09 -0000, Patchwork wrote: > == Series Details == > > Series: series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib > URL : https://patchwork.freedesktop.org/series/111738/ > State : failure > > == Summary == > > CI Bug Log - changes from CI_DRM_12478 -> IGTPW_8213 > ==================================================== > > Summary > ------- > > **FAILURE** > > Serious unknown changes coming with IGTPW_8213 absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in IGTPW_8213, 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_8213/index.html > > Participating hosts (39 -> 41) > ------------------------------ > > Additional (4): bat-rpls-2 fi-bwr-2160 fi-tgl-dsi fi-bsw-nick > Missing (2): fi-hsw-4770 fi-rkl-11600 > > Possible new issues > ------------------- > > Here are the unknown changes that may have been introduced in IGTPW_8213: > > ### IGT changes ### > > #### Possible regressions #### > > * igt@i915_selftest@live@guc_multi_lrc: > - fi-kbl-soraka: [PASS][1] -> [INCOMPLETE][2] > [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-kbl-soraka/igt@i915_selftest@live@guc_multi_lrc.html > [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-kbl-soraka/igt@i915_selftest@live@guc_multi_lrc.html > This is unrelated to the changes in gem_exec_balancer and lib. Regards, Kamil > > #### Suppressed #### > > The following results come from untrusted machines, tests, or statuses. > They do not affect the overall result. > > * igt@i915_selftest@live@gt_lrc: > - {fi-tgl-dsi}: NOTRUN -> [DMESG-FAIL][3] > [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-tgl-dsi/igt@i915_selftest@live@gt_lrc.html > > * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-2: > - {bat-dg2-11}: [PASS][4] -> [FAIL][5] +1 similar issue > [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-2.html > [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-2.html > > > Known issues > ------------ > > Here are the changes found in IGTPW_8213 that come from known issues: > > ### IGT changes ### > > #### Issues hit #### > > * igt@gem_lmem_swapping@parallel-random-engines: > - fi-bsw-nick: NOTRUN -> [SKIP][6] ([fdo#109271]) +39 similar issues > [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-nick/igt@gem_lmem_swapping@parallel-random-engines.html > > * igt@i915_selftest@live@gt_heartbeat: > - fi-kbl-soraka: [PASS][7] -> [DMESG-FAIL][8] ([i915#5334]) > [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html > [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html > > * igt@i915_selftest@live@gt_lrc: > - bat-dg1-5: [PASS][9] -> [INCOMPLETE][10] ([i915#4983]) > [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-dg1-5/igt@i915_selftest@live@gt_lrc.html > [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg1-5/igt@i915_selftest@live@gt_lrc.html > > * igt@kms_chamelium@hdmi-hpd-fast: > - fi-bsw-nick: NOTRUN -> [SKIP][11] ([fdo#109271] / [fdo#111827]) +8 similar issues > [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-nick/igt@kms_chamelium@hdmi-hpd-fast.html > > * igt@kms_psr@primary_mmap_gtt: > - fi-bwr-2160: NOTRUN -> [SKIP][12] ([fdo#109271]) +54 similar issues > [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bwr-2160/igt@kms_psr@primary_mmap_gtt.html > > * igt@runner@aborted: > - bat-dg1-5: NOTRUN -> [FAIL][13] ([i915#4312]) > [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg1-5/igt@runner@aborted.html > > > #### Possible fixes #### > > * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions: > - fi-bsw-kefka: [FAIL][14] ([i915#6298]) -> [PASS][15] > [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html > [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html > > * igt@kms_pipe_crc_basic@read-crc@pipe-b-dp-1: > - {bat-adlp-9}: [FAIL][16] -> [PASS][17] +3 similar issues > [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-adlp-9/igt@kms_pipe_crc_basic@read-crc@pipe-b-dp-1.html > [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-adlp-9/igt@kms_pipe_crc_basic@read-crc@pipe-b-dp-1.html > > > #### Warnings #### > > * igt@i915_module_load@load: > - fi-bsw-n3050: [DMESG-WARN][18] ([i915#1982] / [i915#7430]) -> [DMESG-WARN][19] ([i915#7430]) > [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-bsw-n3050/igt@i915_module_load@load.html > [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-n3050/igt@i915_module_load@load.html > > > {name}: This element is suppressed. This means it is ignored when computing > the status of the difference (SUCCESS, WARNING, or FAILURE). > > [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 > [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 > [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 > [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 > [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 > [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 > [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 > [i915#1759]: https://gitlab.freedesktop.org/drm/intel/issues/1759 > [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 > [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 > [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 > [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 > [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 > [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 > [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 > [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258 > [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 > [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 > [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 > [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 > [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298 > [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 > [i915#6559]: https://gitlab.freedesktop.org/drm/intel/issues/6559 > [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 > [i915#6816]: https://gitlab.freedesktop.org/drm/intel/issues/6816 > [i915#6818]: https://gitlab.freedesktop.org/drm/intel/issues/6818 > [i915#6949]: https://gitlab.freedesktop.org/drm/intel/issues/6949 > [i915#7058]: https://gitlab.freedesktop.org/drm/intel/issues/7058 > [i915#7346]: https://gitlab.freedesktop.org/drm/intel/issues/7346 > [i915#7430]: https://gitlab.freedesktop.org/drm/intel/issues/7430 > [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456 > [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 > > > Build changes > ------------- > > * CI: CI-20190529 -> None > * IGT: IGT_7085 -> IGTPW_8213 > > CI-20190529: 20190529 > CI_DRM_12478: f5d2f00fe4daf65ecd6634dec39fbf66b44535e3 @ git://anongit.freedesktop.org/gfx-ci/linux > IGTPW_8213: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html > IGT_7085: 11af20de3877b23a244b816453bfc41d83591a15 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git > > > Testlist changes > ---------------- > > +igt@gem_exec_balancer@parallel-dmabuf-import-out-fence > > == Logs == > > For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib 2022-12-08 21:32 ` Kamil Konieczny @ 2022-12-09 6:45 ` Yedireswarapu, SaiX Nandan 0 siblings, 0 replies; 11+ messages in thread From: Yedireswarapu, SaiX Nandan @ 2022-12-09 6:45 UTC (permalink / raw) To: Kamil Konieczny, igt-dev@lists.freedesktop.org Cc: Vudum, Lakshminarayana, Veesam, RavitejaX, Illipilli, TejasreeX Hi, Issue re-reported, https://patchwork.freedesktop.org/series/111738/ Thanks, Y Sai Nandan -----Original Message----- From: Kamil Konieczny <kamil.konieczny@linux.intel.com> Sent: Friday, December 9, 2022 3:03 AM To: igt-dev@lists.freedesktop.org Cc: Yedireswarapu, SaiX Nandan <saix.nandan.yedireswarapu@intel.com> Subject: Re: [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib Hi, On 2022-12-07 at 19:35:09 -0000, Patchwork wrote: > == Series Details == > > Series: series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib > URL : https://patchwork.freedesktop.org/series/111738/ > State : failure > > == Summary == > > CI Bug Log - changes from CI_DRM_12478 -> IGTPW_8213 > ==================================================== > > Summary > ------- > > **FAILURE** > > Serious unknown changes coming with IGTPW_8213 absolutely need to be > verified manually. > > If you think the reported changes have nothing to do with the changes > introduced in IGTPW_8213, 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_8213/index.html > > Participating hosts (39 -> 41) > ------------------------------ > > Additional (4): bat-rpls-2 fi-bwr-2160 fi-tgl-dsi fi-bsw-nick > Missing (2): fi-hsw-4770 fi-rkl-11600 > > Possible new issues > ------------------- > > Here are the unknown changes that may have been introduced in IGTPW_8213: > > ### IGT changes ### > > #### Possible regressions #### > > * igt@i915_selftest@live@guc_multi_lrc: > - fi-kbl-soraka: [PASS][1] -> [INCOMPLETE][2] > [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-kbl-soraka/igt@i915_selftest@live@guc_multi_lrc.html > [2]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-kbl-soraka/igt@ > i915_selftest@live@guc_multi_lrc.html > This is unrelated to the changes in gem_exec_balancer and lib. Regards, Kamil > > #### Suppressed #### > > The following results come from untrusted machines, tests, or statuses. > They do not affect the overall result. > > * igt@i915_selftest@live@gt_lrc: > - {fi-tgl-dsi}: NOTRUN -> [DMESG-FAIL][3] > [3]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-tgl-dsi/igt@i91 > 5_selftest@live@gt_lrc.html > > * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-2: > - {bat-dg2-11}: [PASS][4] -> [FAIL][5] +1 similar issue > [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-2.html > [5]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg2-11/igt@kms > _pipe_crc_basic@suspend-read-crc@pipe-a-dp-2.html > > > Known issues > ------------ > > Here are the changes found in IGTPW_8213 that come from known issues: > > ### IGT changes ### > > #### Issues hit #### > > * igt@gem_lmem_swapping@parallel-random-engines: > - fi-bsw-nick: NOTRUN -> [SKIP][6] ([fdo#109271]) +39 similar issues > [6]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-nick/igt@ge > m_lmem_swapping@parallel-random-engines.html > > * igt@i915_selftest@live@gt_heartbeat: > - fi-kbl-soraka: [PASS][7] -> [DMESG-FAIL][8] ([i915#5334]) > [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html > [8]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-kbl-soraka/igt@ > i915_selftest@live@gt_heartbeat.html > > * igt@i915_selftest@live@gt_lrc: > - bat-dg1-5: [PASS][9] -> [INCOMPLETE][10] ([i915#4983]) > [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-dg1-5/igt@i915_selftest@live@gt_lrc.html > [10]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg1-5/igt@i915 > _selftest@live@gt_lrc.html > > * igt@kms_chamelium@hdmi-hpd-fast: > - fi-bsw-nick: NOTRUN -> [SKIP][11] ([fdo#109271] / [fdo#111827]) +8 similar issues > [11]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-nick/igt@km > s_chamelium@hdmi-hpd-fast.html > > * igt@kms_psr@primary_mmap_gtt: > - fi-bwr-2160: NOTRUN -> [SKIP][12] ([fdo#109271]) +54 similar issues > [12]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bwr-2160/igt@km > s_psr@primary_mmap_gtt.html > > * igt@runner@aborted: > - bat-dg1-5: NOTRUN -> [FAIL][13] ([i915#4312]) > [13]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg1-5/igt@runn > er@aborted.html > > > #### Possible fixes #### > > * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions: > - fi-bsw-kefka: [FAIL][14] ([i915#6298]) -> [PASS][15] > [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html > [15]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-kefka/igt@k > ms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html > > * igt@kms_pipe_crc_basic@read-crc@pipe-b-dp-1: > - {bat-adlp-9}: [FAIL][16] -> [PASS][17] +3 similar issues > [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-adlp-9/igt@kms_pipe_crc_basic@read-crc@pipe-b-dp-1.html > [17]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-adlp-9/igt@kms > _pipe_crc_basic@read-crc@pipe-b-dp-1.html > > > #### Warnings #### > > * igt@i915_module_load@load: > - fi-bsw-n3050: [DMESG-WARN][18] ([i915#1982] / [i915#7430]) -> [DMESG-WARN][19] ([i915#7430]) > [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-bsw-n3050/igt@i915_module_load@load.html > [19]: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-n3050/igt@i > 915_module_load@load.html > > > {name}: This element is suppressed. This means it is ignored when computing > the status of the difference (SUCCESS, WARNING, or FAILURE). > > [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 > [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 > [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 > [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 > [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 > [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 > [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 > [i915#1759]: https://gitlab.freedesktop.org/drm/intel/issues/1759 > [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 > [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 > [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 > [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 > [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 > [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 > [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 > [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258 > [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 > [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 > [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 > [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 > [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298 > [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 > [i915#6559]: https://gitlab.freedesktop.org/drm/intel/issues/6559 > [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 > [i915#6816]: https://gitlab.freedesktop.org/drm/intel/issues/6816 > [i915#6818]: https://gitlab.freedesktop.org/drm/intel/issues/6818 > [i915#6949]: https://gitlab.freedesktop.org/drm/intel/issues/6949 > [i915#7058]: https://gitlab.freedesktop.org/drm/intel/issues/7058 > [i915#7346]: https://gitlab.freedesktop.org/drm/intel/issues/7346 > [i915#7430]: https://gitlab.freedesktop.org/drm/intel/issues/7430 > [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456 > [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 > > > Build changes > ------------- > > * CI: CI-20190529 -> None > * IGT: IGT_7085 -> IGTPW_8213 > > CI-20190529: 20190529 > CI_DRM_12478: f5d2f00fe4daf65ecd6634dec39fbf66b44535e3 @ git://anongit.freedesktop.org/gfx-ci/linux > IGTPW_8213: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html > IGT_7085: 11af20de3877b23a244b816453bfc41d83591a15 @ > https://gitlab.freedesktop.org/drm/igt-gpu-tools.git > > > Testlist changes > ---------------- > > +igt@gem_exec_balancer@parallel-dmabuf-import-out-fence > > == Logs == > > For more details see: > https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v3 1/2] lib/dmabuf_sync_file: move common stuff into lib 2022-12-07 16:52 ` [Intel-gfx] " Matthew Auld @ 2022-12-08 8:39 ` Das, Nirmoy -1 siblings, 0 replies; 11+ messages in thread From: Das, Nirmoy @ 2022-12-08 8:39 UTC (permalink / raw) To: Matthew Auld, igt-dev; +Cc: intel-gfx, Petri Latvala, Nirmoy Das LGTM the series is Reviewed-by: Nirmoy Das <nirmoy.das@intel.com> On 12/7/2022 5:52 PM, Matthew Auld wrote: > So we can use this across different tests. > > v2 > - Add docs for everything (Petri) > - Add missing copyright and fix headers slightly (Kamil) > v3: > - Just return true/false, for the has() family of functions, instead > of tripping up an assert() (Kamil) > > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > Cc: Petri Latvala <petri.latvala@intel.com> > Cc: Andrzej Hajda <andrzej.hajda@intel.com> > Cc: Nirmoy Das <nirmoy.das@intel.com> > --- > .../igt-gpu-tools/igt-gpu-tools-docs.xml | 1 + > lib/dmabuf_sync_file.c | 208 ++++++++++++++++++ > lib/dmabuf_sync_file.h | 26 +++ > lib/meson.build | 1 + > tests/dmabuf_sync_file.c | 133 +---------- > 5 files changed, 240 insertions(+), 129 deletions(-) > create mode 100644 lib/dmabuf_sync_file.c > create mode 100644 lib/dmabuf_sync_file.h > > diff --git a/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml b/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml > index 1ce842f4..102c8a89 100644 > --- a/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml > +++ b/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml > @@ -15,6 +15,7 @@ > > <chapter> > <title>API Reference</title> > + <xi:include href="xml/dmabuf_sync_file.xml"/> > <xi:include href="xml/drmtest.xml"/> > <xi:include href="xml/igt_alsa.xml"/> > <xi:include href="xml/igt_audio.xml"/> > diff --git a/lib/dmabuf_sync_file.c b/lib/dmabuf_sync_file.c > new file mode 100644 > index 00000000..7803ec67 > --- /dev/null > +++ b/lib/dmabuf_sync_file.c > @@ -0,0 +1,208 @@ > +// SPDX-License-Identifier: MIT > +/* > + * Copyright © 2022 Intel Corporation > + */ > + > +#include "igt.h" > +#include "igt_vgem.h" > +#include "sw_sync.h" > + > +#include "dmabuf_sync_file.h" > + > +/** > + * SECTION: dmabuf_sync_file > + * @short_description: DMABUF importing/exporting fencing support library > + * @title: DMABUF Sync File > + * @include: dmabuf_sync_file.h > + */ > + > +struct igt_dma_buf_sync_file { > + __u32 flags; > + __s32 fd; > +}; > + > +#define IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE _IOWR(DMA_BUF_BASE, 2, struct igt_dma_buf_sync_file) > +#define IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE _IOW(DMA_BUF_BASE, 3, struct igt_dma_buf_sync_file) > + > +/** > + * has_dmabuf_export_sync_file: > + * @fd: The open drm fd > + * > + * Check if the kernel supports exporting a sync file from dmabuf. > + */ > +bool has_dmabuf_export_sync_file(int fd) > +{ > + struct vgem_bo bo; > + int dmabuf, ret; > + struct igt_dma_buf_sync_file arg; > + > + bo.width = 1; > + bo.height = 1; > + bo.bpp = 32; > + vgem_create(fd, &bo); > + > + dmabuf = prime_handle_to_fd(fd, bo.handle); > + gem_close(fd, bo.handle); > + > + arg.flags = DMA_BUF_SYNC_WRITE; > + arg.fd = -1; > + > + ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); > + close(dmabuf); > + > + return (ret == 0 || errno == ENOTTY); > +} > + > +/** > + * dmabuf_export_sync_file: > + * @dmabuf: The dmabuf fd > + * @flags: The flags to control the behaviour > + * > + * Take a snapshot of the current dma-resv fences in the dmabuf, and export as a > + * syncfile. The @flags should at least specify either DMA_BUF_SYNC_WRITE or > + * DMA_BUF_SYNC_READ, depending on if we care about the read or write fences. > + */ > +int dmabuf_export_sync_file(int dmabuf, uint32_t flags) > +{ > + struct igt_dma_buf_sync_file arg; > + > + arg.flags = flags; > + arg.fd = -1; > + do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); > + > + return arg.fd; > +} > + > +/** > + * has_dmabuf_import_sync_file: > + * @fd: The open drm fd > + * > + * Check if the kernel supports importing a sync file into a dmabuf. > + */ > +bool has_dmabuf_import_sync_file(int fd) > +{ > + struct vgem_bo bo; > + int dmabuf, timeline, fence, ret; > + struct igt_dma_buf_sync_file arg; > + > + bo.width = 1; > + bo.height = 1; > + bo.bpp = 32; > + vgem_create(fd, &bo); > + > + dmabuf = prime_handle_to_fd(fd, bo.handle); > + gem_close(fd, bo.handle); > + > + timeline = sw_sync_timeline_create(); > + fence = sw_sync_timeline_create_fence(timeline, 1); > + sw_sync_timeline_inc(timeline, 1); > + > + arg.flags = DMA_BUF_SYNC_RW; > + arg.fd = fence; > + > + ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); > + close(dmabuf); > + close(fence); > + return (ret == 0 || errno == ENOTTY); > +} > + > +/** > + * dmabuf_import_sync_file: > + * @dmabuf: The dmabuf fd > + * @flags: The flags to control the behaviour > + * @sync_fd: The sync file (i.e our fence) to import > + * > + * Import the sync file @sync_fd, into the dmabuf. The @flags should at least > + * specify DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ, depending on if we are > + * importing the @sync_fd as a read or write fence. > + */ > +void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd) > +{ > + struct igt_dma_buf_sync_file arg; > + > + arg.flags = flags; > + arg.fd = sync_fd; > + do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); > +} > + > +/** > + * dmabuf_import_timeline_fence: > + * @dmabuf: The dmabuf fd > + * @flags: The flags to control the behaviour > + * @timeline: The sync file timeline where the new fence is created > + * @seqno: The sequence number to use for the fence > + * > + * Create a new fence as part of @timeline, and import as a sync file into the > + * dmabuf. The @flags should at least specify DMA_BUF_SYNC_WRITE or > + * DMA_BUF_SYNC_READ, depending on if we are importing the new fence as a read > + * or write fence. > + */ > +void dmabuf_import_timeline_fence(int dmabuf, uint32_t flags, > + int timeline, uint32_t seqno) > +{ > + int fence; > + > + fence = sw_sync_timeline_create_fence(timeline, seqno); > + dmabuf_import_sync_file(dmabuf, flags, fence); > + close(fence); > +} > + > +/** > + * dmabuf_busy: > + * @dmabuf: The dmabuf fd > + * @flags: The flags to control the behaviour > + * > + * Check if the fences in the dmabuf are still busy. The @flags should at least > + * specify DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ, depending on if we are > + * checking if the read or read fences have all signalled. Or DMA_BUF_SYNC_RW if > + * we care about both. > + */ > +bool dmabuf_busy(int dmabuf, uint32_t flags) > +{ > + struct pollfd pfd = { .fd = dmabuf }; > + > + /* If DMA_BUF_SYNC_WRITE is set, we don't want to set POLLIN or > + * else poll() may return a non-zero value if there are only read > + * fences because POLLIN is ready even if POLLOUT isn't. > + */ > + if (flags & DMA_BUF_SYNC_WRITE) > + pfd.events |= POLLOUT; > + else if (flags & DMA_BUF_SYNC_READ) > + pfd.events |= POLLIN; > + > + return poll(&pfd, 1, 0) == 0; > +} > + > +/** > + * sync_file_busy: > + * @sync_file: The sync file to check > + * > + * Check if the @sync_file is still busy or not. > + */ > +bool sync_file_busy(int sync_file) > +{ > + struct pollfd pfd = { .fd = sync_file, .events = POLLIN }; > + return poll(&pfd, 1, 0) == 0; > +} > + > +/** > + * dmabuf_sync_file_busy: > + * @dmabuf: The dmabuf fd > + * @flags: The flags to control the behaviour > + * > + * Export the current fences in @dmabuf as a sync file and check if still busy. > + * The @flags should at least contain DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ, > + * to specify which fences are to be exported from the @dmabuf and checked if > + * busy. Or DMA_BUF_SYNC_RW if we care about both. > + */ > +bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags) > +{ > + int sync_file; > + bool busy; > + > + sync_file = dmabuf_export_sync_file(dmabuf, flags); > + busy = sync_file_busy(sync_file); > + close(sync_file); > + > + return busy; > +} > diff --git a/lib/dmabuf_sync_file.h b/lib/dmabuf_sync_file.h > new file mode 100644 > index 00000000..d642ff30 > --- /dev/null > +++ b/lib/dmabuf_sync_file.h > @@ -0,0 +1,26 @@ > +/* SPDX-License-Identifier: MIT */ > +/* > + * Copyright © 2022 Intel Corporation > + */ > + > +#ifndef DMABUF_SYNC_FILE_H > +#define DMABUF_SYNC_FILE_H > + > +#ifdef __linux__ > +#include <linux/dma-buf.h> > +#endif > +#include <sys/poll.h> > +#include <stdbool.h> > +#include <stdint.h> > + > +bool has_dmabuf_export_sync_file(int fd); > +bool has_dmabuf_import_sync_file(int fd); > +int dmabuf_export_sync_file(int dmabuf, uint32_t flags); > +void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd); > +void dmabuf_import_timeline_fence(int dmabuf, uint32_t flags, > + int timeline, uint32_t seqno); > +bool dmabuf_busy(int dmabuf, uint32_t flags); > +bool sync_file_busy(int sync_file); > +bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags); > + > +#endif > diff --git a/lib/meson.build b/lib/meson.build > index 2c6ebce7..19d9f4f2 100644 > --- a/lib/meson.build > +++ b/lib/meson.build > @@ -1,5 +1,6 @@ > lib_sources = [ > 'drmtest.c', > + 'dmabuf_sync_file.c', > 'huc_copy.c', > 'i915/gem.c', > 'i915/gem_context.c', > diff --git a/tests/dmabuf_sync_file.c b/tests/dmabuf_sync_file.c > index 2179a76d..25bb6ad7 100644 > --- a/tests/dmabuf_sync_file.c > +++ b/tests/dmabuf_sync_file.c > @@ -1,140 +1,15 @@ > // SPDX-License-Identifier: MIT > +/* > + * Copyright © 2022 Intel Corporation > + */ > > #include "igt.h" > #include "igt_vgem.h" > #include "sw_sync.h" > - > -#include <linux/dma-buf.h> > -#include <sys/poll.h> > +#include "dmabuf_sync_file.h" > > IGT_TEST_DESCRIPTION("Tests for sync_file support in dma-buf"); > > -struct igt_dma_buf_sync_file { > - __u32 flags; > - __s32 fd; > -}; > - > -#define IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE _IOWR(DMA_BUF_BASE, 2, struct igt_dma_buf_sync_file) > -#define IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE _IOW(DMA_BUF_BASE, 3, struct igt_dma_buf_sync_file) > - > -static bool has_dmabuf_export_sync_file(int fd) > -{ > - struct vgem_bo bo; > - int dmabuf, ret; > - struct igt_dma_buf_sync_file arg; > - > - bo.width = 1; > - bo.height = 1; > - bo.bpp = 32; > - vgem_create(fd, &bo); > - > - dmabuf = prime_handle_to_fd(fd, bo.handle); > - gem_close(fd, bo.handle); > - > - arg.flags = DMA_BUF_SYNC_WRITE; > - arg.fd = -1; > - > - ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); > - close(dmabuf); > - igt_assert(ret == 0 || errno == ENOTTY); > - > - return ret == 0; > -} > - > -static int dmabuf_export_sync_file(int dmabuf, uint32_t flags) > -{ > - struct igt_dma_buf_sync_file arg; > - > - arg.flags = flags; > - arg.fd = -1; > - do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); > - > - return arg.fd; > -} > - > -static bool has_dmabuf_import_sync_file(int fd) > -{ > - struct vgem_bo bo; > - int dmabuf, timeline, fence, ret; > - struct igt_dma_buf_sync_file arg; > - > - bo.width = 1; > - bo.height = 1; > - bo.bpp = 32; > - vgem_create(fd, &bo); > - > - dmabuf = prime_handle_to_fd(fd, bo.handle); > - gem_close(fd, bo.handle); > - > - timeline = sw_sync_timeline_create(); > - fence = sw_sync_timeline_create_fence(timeline, 1); > - sw_sync_timeline_inc(timeline, 1); > - > - arg.flags = DMA_BUF_SYNC_RW; > - arg.fd = fence; > - > - ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); > - close(dmabuf); > - close(fence); > - igt_assert(ret == 0 || errno == ENOTTY); > - > - return ret == 0; > -} > - > -static void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd) > -{ > - struct igt_dma_buf_sync_file arg; > - > - arg.flags = flags; > - arg.fd = sync_fd; > - do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); > -} > - > -static void > -dmabuf_import_timeline_fence(int dmabuf, uint32_t flags, > - int timeline, uint32_t seqno) > -{ > - int fence; > - > - fence = sw_sync_timeline_create_fence(timeline, seqno); > - dmabuf_import_sync_file(dmabuf, flags, fence); > - close(fence); > -} > - > -static bool dmabuf_busy(int dmabuf, uint32_t flags) > -{ > - struct pollfd pfd = { .fd = dmabuf }; > - > - /* If DMA_BUF_SYNC_WRITE is set, we don't want to set POLLIN or > - * else poll() may return a non-zero value if there are only read > - * fences because POLLIN is ready even if POLLOUT isn't. > - */ > - if (flags & DMA_BUF_SYNC_WRITE) > - pfd.events |= POLLOUT; > - else if (flags & DMA_BUF_SYNC_READ) > - pfd.events |= POLLIN; > - > - return poll(&pfd, 1, 0) == 0; > -} > - > -static bool sync_file_busy(int sync_file) > -{ > - struct pollfd pfd = { .fd = sync_file, .events = POLLIN }; > - return poll(&pfd, 1, 0) == 0; > -} > - > -static bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags) > -{ > - int sync_file; > - bool busy; > - > - sync_file = dmabuf_export_sync_file(dmabuf, flags); > - busy = sync_file_busy(sync_file); > - close(sync_file); > - > - return busy; > -} > - > static void test_export_basic(int fd) > { > struct vgem_bo bo; ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [igt-dev] [PATCH i-g-t v3 1/2] lib/dmabuf_sync_file: move common stuff into lib @ 2022-12-08 8:39 ` Das, Nirmoy 0 siblings, 0 replies; 11+ messages in thread From: Das, Nirmoy @ 2022-12-08 8:39 UTC (permalink / raw) To: Matthew Auld, igt-dev; +Cc: intel-gfx, Nirmoy Das LGTM the series is Reviewed-by: Nirmoy Das <nirmoy.das@intel.com> On 12/7/2022 5:52 PM, Matthew Auld wrote: > So we can use this across different tests. > > v2 > - Add docs for everything (Petri) > - Add missing copyright and fix headers slightly (Kamil) > v3: > - Just return true/false, for the has() family of functions, instead > of tripping up an assert() (Kamil) > > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > Cc: Petri Latvala <petri.latvala@intel.com> > Cc: Andrzej Hajda <andrzej.hajda@intel.com> > Cc: Nirmoy Das <nirmoy.das@intel.com> > --- > .../igt-gpu-tools/igt-gpu-tools-docs.xml | 1 + > lib/dmabuf_sync_file.c | 208 ++++++++++++++++++ > lib/dmabuf_sync_file.h | 26 +++ > lib/meson.build | 1 + > tests/dmabuf_sync_file.c | 133 +---------- > 5 files changed, 240 insertions(+), 129 deletions(-) > create mode 100644 lib/dmabuf_sync_file.c > create mode 100644 lib/dmabuf_sync_file.h > > diff --git a/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml b/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml > index 1ce842f4..102c8a89 100644 > --- a/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml > +++ b/docs/reference/igt-gpu-tools/igt-gpu-tools-docs.xml > @@ -15,6 +15,7 @@ > > <chapter> > <title>API Reference</title> > + <xi:include href="xml/dmabuf_sync_file.xml"/> > <xi:include href="xml/drmtest.xml"/> > <xi:include href="xml/igt_alsa.xml"/> > <xi:include href="xml/igt_audio.xml"/> > diff --git a/lib/dmabuf_sync_file.c b/lib/dmabuf_sync_file.c > new file mode 100644 > index 00000000..7803ec67 > --- /dev/null > +++ b/lib/dmabuf_sync_file.c > @@ -0,0 +1,208 @@ > +// SPDX-License-Identifier: MIT > +/* > + * Copyright © 2022 Intel Corporation > + */ > + > +#include "igt.h" > +#include "igt_vgem.h" > +#include "sw_sync.h" > + > +#include "dmabuf_sync_file.h" > + > +/** > + * SECTION: dmabuf_sync_file > + * @short_description: DMABUF importing/exporting fencing support library > + * @title: DMABUF Sync File > + * @include: dmabuf_sync_file.h > + */ > + > +struct igt_dma_buf_sync_file { > + __u32 flags; > + __s32 fd; > +}; > + > +#define IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE _IOWR(DMA_BUF_BASE, 2, struct igt_dma_buf_sync_file) > +#define IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE _IOW(DMA_BUF_BASE, 3, struct igt_dma_buf_sync_file) > + > +/** > + * has_dmabuf_export_sync_file: > + * @fd: The open drm fd > + * > + * Check if the kernel supports exporting a sync file from dmabuf. > + */ > +bool has_dmabuf_export_sync_file(int fd) > +{ > + struct vgem_bo bo; > + int dmabuf, ret; > + struct igt_dma_buf_sync_file arg; > + > + bo.width = 1; > + bo.height = 1; > + bo.bpp = 32; > + vgem_create(fd, &bo); > + > + dmabuf = prime_handle_to_fd(fd, bo.handle); > + gem_close(fd, bo.handle); > + > + arg.flags = DMA_BUF_SYNC_WRITE; > + arg.fd = -1; > + > + ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); > + close(dmabuf); > + > + return (ret == 0 || errno == ENOTTY); > +} > + > +/** > + * dmabuf_export_sync_file: > + * @dmabuf: The dmabuf fd > + * @flags: The flags to control the behaviour > + * > + * Take a snapshot of the current dma-resv fences in the dmabuf, and export as a > + * syncfile. The @flags should at least specify either DMA_BUF_SYNC_WRITE or > + * DMA_BUF_SYNC_READ, depending on if we care about the read or write fences. > + */ > +int dmabuf_export_sync_file(int dmabuf, uint32_t flags) > +{ > + struct igt_dma_buf_sync_file arg; > + > + arg.flags = flags; > + arg.fd = -1; > + do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); > + > + return arg.fd; > +} > + > +/** > + * has_dmabuf_import_sync_file: > + * @fd: The open drm fd > + * > + * Check if the kernel supports importing a sync file into a dmabuf. > + */ > +bool has_dmabuf_import_sync_file(int fd) > +{ > + struct vgem_bo bo; > + int dmabuf, timeline, fence, ret; > + struct igt_dma_buf_sync_file arg; > + > + bo.width = 1; > + bo.height = 1; > + bo.bpp = 32; > + vgem_create(fd, &bo); > + > + dmabuf = prime_handle_to_fd(fd, bo.handle); > + gem_close(fd, bo.handle); > + > + timeline = sw_sync_timeline_create(); > + fence = sw_sync_timeline_create_fence(timeline, 1); > + sw_sync_timeline_inc(timeline, 1); > + > + arg.flags = DMA_BUF_SYNC_RW; > + arg.fd = fence; > + > + ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); > + close(dmabuf); > + close(fence); > + return (ret == 0 || errno == ENOTTY); > +} > + > +/** > + * dmabuf_import_sync_file: > + * @dmabuf: The dmabuf fd > + * @flags: The flags to control the behaviour > + * @sync_fd: The sync file (i.e our fence) to import > + * > + * Import the sync file @sync_fd, into the dmabuf. The @flags should at least > + * specify DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ, depending on if we are > + * importing the @sync_fd as a read or write fence. > + */ > +void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd) > +{ > + struct igt_dma_buf_sync_file arg; > + > + arg.flags = flags; > + arg.fd = sync_fd; > + do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); > +} > + > +/** > + * dmabuf_import_timeline_fence: > + * @dmabuf: The dmabuf fd > + * @flags: The flags to control the behaviour > + * @timeline: The sync file timeline where the new fence is created > + * @seqno: The sequence number to use for the fence > + * > + * Create a new fence as part of @timeline, and import as a sync file into the > + * dmabuf. The @flags should at least specify DMA_BUF_SYNC_WRITE or > + * DMA_BUF_SYNC_READ, depending on if we are importing the new fence as a read > + * or write fence. > + */ > +void dmabuf_import_timeline_fence(int dmabuf, uint32_t flags, > + int timeline, uint32_t seqno) > +{ > + int fence; > + > + fence = sw_sync_timeline_create_fence(timeline, seqno); > + dmabuf_import_sync_file(dmabuf, flags, fence); > + close(fence); > +} > + > +/** > + * dmabuf_busy: > + * @dmabuf: The dmabuf fd > + * @flags: The flags to control the behaviour > + * > + * Check if the fences in the dmabuf are still busy. The @flags should at least > + * specify DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ, depending on if we are > + * checking if the read or read fences have all signalled. Or DMA_BUF_SYNC_RW if > + * we care about both. > + */ > +bool dmabuf_busy(int dmabuf, uint32_t flags) > +{ > + struct pollfd pfd = { .fd = dmabuf }; > + > + /* If DMA_BUF_SYNC_WRITE is set, we don't want to set POLLIN or > + * else poll() may return a non-zero value if there are only read > + * fences because POLLIN is ready even if POLLOUT isn't. > + */ > + if (flags & DMA_BUF_SYNC_WRITE) > + pfd.events |= POLLOUT; > + else if (flags & DMA_BUF_SYNC_READ) > + pfd.events |= POLLIN; > + > + return poll(&pfd, 1, 0) == 0; > +} > + > +/** > + * sync_file_busy: > + * @sync_file: The sync file to check > + * > + * Check if the @sync_file is still busy or not. > + */ > +bool sync_file_busy(int sync_file) > +{ > + struct pollfd pfd = { .fd = sync_file, .events = POLLIN }; > + return poll(&pfd, 1, 0) == 0; > +} > + > +/** > + * dmabuf_sync_file_busy: > + * @dmabuf: The dmabuf fd > + * @flags: The flags to control the behaviour > + * > + * Export the current fences in @dmabuf as a sync file and check if still busy. > + * The @flags should at least contain DMA_BUF_SYNC_WRITE or DMA_BUF_SYNC_READ, > + * to specify which fences are to be exported from the @dmabuf and checked if > + * busy. Or DMA_BUF_SYNC_RW if we care about both. > + */ > +bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags) > +{ > + int sync_file; > + bool busy; > + > + sync_file = dmabuf_export_sync_file(dmabuf, flags); > + busy = sync_file_busy(sync_file); > + close(sync_file); > + > + return busy; > +} > diff --git a/lib/dmabuf_sync_file.h b/lib/dmabuf_sync_file.h > new file mode 100644 > index 00000000..d642ff30 > --- /dev/null > +++ b/lib/dmabuf_sync_file.h > @@ -0,0 +1,26 @@ > +/* SPDX-License-Identifier: MIT */ > +/* > + * Copyright © 2022 Intel Corporation > + */ > + > +#ifndef DMABUF_SYNC_FILE_H > +#define DMABUF_SYNC_FILE_H > + > +#ifdef __linux__ > +#include <linux/dma-buf.h> > +#endif > +#include <sys/poll.h> > +#include <stdbool.h> > +#include <stdint.h> > + > +bool has_dmabuf_export_sync_file(int fd); > +bool has_dmabuf_import_sync_file(int fd); > +int dmabuf_export_sync_file(int dmabuf, uint32_t flags); > +void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd); > +void dmabuf_import_timeline_fence(int dmabuf, uint32_t flags, > + int timeline, uint32_t seqno); > +bool dmabuf_busy(int dmabuf, uint32_t flags); > +bool sync_file_busy(int sync_file); > +bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags); > + > +#endif > diff --git a/lib/meson.build b/lib/meson.build > index 2c6ebce7..19d9f4f2 100644 > --- a/lib/meson.build > +++ b/lib/meson.build > @@ -1,5 +1,6 @@ > lib_sources = [ > 'drmtest.c', > + 'dmabuf_sync_file.c', > 'huc_copy.c', > 'i915/gem.c', > 'i915/gem_context.c', > diff --git a/tests/dmabuf_sync_file.c b/tests/dmabuf_sync_file.c > index 2179a76d..25bb6ad7 100644 > --- a/tests/dmabuf_sync_file.c > +++ b/tests/dmabuf_sync_file.c > @@ -1,140 +1,15 @@ > // SPDX-License-Identifier: MIT > +/* > + * Copyright © 2022 Intel Corporation > + */ > > #include "igt.h" > #include "igt_vgem.h" > #include "sw_sync.h" > - > -#include <linux/dma-buf.h> > -#include <sys/poll.h> > +#include "dmabuf_sync_file.h" > > IGT_TEST_DESCRIPTION("Tests for sync_file support in dma-buf"); > > -struct igt_dma_buf_sync_file { > - __u32 flags; > - __s32 fd; > -}; > - > -#define IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE _IOWR(DMA_BUF_BASE, 2, struct igt_dma_buf_sync_file) > -#define IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE _IOW(DMA_BUF_BASE, 3, struct igt_dma_buf_sync_file) > - > -static bool has_dmabuf_export_sync_file(int fd) > -{ > - struct vgem_bo bo; > - int dmabuf, ret; > - struct igt_dma_buf_sync_file arg; > - > - bo.width = 1; > - bo.height = 1; > - bo.bpp = 32; > - vgem_create(fd, &bo); > - > - dmabuf = prime_handle_to_fd(fd, bo.handle); > - gem_close(fd, bo.handle); > - > - arg.flags = DMA_BUF_SYNC_WRITE; > - arg.fd = -1; > - > - ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); > - close(dmabuf); > - igt_assert(ret == 0 || errno == ENOTTY); > - > - return ret == 0; > -} > - > -static int dmabuf_export_sync_file(int dmabuf, uint32_t flags) > -{ > - struct igt_dma_buf_sync_file arg; > - > - arg.flags = flags; > - arg.fd = -1; > - do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &arg); > - > - return arg.fd; > -} > - > -static bool has_dmabuf_import_sync_file(int fd) > -{ > - struct vgem_bo bo; > - int dmabuf, timeline, fence, ret; > - struct igt_dma_buf_sync_file arg; > - > - bo.width = 1; > - bo.height = 1; > - bo.bpp = 32; > - vgem_create(fd, &bo); > - > - dmabuf = prime_handle_to_fd(fd, bo.handle); > - gem_close(fd, bo.handle); > - > - timeline = sw_sync_timeline_create(); > - fence = sw_sync_timeline_create_fence(timeline, 1); > - sw_sync_timeline_inc(timeline, 1); > - > - arg.flags = DMA_BUF_SYNC_RW; > - arg.fd = fence; > - > - ret = igt_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); > - close(dmabuf); > - close(fence); > - igt_assert(ret == 0 || errno == ENOTTY); > - > - return ret == 0; > -} > - > -static void dmabuf_import_sync_file(int dmabuf, uint32_t flags, int sync_fd) > -{ > - struct igt_dma_buf_sync_file arg; > - > - arg.flags = flags; > - arg.fd = sync_fd; > - do_ioctl(dmabuf, IGT_DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &arg); > -} > - > -static void > -dmabuf_import_timeline_fence(int dmabuf, uint32_t flags, > - int timeline, uint32_t seqno) > -{ > - int fence; > - > - fence = sw_sync_timeline_create_fence(timeline, seqno); > - dmabuf_import_sync_file(dmabuf, flags, fence); > - close(fence); > -} > - > -static bool dmabuf_busy(int dmabuf, uint32_t flags) > -{ > - struct pollfd pfd = { .fd = dmabuf }; > - > - /* If DMA_BUF_SYNC_WRITE is set, we don't want to set POLLIN or > - * else poll() may return a non-zero value if there are only read > - * fences because POLLIN is ready even if POLLOUT isn't. > - */ > - if (flags & DMA_BUF_SYNC_WRITE) > - pfd.events |= POLLOUT; > - else if (flags & DMA_BUF_SYNC_READ) > - pfd.events |= POLLIN; > - > - return poll(&pfd, 1, 0) == 0; > -} > - > -static bool sync_file_busy(int sync_file) > -{ > - struct pollfd pfd = { .fd = sync_file, .events = POLLIN }; > - return poll(&pfd, 1, 0) == 0; > -} > - > -static bool dmabuf_sync_file_busy(int dmabuf, uint32_t flags) > -{ > - int sync_file; > - bool busy; > - > - sync_file = dmabuf_export_sync_file(dmabuf, flags); > - busy = sync_file_busy(sync_file); > - close(sync_file); > - > - return busy; > -} > - > static void test_export_basic(int fd) > { > struct vgem_bo bo; ^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib 2022-12-07 16:52 ` [Intel-gfx] " Matthew Auld ` (3 preceding siblings ...) (?) @ 2022-12-09 6:36 ` Patchwork -1 siblings, 0 replies; 11+ messages in thread From: Patchwork @ 2022-12-09 6:36 UTC (permalink / raw) To: Matthew Auld; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 7661 bytes --] == Series Details == Series: series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib URL : https://patchwork.freedesktop.org/series/111738/ State : success == Summary == CI Bug Log - changes from CI_DRM_12478 -> IGTPW_8213 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html Participating hosts (39 -> 41) ------------------------------ Additional (4): bat-rpls-2 fi-bwr-2160 fi-tgl-dsi fi-bsw-nick Missing (2): fi-hsw-4770 fi-rkl-11600 Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_8213: ### IGT changes ### #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_selftest@live@gt_lrc: - {fi-tgl-dsi}: NOTRUN -> [DMESG-FAIL][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-tgl-dsi/igt@i915_selftest@live@gt_lrc.html * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-2: - {bat-dg2-11}: [PASS][2] -> [FAIL][3] +1 similar issue [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-2.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-dp-2.html Known issues ------------ Here are the changes found in IGTPW_8213 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_lmem_swapping@parallel-random-engines: - fi-bsw-nick: NOTRUN -> [SKIP][4] ([fdo#109271]) +39 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-nick/igt@gem_lmem_swapping@parallel-random-engines.html * igt@i915_selftest@live@gt_heartbeat: - fi-kbl-soraka: [PASS][5] -> [DMESG-FAIL][6] ([i915#5334]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@gt_lrc: - bat-dg1-5: [PASS][7] -> [INCOMPLETE][8] ([i915#4983]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-dg1-5/igt@i915_selftest@live@gt_lrc.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg1-5/igt@i915_selftest@live@gt_lrc.html * igt@i915_selftest@live@guc_multi_lrc: - fi-kbl-soraka: [PASS][9] -> [INCOMPLETE][10] ([i915#5334]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-kbl-soraka/igt@i915_selftest@live@guc_multi_lrc.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-kbl-soraka/igt@i915_selftest@live@guc_multi_lrc.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-bsw-nick: NOTRUN -> [SKIP][11] ([fdo#109271] / [fdo#111827]) +8 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-nick/igt@kms_chamelium@hdmi-hpd-fast.html * igt@kms_psr@primary_mmap_gtt: - fi-bwr-2160: NOTRUN -> [SKIP][12] ([fdo#109271]) +54 similar issues [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bwr-2160/igt@kms_psr@primary_mmap_gtt.html * igt@runner@aborted: - bat-dg1-5: NOTRUN -> [FAIL][13] ([i915#4312]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-dg1-5/igt@runner@aborted.html #### Possible fixes #### * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions: - fi-bsw-kefka: [FAIL][14] ([i915#6298]) -> [PASS][15] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html * igt@kms_pipe_crc_basic@read-crc@pipe-b-dp-1: - {bat-adlp-9}: [FAIL][16] -> [PASS][17] +3 similar issues [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/bat-adlp-9/igt@kms_pipe_crc_basic@read-crc@pipe-b-dp-1.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/bat-adlp-9/igt@kms_pipe_crc_basic@read-crc@pipe-b-dp-1.html #### Warnings #### * igt@i915_module_load@load: - fi-bsw-n3050: [DMESG-WARN][18] ([i915#1982] / [i915#7430]) -> [DMESG-WARN][19] ([i915#7430]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/fi-bsw-n3050/igt@i915_module_load@load.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/fi-bsw-n3050/igt@i915_module_load@load.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1759]: https://gitlab.freedesktop.org/drm/intel/issues/1759 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#6559]: https://gitlab.freedesktop.org/drm/intel/issues/6559 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#6816]: https://gitlab.freedesktop.org/drm/intel/issues/6816 [i915#6818]: https://gitlab.freedesktop.org/drm/intel/issues/6818 [i915#6949]: https://gitlab.freedesktop.org/drm/intel/issues/6949 [i915#7058]: https://gitlab.freedesktop.org/drm/intel/issues/7058 [i915#7346]: https://gitlab.freedesktop.org/drm/intel/issues/7346 [i915#7430]: https://gitlab.freedesktop.org/drm/intel/issues/7430 [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456 [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7085 -> IGTPW_8213 CI-20190529: 20190529 CI_DRM_12478: f5d2f00fe4daf65ecd6634dec39fbf66b44535e3 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8213: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html IGT_7085: 11af20de3877b23a244b816453bfc41d83591a15 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Testlist changes ---------------- +igt@gem_exec_balancer@parallel-dmabuf-import-out-fence == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html [-- Attachment #2: Type: text/html, Size: 7209 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib 2022-12-07 16:52 ` [Intel-gfx] " Matthew Auld ` (4 preceding siblings ...) (?) @ 2022-12-09 14:19 ` Patchwork -1 siblings, 0 replies; 11+ messages in thread From: Patchwork @ 2022-12-09 14:19 UTC (permalink / raw) To: Matthew Auld; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 30472 bytes --] == Series Details == Series: series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib URL : https://patchwork.freedesktop.org/series/111738/ State : success == Summary == CI Bug Log - changes from CI_DRM_12478_full -> IGTPW_8213_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html Participating hosts (14 -> 7) ------------------------------ Missing (7): pig-kbl-iris shard-tglu-9 shard-tglu-10 shard-tglu pig-glk-j5005 pig-skl-6260u shard-rkl New tests --------- New tests have been introduced between CI_DRM_12478_full and IGTPW_8213_full: ### New IGT tests (1) ### * igt@gem_exec_balancer@parallel-dmabuf-import-out-fence: - Statuses : 3 pass(s) 2 skip(s) - Exec time: [0.0] s Known issues ------------ Here are the changes found in IGTPW_8213_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_ctx_sseu@mmap-args: - shard-tglb: NOTRUN -> [SKIP][1] ([i915#280]) +1 similar issue [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb3/igt@gem_ctx_sseu@mmap-args.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-tglb: [PASS][2] -> [FAIL][3] ([i915#2842]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-tglb2/igt@gem_exec_fair@basic-pace-share@rcs0.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb6/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_fair@basic-pace-solo@rcs0: - shard-apl: NOTRUN -> [FAIL][4] ([i915#2842]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl1/igt@gem_exec_fair@basic-pace-solo@rcs0.html * igt@gem_exec_fair@basic-pace@vcs1: - shard-tglb: NOTRUN -> [FAIL][5] ([i915#2842]) +4 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb2/igt@gem_exec_fair@basic-pace@vcs1.html * igt@gem_lmem_swapping@parallel-random-engines: - shard-tglb: NOTRUN -> [SKIP][6] ([i915#4613]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb6/igt@gem_lmem_swapping@parallel-random-engines.html * igt@gem_pwrite@basic-exhaustion: - shard-apl: NOTRUN -> [WARN][7] ([i915#2658]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl2/igt@gem_pwrite@basic-exhaustion.html - shard-snb: NOTRUN -> [WARN][8] ([i915#2658]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-snb7/igt@gem_pwrite@basic-exhaustion.html - shard-tglb: NOTRUN -> [WARN][9] ([i915#2658]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb7/igt@gem_pwrite@basic-exhaustion.html - shard-iclb: NOTRUN -> [WARN][10] ([i915#2658]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb3/igt@gem_pwrite@basic-exhaustion.html * igt@gem_pxp@create-regular-context-1: - shard-tglb: NOTRUN -> [SKIP][11] ([i915#4270]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb1/igt@gem_pxp@create-regular-context-1.html * igt@gem_render_copy@yf-tiled-to-vebox-linear: - shard-iclb: NOTRUN -> [SKIP][12] ([i915#768]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb5/igt@gem_render_copy@yf-tiled-to-vebox-linear.html * igt@gen3_render_tiledx_blits: - shard-iclb: NOTRUN -> [SKIP][13] ([fdo#109289]) +2 similar issues [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb2/igt@gen3_render_tiledx_blits.html * igt@gen9_exec_parse@allowed-single: - shard-iclb: NOTRUN -> [SKIP][14] ([i915#2856]) +1 similar issue [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb7/igt@gen9_exec_parse@allowed-single.html - shard-apl: NOTRUN -> [DMESG-WARN][15] ([i915#5566] / [i915#716]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl8/igt@gen9_exec_parse@allowed-single.html * igt@gen9_exec_parse@bb-start-cmd: - shard-tglb: NOTRUN -> [SKIP][16] ([i915#2527] / [i915#2856]) +2 similar issues [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb3/igt@gen9_exec_parse@bb-start-cmd.html * igt@i915_pm_lpsp@screens-disabled: - shard-tglb: NOTRUN -> [SKIP][17] ([i915#1902]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb2/igt@i915_pm_lpsp@screens-disabled.html * igt@i915_pm_rpm@pc8-residency: - shard-tglb: NOTRUN -> [SKIP][18] ([fdo#109506] / [i915#2411]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb3/igt@i915_pm_rpm@pc8-residency.html * igt@i915_suspend@debugfs-reader: - shard-apl: [PASS][19] -> [DMESG-WARN][20] ([i915#180]) +1 similar issue [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-apl3/igt@i915_suspend@debugfs-reader.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl7/igt@i915_suspend@debugfs-reader.html * igt@kms_big_fb@4-tiled-addfb-size-offset-overflow: - shard-tglb: NOTRUN -> [SKIP][21] ([i915#5286]) +4 similar issues [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb3/igt@kms_big_fb@4-tiled-addfb-size-offset-overflow.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip: - shard-iclb: NOTRUN -> [SKIP][22] ([i915#5286]) +2 similar issues [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html * igt@kms_big_fb@linear-8bpp-rotate-270: - shard-tglb: NOTRUN -> [SKIP][23] ([fdo#111614]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb7/igt@kms_big_fb@linear-8bpp-rotate-270.html * igt@kms_big_fb@yf-tiled-32bpp-rotate-0: - shard-tglb: NOTRUN -> [SKIP][24] ([fdo#111615]) +4 similar issues [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb1/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip: - shard-iclb: NOTRUN -> [SKIP][25] ([fdo#110723]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb8/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html * igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs: - shard-tglb: NOTRUN -> [SKIP][26] ([i915#3689] / [i915#3886]) +1 similar issue [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb6/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs.html - shard-iclb: NOTRUN -> [SKIP][27] ([fdo#109278] / [i915#3886]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb1/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc: - shard-apl: NOTRUN -> [SKIP][28] ([fdo#109271] / [i915#3886]) +2 similar issues [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl1/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-c-random-ccs-data-4_tiled_dg2_rc_ccs_cc: - shard-tglb: NOTRUN -> [SKIP][29] ([i915#6095]) +1 similar issue [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb2/igt@kms_ccs@pipe-c-random-ccs-data-4_tiled_dg2_rc_ccs_cc.html * igt@kms_ccs@pipe-d-bad-rotation-90-4_tiled_dg2_rc_ccs: - shard-tglb: NOTRUN -> [SKIP][30] ([i915#3689]) +3 similar issues [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb7/igt@kms_ccs@pipe-d-bad-rotation-90-4_tiled_dg2_rc_ccs.html * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-yf_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][31] ([fdo#111615] / [i915#3689]) +2 similar issues [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb3/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-yf_tiled_ccs.html * igt@kms_chamelium@dp-edid-stress-resolution-4k: - shard-tglb: NOTRUN -> [SKIP][32] ([fdo#109284] / [fdo#111827]) +4 similar issues [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb5/igt@kms_chamelium@dp-edid-stress-resolution-4k.html * igt@kms_chamelium@hdmi-aspect-ratio: - shard-apl: NOTRUN -> [SKIP][33] ([fdo#109271] / [fdo#111827]) +6 similar issues [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl2/igt@kms_chamelium@hdmi-aspect-ratio.html * igt@kms_chamelium@hdmi-frame-dump: - shard-snb: NOTRUN -> [SKIP][34] ([fdo#109271] / [fdo#111827]) +2 similar issues [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-snb7/igt@kms_chamelium@hdmi-frame-dump.html - shard-iclb: NOTRUN -> [SKIP][35] ([fdo#109284] / [fdo#111827]) +1 similar issue [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb6/igt@kms_chamelium@hdmi-frame-dump.html * igt@kms_content_protection@lic: - shard-iclb: NOTRUN -> [SKIP][36] ([i915#7118]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb5/igt@kms_content_protection@lic.html - shard-tglb: NOTRUN -> [SKIP][37] ([i915#7118]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb3/igt@kms_content_protection@lic.html * igt@kms_content_protection@lic@pipe-a-dp-1: - shard-apl: NOTRUN -> [TIMEOUT][38] ([i915#7173]) [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl2/igt@kms_content_protection@lic@pipe-a-dp-1.html * igt@kms_content_protection@uevent@pipe-a-dp-1: - shard-apl: NOTRUN -> [FAIL][39] ([i915#1339]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl1/igt@kms_content_protection@uevent@pipe-a-dp-1.html * igt@kms_cursor_crc@cursor-rapid-movement-512x512: - shard-snb: NOTRUN -> [SKIP][40] ([fdo#109271]) +75 similar issues [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-snb5/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html - shard-tglb: NOTRUN -> [SKIP][41] ([i915#3359]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb5/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html - shard-iclb: NOTRUN -> [SKIP][42] ([i915#3359]) [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb2/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy: - shard-tglb: NOTRUN -> [SKIP][43] ([fdo#109274] / [fdo#111825]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html * igt@kms_fbcon_fbt@fbc: - shard-apl: NOTRUN -> [FAIL][44] ([i915#4767]) [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl3/igt@kms_fbcon_fbt@fbc.html - shard-tglb: NOTRUN -> [FAIL][45] ([i915#4767]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb6/igt@kms_fbcon_fbt@fbc.html - shard-iclb: NOTRUN -> [FAIL][46] ([i915#4767]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb1/igt@kms_fbcon_fbt@fbc.html * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset: - shard-iclb: NOTRUN -> [SKIP][47] ([fdo#109274]) +3 similar issues [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb2/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset: - shard-tglb: NOTRUN -> [SKIP][48] ([fdo#109274] / [fdo#111825] / [i915#3637]) +2 similar issues [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb6/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-valid-mode: - shard-iclb: NOTRUN -> [SKIP][49] ([i915#2587] / [i915#2672]) +1 similar issue [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode: - shard-iclb: NOTRUN -> [SKIP][50] ([i915#2672]) +7 similar issues [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode: - shard-tglb: NOTRUN -> [SKIP][51] ([i915#2587] / [i915#2672]) +3 similar issues [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb6/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite: - shard-apl: NOTRUN -> [SKIP][52] ([fdo#109271]) +79 similar issues [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl1/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc: - shard-tglb: NOTRUN -> [SKIP][53] ([i915#6497]) +5 similar issues [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-gtt: - shard-iclb: NOTRUN -> [SKIP][54] ([fdo#109280]) +4 similar issues [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-pwrite: - shard-tglb: NOTRUN -> [SKIP][55] ([fdo#109280] / [fdo#111825]) +9 similar issues [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-pwrite.html * igt@kms_pipe_b_c_ivb@pipe-b-dpms-off-modeset-pipe-c: - shard-tglb: NOTRUN -> [SKIP][56] ([fdo#109289]) +3 similar issues [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb1/igt@kms_pipe_b_c_ivb@pipe-b-dpms-off-modeset-pipe-c.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-d-edp-1: - shard-tglb: NOTRUN -> [SKIP][57] ([i915#5176]) +3 similar issues [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb5/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-d-edp-1.html * igt@kms_prime@basic-crc-hybrid: - shard-iclb: NOTRUN -> [SKIP][58] ([i915#6524]) [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb6/igt@kms_prime@basic-crc-hybrid.html - shard-tglb: NOTRUN -> [SKIP][59] ([i915#6524]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb1/igt@kms_prime@basic-crc-hybrid.html * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area: - shard-apl: NOTRUN -> [SKIP][60] ([fdo#109271] / [i915#658]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl6/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area: - shard-tglb: NOTRUN -> [SKIP][61] ([i915#2920]) +1 similar issue [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html * igt@kms_psr@psr2_primary_blt: - shard-tglb: NOTRUN -> [FAIL][62] ([i915#132] / [i915#3467]) [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb5/igt@kms_psr@psr2_primary_blt.html * igt@kms_psr@psr2_sprite_plane_move: - shard-iclb: [PASS][63] -> [SKIP][64] ([fdo#109441]) +2 similar issues [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb5/igt@kms_psr@psr2_sprite_plane_move.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-tglb: [PASS][65] -> [SKIP][66] ([i915#5519]) +1 similar issue [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-tglb2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb2/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@kms_setmode@basic-clone-single-crtc: - shard-iclb: NOTRUN -> [SKIP][67] ([i915#3555]) +2 similar issues [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb3/igt@kms_setmode@basic-clone-single-crtc.html - shard-tglb: NOTRUN -> [SKIP][68] ([i915#3555]) +2 similar issues [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-tglb3/igt@kms_setmode@basic-clone-single-crtc.html * igt@kms_vblank@pipe-d-ts-continuation-idle: - shard-iclb: NOTRUN -> [SKIP][69] ([fdo#109278]) +7 similar issues [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb7/igt@kms_vblank@pipe-d-ts-continuation-idle.html * igt@sysfs_clients@split-25: - shard-apl: NOTRUN -> [SKIP][70] ([fdo#109271] / [i915#2994]) [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl7/igt@sysfs_clients@split-25.html #### Possible fixes #### * igt@gem_eio@unwedge-stress: - {shard-dg1}: [FAIL][71] ([i915#5784]) -> [PASS][72] +1 similar issue [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-dg1-17/igt@gem_eio@unwedge-stress.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-dg1-15/igt@gem_eio@unwedge-stress.html * igt@i915_pm_dc@dc9-dpms: - shard-apl: [SKIP][73] ([fdo#109271]) -> [PASS][74] [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-apl1/igt@i915_pm_dc@dc9-dpms.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl8/igt@i915_pm_dc@dc9-dpms.html * igt@i915_pm_rc6_residency@rc6-idle@vecs0: - {shard-dg1}: [FAIL][75] ([i915#3591]) -> [PASS][76] [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-dg1-19/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-dg1-19/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a-edp-1: - shard-iclb: [SKIP][77] ([i915#5235]) -> [PASS][78] +2 similar issues [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-iclb2/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a-edp-1.html [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb3/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a-edp-1.html * igt@kms_psr@psr2_sprite_render: - shard-iclb: [SKIP][79] ([fdo#109441]) -> [PASS][80] +1 similar issue [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-iclb6/igt@kms_psr@psr2_sprite_render.html [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb2/igt@kms_psr@psr2_sprite_render.html * igt@kms_psr_stress_test@invalidate-primary-flip-overlay: - shard-iclb: [SKIP][81] ([i915#5519]) -> [PASS][82] [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-iclb7/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb7/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html #### Warnings #### * igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf: - shard-iclb: [SKIP][83] ([i915#658]) -> [SKIP][84] ([i915#2920]) [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-iclb7/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area: - shard-iclb: [SKIP][85] ([fdo#111068] / [i915#658]) -> [SKIP][86] ([i915#2920]) [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-iclb6/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html * igt@kms_psr2_sf@plane-move-sf-dmg-area: - shard-iclb: [SKIP][87] ([i915#2920]) -> [SKIP][88] ([fdo#111068] / [i915#658]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-iclb2/igt@kms_psr2_sf@plane-move-sf-dmg-area.html [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-iclb3/igt@kms_psr2_sf@plane-move-sf-dmg-area.html * igt@runner@aborted: - shard-apl: ([FAIL][89], [FAIL][90]) ([i915#3002] / [i915#4312]) -> ([FAIL][91], [FAIL][92], [FAIL][93], [FAIL][94], [FAIL][95]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312]) [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-apl8/igt@runner@aborted.html [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12478/shard-apl8/igt@runner@aborted.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl7/igt@runner@aborted.html [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl8/igt@runner@aborted.html [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl3/igt@runner@aborted.html [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl8/igt@runner@aborted.html [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/shard-apl1/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). [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278 [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283 [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284 [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289 [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300 [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302 [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307 [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309 [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314 [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054 [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132 [i915#1339]: https://gitlab.freedesktop.org/drm/intel/issues/1339 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902 [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411 [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587 [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705 [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920 [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994 [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467 [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469 [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312 [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349 [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767 [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771 [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812 [i915#4818]: https://gitlab.freedesktop.org/drm/intel/issues/4818 [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833 [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852 [i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854 [i915#4855]: https://gitlab.freedesktop.org/drm/intel/issues/4855 [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859 [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860 [i915#4874]: https://gitlab.freedesktop.org/drm/intel/issues/4874 [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880 [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288 [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325 [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439 [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461 [i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519 [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563 [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566 [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245 [i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334 [i915#6493]: https://gitlab.freedesktop.org/drm/intel/issues/6493 [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497 [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768 [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946 [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116 [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118 [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716 [i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173 [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 [i915#7672]: https://gitlab.freedesktop.org/drm/intel/issues/7672 [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768 [i915#7681]: https://gitlab.freedesktop.org/drm/intel/issues/7681 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7085 -> IGTPW_8213 * Piglit: piglit_4509 -> None CI-20190529: 20190529 CI_DRM_12478: f5d2f00fe4daf65ecd6634dec39fbf66b44535e3 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_8213: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html IGT_7085: 11af20de3877b23a244b816453bfc41d83591a15 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8213/index.html [-- Attachment #2: Type: text/html, Size: 32734 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-12-09 14:19 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-12-07 16:52 [igt-dev] [PATCH i-g-t v3 1/2] lib/dmabuf_sync_file: move common stuff into lib Matthew Auld 2022-12-07 16:52 ` [Intel-gfx] " Matthew Auld 2022-12-07 16:52 ` [igt-dev] [PATCH i-g-t v3 2/2] tests/i915/gem_exec_balancer: exercise dmabuf import Matthew Auld 2022-12-07 16:52 ` [Intel-gfx] " Matthew Auld 2022-12-07 19:35 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,v3,1/2] lib/dmabuf_sync_file: move common stuff into lib Patchwork 2022-12-08 21:32 ` Kamil Konieczny 2022-12-09 6:45 ` Yedireswarapu, SaiX Nandan 2022-12-08 8:39 ` [igt-dev] [PATCH i-g-t v3 1/2] " Das, Nirmoy 2022-12-08 8:39 ` [Intel-gfx] " Das, Nirmoy 2022-12-09 6:36 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,v3,1/2] " Patchwork 2022-12-09 14:19 ` [igt-dev] ✓ Fi.CI.IGT: " 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.