* [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates
@ 2022-12-16 16:28 Maíra Canal
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 1/5] tests/vc4: Move VC4 tests to their own folder Maíra Canal
` (7 more replies)
0 siblings, 8 replies; 10+ messages in thread
From: Maíra Canal @ 2022-12-16 16:28 UTC (permalink / raw)
To: igt-dev; +Cc: petri.latvala, Emma Anholt, Maxime Ripard
This series aims to update the VC4 IGT tests. The first three patches contain
some janitorial duties related to the existing tests: creating a folder for the
VC4 tests, removing some unused includes, and adding a macro with the default
PAGE_SIZE. The fourth patch adds an igt_require to all the VC4 tests to
check that the tests are not running on BCM2711. The final patch includes
new tests for the VC4's performance monitors.
This series was tested on the Raspberry Pi 3 Model B and Raspberry Pi 4 Model B,
and the HTML outputs of the VC4 tests are available on:
- Raspberry Pi 4: https://mairacanal.fedorapeople.org/igt-results/rpi4-v2/html/
- Raspberry Pi 3: https://mairacanal.fedorapeople.org/igt-results/rpi3-v2/html/
Best Regards,
- Maíra Canal
v1 -> v2:
- Install VC4 tests on build/tests/vc4/ instead of build/tests/ (Melissa Wen).
- Use the syncobj capability to identify vc4 and vc5 (Melissa Wen).
- Change the order of the commits (Melissa Wen).
- Add Petri Latvala tags.
v2 -> v3:
- Remove ternary conditional operator from return (Petri Latvala).
- Add Petri Latvala tag.
Maíra Canal (5):
tests/vc4: Move VC4 tests to their own folder
tests/vc4: Remove unused or redundant includes
lib/igt_vc4: Add PAGE_SIZE macro to VC4
tests/vc4: Skip VC4 tests if they are running on BCM2711/RaspberryPi4
tests/vc4_perfmon: Create test for VC4's Perfmon IOCTLs
lib/igt_vc4.c | 60 ++++++++++---
lib/igt_vc4.h | 9 ++
meson.build | 8 ++
tests/meson.build | 10 +--
tests/vc4/meson.build | 20 +++++
tests/{ => vc4}/vc4_create_bo.c | 15 +---
tests/{ => vc4}/vc4_dmabuf_poll.c | 14 +--
tests/{ => vc4}/vc4_label_bo.c | 21 ++---
tests/{ => vc4}/vc4_lookup_fail.c | 14 +--
tests/vc4/vc4_perfmon.c | 138 +++++++++++++++++++++++++++++
tests/{ => vc4}/vc4_purgeable_bo.c | 10 ---
tests/{ => vc4}/vc4_tiling.c | 27 ++----
tests/{ => vc4}/vc4_wait_bo.c | 14 +--
tests/{ => vc4}/vc4_wait_seqno.c | 15 +---
tests/vc4_ci/vc4.testlist | 80 +++++++++--------
15 files changed, 298 insertions(+), 157 deletions(-)
create mode 100644 tests/vc4/meson.build
rename tests/{ => vc4}/vc4_create_bo.c (89%)
rename tests/{ => vc4}/vc4_dmabuf_poll.c (91%)
rename tests/{ => vc4}/vc4_label_bo.c (85%)
rename tests/{ => vc4}/vc4_lookup_fail.c (90%)
create mode 100644 tests/vc4/vc4_perfmon.c
rename tests/{ => vc4}/vc4_purgeable_bo.c (97%)
rename tests/{ => vc4}/vc4_tiling.c (88%)
rename tests/{ => vc4}/vc4_wait_bo.c (92%)
rename tests/{ => vc4}/vc4_wait_seqno.c (89%)
--
2.38.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t v3 1/5] tests/vc4: Move VC4 tests to their own folder
2022-12-16 16:28 [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Maíra Canal
@ 2022-12-16 16:28 ` Maíra Canal
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 2/5] tests/vc4: Remove unused or redundant includes Maíra Canal
` (6 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Maíra Canal @ 2022-12-16 16:28 UTC (permalink / raw)
To: igt-dev; +Cc: petri.latvala, Emma Anholt, Maxime Ripard
VC4 contains a substantial number of tests. In order to avoid polluting
the main tests folder, move the VC4 tests to a separate folder.
Moreover, create a subdir "vc4" to install the VC4-specific tests.
Acked-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Maíra Canal <mcanal@igalia.com>
---
meson.build | 8 ++++
tests/meson.build | 10 +----
tests/vc4/meson.build | 19 ++++++++
tests/{ => vc4}/vc4_create_bo.c | 0
tests/{ => vc4}/vc4_dmabuf_poll.c | 0
tests/{ => vc4}/vc4_label_bo.c | 0
tests/{ => vc4}/vc4_lookup_fail.c | 0
tests/{ => vc4}/vc4_purgeable_bo.c | 0
tests/{ => vc4}/vc4_tiling.c | 0
tests/{ => vc4}/vc4_wait_bo.c | 0
tests/{ => vc4}/vc4_wait_seqno.c | 0
tests/vc4_ci/vc4.testlist | 70 +++++++++++++++---------------
12 files changed, 64 insertions(+), 43 deletions(-)
create mode 100644 tests/vc4/meson.build
rename tests/{ => vc4}/vc4_create_bo.c (100%)
rename tests/{ => vc4}/vc4_dmabuf_poll.c (100%)
rename tests/{ => vc4}/vc4_label_bo.c (100%)
rename tests/{ => vc4}/vc4_lookup_fail.c (100%)
rename tests/{ => vc4}/vc4_purgeable_bo.c (100%)
rename tests/{ => vc4}/vc4_tiling.c (100%)
rename tests/{ => vc4}/vc4_wait_bo.c (100%)
rename tests/{ => vc4}/vc4_wait_seqno.c (100%)
diff --git a/meson.build b/meson.build
index 709c7a6c..f5e30827 100644
--- a/meson.build
+++ b/meson.build
@@ -261,6 +261,7 @@ libdir = get_option('libdir')
libexecdir = join_paths(get_option('libexecdir'), 'igt-gpu-tools')
amdgpudir = join_paths(libexecdir, 'amdgpu')
v3ddir = join_paths(libexecdir, 'v3d')
+vc4dir = join_paths(libexecdir, 'vc4')
mandir = get_option('mandir')
pkgconfigdir = join_paths(libdir, 'pkgconfig')
python3 = find_program('python3', required : true)
@@ -302,11 +303,18 @@ if get_option('use_rpath')
v3d_rpathdir = join_paths(v3d_rpathdir, '..')
endforeach
v3d_rpathdir = join_paths(v3d_rpathdir, libdir)
+
+ vc4_rpathdir = '$ORIGIN'
+ foreach p : vc4dir.split('/')
+ vc4_rpathdir = join_paths(vc4_rpathdir, '..')
+ endforeach
+ vc4_rpathdir = join_paths(vc4_rpathdir, libdir)
else
bindir_rpathdir = ''
libexecdir_rpathdir = ''
amdgpudir_rpathdir = ''
v3d_rpathdir = ''
+ vc4_rpathdir = ''
endif
subdir('lib')
diff --git a/tests/meson.build b/tests/meson.build
index a593055c..25c88f52 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -80,14 +80,6 @@ test_progs = [
'syncobj_timeline',
'template',
'tools_test',
- 'vc4_create_bo',
- 'vc4_dmabuf_poll',
- 'vc4_label_bo',
- 'vc4_lookup_fail',
- 'vc4_purgeable_bo',
- 'vc4_tiling',
- 'vc4_wait_bo',
- 'vc4_wait_seqno',
'vgem_basic',
'vgem_slow',
]
@@ -454,6 +446,8 @@ subdir('amdgpu')
subdir('v3d')
+subdir('vc4')
+
gen_testlist = find_program('generate_testlist.sh')
test_list_target = custom_target('testlist',
output : 'test-list.txt',
diff --git a/tests/vc4/meson.build b/tests/vc4/meson.build
new file mode 100644
index 00000000..bdb2a6b0
--- /dev/null
+++ b/tests/vc4/meson.build
@@ -0,0 +1,19 @@
+vc4_progs = [
+ 'vc4_create_bo',
+ 'vc4_dmabuf_poll',
+ 'vc4_label_bo',
+ 'vc4_lookup_fail',
+ 'vc4_purgeable_bo',
+ 'vc4_tiling',
+ 'vc4_wait_bo',
+ 'vc4_wait_seqno',
+]
+
+foreach prog : vc4_progs
+ test_executables += executable(prog, prog + '.c',
+ dependencies : test_deps,
+ install_dir : vc4dir,
+ install_rpath : vc4_rpathdir,
+ install : true)
+ test_list += join_paths('vc4', prog)
+endforeach
diff --git a/tests/vc4_create_bo.c b/tests/vc4/vc4_create_bo.c
similarity index 100%
rename from tests/vc4_create_bo.c
rename to tests/vc4/vc4_create_bo.c
diff --git a/tests/vc4_dmabuf_poll.c b/tests/vc4/vc4_dmabuf_poll.c
similarity index 100%
rename from tests/vc4_dmabuf_poll.c
rename to tests/vc4/vc4_dmabuf_poll.c
diff --git a/tests/vc4_label_bo.c b/tests/vc4/vc4_label_bo.c
similarity index 100%
rename from tests/vc4_label_bo.c
rename to tests/vc4/vc4_label_bo.c
diff --git a/tests/vc4_lookup_fail.c b/tests/vc4/vc4_lookup_fail.c
similarity index 100%
rename from tests/vc4_lookup_fail.c
rename to tests/vc4/vc4_lookup_fail.c
diff --git a/tests/vc4_purgeable_bo.c b/tests/vc4/vc4_purgeable_bo.c
similarity index 100%
rename from tests/vc4_purgeable_bo.c
rename to tests/vc4/vc4_purgeable_bo.c
diff --git a/tests/vc4_tiling.c b/tests/vc4/vc4_tiling.c
similarity index 100%
rename from tests/vc4_tiling.c
rename to tests/vc4/vc4_tiling.c
diff --git a/tests/vc4_wait_bo.c b/tests/vc4/vc4_wait_bo.c
similarity index 100%
rename from tests/vc4_wait_bo.c
rename to tests/vc4/vc4_wait_bo.c
diff --git a/tests/vc4_wait_seqno.c b/tests/vc4/vc4_wait_seqno.c
similarity index 100%
rename from tests/vc4_wait_seqno.c
rename to tests/vc4/vc4_wait_seqno.c
diff --git a/tests/vc4_ci/vc4.testlist b/tests/vc4_ci/vc4.testlist
index e86d4c81..ec09dda9 100644
--- a/tests/vc4_ci/vc4.testlist
+++ b/tests/vc4_ci/vc4.testlist
@@ -1,35 +1,35 @@
-igt@vc4_create_bo@create-bo-0
-igt@vc4_create_bo@create-bo-4096
-igt@vc4_create_bo@create-bo-zeroed
-igt@vc4_dmabuf_poll@poll-read-waits-until-write-done
-igt@vc4_dmabuf_poll@poll-write-waits-until-write-done
-igt@vc4_label_bo@set-label
-igt@vc4_label_bo@set-bad-handle
-igt@vc4_label_bo@set-bad-name
-igt@vc4_label_bo@set-kernel-name
-igt@vc4_lookup_fail@bad-color-write
-igt@vc4_purgeable_bo@mark-willneed
-igt@vc4_purgeable_bo@mark-purgeable
-igt@vc4_purgeable_bo@mark-purgeable-twice
-igt@vc4_purgeable_bo@access-purgeable-bo-mem
-igt@vc4_purgeable_bo@access-purged-bo-mem
-igt@vc4_purgeable_bo@mark-unpurgeable-check-retained
-igt@vc4_purgeable_bo@mark-unpurgeable-purged
-igt@vc4_purgeable_bo@free-purged-bo
-igt@vc4_tiling@get-bad-handle
-igt@vc4_tiling@set-bad-handle
-igt@vc4_tiling@get-bad-flags
-igt@vc4_tiling@set-bad-flags
-igt@vc4_tiling@get-bad-modifier
-igt@vc4_tiling@set-bad-modifier
-igt@vc4_tiling@set-get
-igt@vc4_tiling@get-after-free
-igt@vc4_wait_bo@bad-bo
-igt@vc4_wait_bo@bad-pad
-igt@vc4_wait_bo@unused-bo-0ns
-igt@vc4_wait_bo@unused-bo-1ns
-igt@vc4_wait_bo@used-bo
-igt@vc4_wait_bo@used-bo-0ns
-igt@vc4_wait_bo@used-bo-1ns
-igt@vc4_wait_seqno@bad-seqno-0ns
-igt@vc4_wait_seqno@bad-seqno-1ns
+igt@vc4/vc4_create_bo@create-bo-0
+igt@vc4/vc4_create_bo@create-bo-4096
+igt@vc4/vc4_create_bo@create-bo-zeroed
+igt@vc4/vc4_dmabuf_poll@poll-read-waits-until-write-done
+igt@vc4/vc4_dmabuf_poll@poll-write-waits-until-write-done
+igt@vc4/vc4_label_bo@set-label
+igt@vc4/vc4_label_bo@set-bad-handle
+igt@vc4/vc4_label_bo@set-bad-name
+igt@vc4/vc4_label_bo@set-kernel-name
+igt@vc4/vc4_lookup_fail@bad-color-write
+igt@vc4/vc4_purgeable_bo@mark-willneed
+igt@vc4/vc4_purgeable_bo@mark-purgeable
+igt@vc4/vc4_purgeable_bo@mark-purgeable-twice
+igt@vc4/vc4_purgeable_bo@access-purgeable-bo-mem
+igt@vc4/vc4_purgeable_bo@access-purged-bo-mem
+igt@vc4/vc4_purgeable_bo@mark-unpurgeable-check-retained
+igt@vc4/vc4_purgeable_bo@mark-unpurgeable-purged
+igt@vc4/vc4_purgeable_bo@free-purged-bo
+igt@vc4/vc4_tiling@get-bad-handle
+igt@vc4/vc4_tiling@set-bad-handle
+igt@vc4/vc4_tiling@get-bad-flags
+igt@vc4/vc4_tiling@set-bad-flags
+igt@vc4/vc4_tiling@get-bad-modifier
+igt@vc4/vc4_tiling@set-bad-modifier
+igt@vc4/vc4_tiling@set-get
+igt@vc4/vc4_tiling@get-after-free
+igt@vc4/vc4_wait_bo@bad-bo
+igt@vc4/vc4_wait_bo@bad-pad
+igt@vc4/vc4_wait_bo@unused-bo-0ns
+igt@vc4/vc4_wait_bo@unused-bo-1ns
+igt@vc4/vc4_wait_bo@used-bo
+igt@vc4/vc4_wait_bo@used-bo-0ns
+igt@vc4/vc4_wait_bo@used-bo-1ns
+igt@vc4/vc4_wait_seqno@bad-seqno-0ns
+igt@vc4/vc4_wait_seqno@bad-seqno-1ns
--
2.38.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t v3 2/5] tests/vc4: Remove unused or redundant includes
2022-12-16 16:28 [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Maíra Canal
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 1/5] tests/vc4: Move VC4 tests to their own folder Maíra Canal
@ 2022-12-16 16:28 ` Maíra Canal
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 3/5] lib/igt_vc4: Add PAGE_SIZE macro to VC4 Maíra Canal
` (5 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Maíra Canal @ 2022-12-16 16:28 UTC (permalink / raw)
To: igt-dev; +Cc: petri.latvala, Emma Anholt, Maxime Ripard
The VC4 test files contain some includes that aren't required for
compilation: some includes are simply not used and others are included
through other headers. Simplify the code by removing unused includes.
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Maíra Canal <mcanal@igalia.com>
---
lib/igt_vc4.c | 14 --------------
lib/igt_vc4.h | 2 ++
tests/vc4/vc4_create_bo.c | 10 ----------
tests/vc4/vc4_dmabuf_poll.c | 10 ----------
tests/vc4/vc4_label_bo.c | 11 -----------
tests/vc4/vc4_lookup_fail.c | 10 ----------
tests/vc4/vc4_purgeable_bo.c | 10 ----------
tests/vc4/vc4_tiling.c | 11 -----------
tests/vc4/vc4_wait_bo.c | 9 ---------
tests/vc4/vc4_wait_seqno.c | 11 +----------
10 files changed, 3 insertions(+), 95 deletions(-)
diff --git a/lib/igt_vc4.c b/lib/igt_vc4.c
index 4415fa32..54718cee 100644
--- a/lib/igt_vc4.c
+++ b/lib/igt_vc4.c
@@ -21,25 +21,11 @@
* IN THE SOFTWARE.
*/
-#include <assert.h>
-#include <string.h>
-#include <signal.h>
-#include <errno.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <fcntl.h>
-
#include "drmtest.h"
#include "igt_aux.h"
-#include "igt_core.h"
#include "igt_fb.h"
#include "igt_vc4.h"
#include "ioctl_wrappers.h"
-#include "intel_reg.h"
-#include "intel_chipset.h"
-#include "vc4_drm.h"
#include "vc4_packet.h"
#if NEW_CONTEXT_PARAM_NO_ERROR_CAPTURE_API
diff --git a/lib/igt_vc4.h b/lib/igt_vc4.h
index f32bf398..a088d0a3 100644
--- a/lib/igt_vc4.h
+++ b/lib/igt_vc4.h
@@ -24,6 +24,8 @@
#ifndef IGT_VC4_H
#define IGT_VC4_H
+#include "vc4_drm.h"
+
uint32_t igt_vc4_get_cleared_bo(int fd, size_t size, uint32_t clearval);
int igt_vc4_create_bo(int fd, size_t size);
void *igt_vc4_mmap_bo(int fd, uint32_t handle, uint32_t size, unsigned prot);
diff --git a/tests/vc4/vc4_create_bo.c b/tests/vc4/vc4_create_bo.c
index 99d180a8..46d1c954 100644
--- a/tests/vc4/vc4_create_bo.c
+++ b/tests/vc4/vc4_create_bo.c
@@ -23,16 +23,6 @@
#include "igt.h"
#include "igt_vc4.h"
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include "vc4_drm.h"
igt_main
{
diff --git a/tests/vc4/vc4_dmabuf_poll.c b/tests/vc4/vc4_dmabuf_poll.c
index 260e30c3..da99964b 100644
--- a/tests/vc4/vc4_dmabuf_poll.c
+++ b/tests/vc4/vc4_dmabuf_poll.c
@@ -23,17 +23,7 @@
#include "igt.h"
#include "igt_vc4.h"
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
#include <poll.h>
-#include "vc4_drm.h"
static void
poll_write_bo_test(int fd, int poll_flag)
diff --git a/tests/vc4/vc4_label_bo.c b/tests/vc4/vc4_label_bo.c
index 7510f87d..6fc53ce8 100644
--- a/tests/vc4/vc4_label_bo.c
+++ b/tests/vc4/vc4_label_bo.c
@@ -23,17 +23,6 @@
#include "igt.h"
#include "igt_vc4.h"
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <poll.h>
-#include "vc4_drm.h"
static void
set_label(int fd, int handle, const char *name, int err)
diff --git a/tests/vc4/vc4_lookup_fail.c b/tests/vc4/vc4_lookup_fail.c
index f0234ee5..e5a03540 100644
--- a/tests/vc4/vc4_lookup_fail.c
+++ b/tests/vc4/vc4_lookup_fail.c
@@ -22,16 +22,6 @@
*/
#include "igt.h"
-#include <assert.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
#include "vc4_drm.h"
#include "vc4_packet.h"
diff --git a/tests/vc4/vc4_purgeable_bo.c b/tests/vc4/vc4_purgeable_bo.c
index d9f7547f..676bc1f3 100644
--- a/tests/vc4/vc4_purgeable_bo.c
+++ b/tests/vc4/vc4_purgeable_bo.c
@@ -23,17 +23,7 @@
#include "igt.h"
#include "igt_vc4.h"
-#include <unistd.h>
#include <signal.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include "vc4_drm.h"
struct igt_vc4_bo {
struct igt_list_head node;
diff --git a/tests/vc4/vc4_tiling.c b/tests/vc4/vc4_tiling.c
index b96fe4ad..0d37c8b1 100644
--- a/tests/vc4/vc4_tiling.c
+++ b/tests/vc4/vc4_tiling.c
@@ -23,17 +23,6 @@
#include "igt.h"
#include "igt_vc4.h"
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <poll.h>
-#include "vc4_drm.h"
igt_main
{
diff --git a/tests/vc4/vc4_wait_bo.c b/tests/vc4/vc4_wait_bo.c
index 65a085a3..8c7437f8 100644
--- a/tests/vc4/vc4_wait_bo.c
+++ b/tests/vc4/vc4_wait_bo.c
@@ -23,16 +23,7 @@
#include "igt.h"
#include "igt_vc4.h"
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <errno.h>
-#include <sys/stat.h>
#include <sys/ioctl.h>
-#include "vc4_drm.h"
static void
test_used_bo(int fd, uint64_t timeout)
diff --git a/tests/vc4/vc4_wait_seqno.c b/tests/vc4/vc4_wait_seqno.c
index bcc263cb..61485bbf 100644
--- a/tests/vc4/vc4_wait_seqno.c
+++ b/tests/vc4/vc4_wait_seqno.c
@@ -22,16 +22,7 @@
*/
#include "igt.h"
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include "vc4_drm.h"
+#include "igt_vc4.h"
igt_main
{
--
2.38.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t v3 3/5] lib/igt_vc4: Add PAGE_SIZE macro to VC4
2022-12-16 16:28 [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Maíra Canal
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 1/5] tests/vc4: Move VC4 tests to their own folder Maíra Canal
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 2/5] tests/vc4: Remove unused or redundant includes Maíra Canal
@ 2022-12-16 16:28 ` Maíra Canal
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 4/5] tests/vc4: Skip VC4 tests if they are running on BCM2711/RaspberryPi4 Maíra Canal
` (4 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Maíra Canal @ 2022-12-16 16:28 UTC (permalink / raw)
To: igt-dev; +Cc: petri.latvala, Emma Anholt, Maxime Ripard
Some VC4 tests use the page memory size, so create a macro to define the
page size as 4096 and replace this value for the macro in the VC4 tests.
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Maíra Canal <mcanal@igalia.com>
---
lib/igt_vc4.h | 2 ++
tests/vc4/vc4_create_bo.c | 4 ++--
tests/vc4/vc4_label_bo.c | 6 +++---
tests/vc4/vc4_lookup_fail.c | 4 ++--
tests/vc4/vc4_tiling.c | 12 ++++++------
tests/vc4/vc4_wait_bo.c | 4 ++--
6 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/lib/igt_vc4.h b/lib/igt_vc4.h
index a088d0a3..ddce90da 100644
--- a/lib/igt_vc4.h
+++ b/lib/igt_vc4.h
@@ -26,6 +26,8 @@
#include "vc4_drm.h"
+#define PAGE_SIZE 4096
+
uint32_t igt_vc4_get_cleared_bo(int fd, size_t size, uint32_t clearval);
int igt_vc4_create_bo(int fd, size_t size);
void *igt_vc4_mmap_bo(int fd, uint32_t handle, uint32_t size, unsigned prot);
diff --git a/tests/vc4/vc4_create_bo.c b/tests/vc4/vc4_create_bo.c
index 46d1c954..c4909b49 100644
--- a/tests/vc4/vc4_create_bo.c
+++ b/tests/vc4/vc4_create_bo.c
@@ -33,7 +33,7 @@ igt_main
}
igt_subtest("create-bo-4096") {
- int handle = igt_vc4_create_bo(fd, 4096);
+ int handle = igt_vc4_create_bo(fd, PAGE_SIZE);
gem_close(fd, handle);
}
@@ -52,7 +52,7 @@ igt_main
* to convince it to land as the only one of its size in the
* kernel BO cache
*/
- size_t size = 3 * 4096, i;
+ size_t size = 3 * PAGE_SIZE, i;
/* Make a BO and free it on our main fd. */
handle = igt_vc4_create_bo(fd, size);
diff --git a/tests/vc4/vc4_label_bo.c b/tests/vc4/vc4_label_bo.c
index 6fc53ce8..dd8b5f9a 100644
--- a/tests/vc4/vc4_label_bo.c
+++ b/tests/vc4/vc4_label_bo.c
@@ -47,7 +47,7 @@ igt_main
fd = drm_open_driver(DRIVER_VC4);
igt_subtest("set-label") {
- int handle = igt_vc4_create_bo(fd, 4096);
+ int handle = igt_vc4_create_bo(fd, PAGE_SIZE);
set_label(fd, handle, "a test label", 0);
set_label(fd, handle, "a new test label", 0);
gem_close(fd, handle);
@@ -58,7 +58,7 @@ igt_main
}
igt_subtest("set-bad-name") {
- int handle = igt_vc4_create_bo(fd, 4096);
+ int handle = igt_vc4_create_bo(fd, PAGE_SIZE);
struct drm_vc4_label_bo label = {
.handle = handle,
@@ -72,7 +72,7 @@ igt_main
}
igt_subtest("set-kernel-name") {
- int handle = igt_vc4_create_bo(fd, 4096);
+ int handle = igt_vc4_create_bo(fd, PAGE_SIZE);
set_label(fd, handle, "BCL", 0);
set_label(fd, handle, "a test label", 0);
set_label(fd, handle, "BCL", 0);
diff --git a/tests/vc4/vc4_lookup_fail.c b/tests/vc4/vc4_lookup_fail.c
index e5a03540..5e709a7d 100644
--- a/tests/vc4/vc4_lookup_fail.c
+++ b/tests/vc4/vc4_lookup_fail.c
@@ -22,7 +22,7 @@
*/
#include "igt.h"
-#include "vc4_drm.h"
+#include "igt_vc4.h"
#include "vc4_packet.h"
igt_main
@@ -33,7 +33,7 @@ igt_main
fd = drm_open_driver(DRIVER_VC4);
igt_subtest("bad-color-write") {
- uint32_t size = 4096;
+ uint32_t size = PAGE_SIZE;
/* A single row will be a page. */
uint32_t width = 1024;
uint32_t height = size / (width * 4);
diff --git a/tests/vc4/vc4_tiling.c b/tests/vc4/vc4_tiling.c
index 0d37c8b1..372b1fed 100644
--- a/tests/vc4/vc4_tiling.c
+++ b/tests/vc4/vc4_tiling.c
@@ -47,7 +47,7 @@ igt_main
}
igt_subtest("get-bad-flags") {
- int bo = igt_vc4_create_bo(fd, 4096);
+ int bo = igt_vc4_create_bo(fd, PAGE_SIZE);
struct drm_vc4_get_tiling get = {
.handle = bo,
.flags = 0xd0d0d0d0,
@@ -57,7 +57,7 @@ igt_main
}
igt_subtest("set-bad-flags") {
- int bo = igt_vc4_create_bo(fd, 4096);
+ int bo = igt_vc4_create_bo(fd, PAGE_SIZE);
struct drm_vc4_set_tiling set = {
.handle = bo,
.flags = 0xd0d0d0d0,
@@ -68,7 +68,7 @@ igt_main
}
igt_subtest("get-bad-modifier") {
- int bo = igt_vc4_create_bo(fd, 4096);
+ int bo = igt_vc4_create_bo(fd, PAGE_SIZE);
struct drm_vc4_get_tiling get = {
.handle = bo,
.modifier = 0xd0d0d0d0,
@@ -78,7 +78,7 @@ igt_main
}
igt_subtest("set-bad-modifier") {
- int bo = igt_vc4_create_bo(fd, 4096);
+ int bo = igt_vc4_create_bo(fd, PAGE_SIZE);
struct drm_vc4_set_tiling set = {
.handle = bo,
.modifier = 0xd0d0d0d0,
@@ -88,7 +88,7 @@ igt_main
}
igt_subtest("set-get") {
- int bo = igt_vc4_create_bo(fd, 4096);
+ int bo = igt_vc4_create_bo(fd, PAGE_SIZE);
/* Default is untiled. */
igt_assert(igt_vc4_get_tiling(fd, bo) == DRM_FORMAT_MOD_LINEAR);
@@ -109,7 +109,7 @@ igt_main
/* Some size that probably nobody else is using, to
* encourage getting the same BO back from the cache.
*/
- int size = 91 * 4096;
+ int size = 91 * PAGE_SIZE;
int bo;
bo = igt_vc4_create_bo(fd, size);
diff --git a/tests/vc4/vc4_wait_bo.c b/tests/vc4/vc4_wait_bo.c
index 8c7437f8..386642b9 100644
--- a/tests/vc4/vc4_wait_bo.c
+++ b/tests/vc4/vc4_wait_bo.c
@@ -28,7 +28,7 @@
static void
test_used_bo(int fd, uint64_t timeout)
{
- size_t size = 4096;
+ size_t size = PAGE_SIZE;
uint32_t clearval = 0xaabbccdd + timeout;
int handle = igt_vc4_get_cleared_bo(fd, size, clearval);
struct drm_vc4_wait_bo wait = {
@@ -64,7 +64,7 @@ igt_main
igt_fixture {
fd = drm_open_driver(DRIVER_VC4);
- bo_handle = igt_vc4_create_bo(fd, 4096);
+ bo_handle = igt_vc4_create_bo(fd, PAGE_SIZE);
}
igt_subtest("bad-bo") {
--
2.38.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t v3 4/5] tests/vc4: Skip VC4 tests if they are running on BCM2711/RaspberryPi4
2022-12-16 16:28 [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Maíra Canal
` (2 preceding siblings ...)
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 3/5] lib/igt_vc4: Add PAGE_SIZE macro to VC4 Maíra Canal
@ 2022-12-16 16:28 ` Maíra Canal
2022-12-19 9:21 ` Petri Latvala
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 5/5] tests/vc4_perfmon: Create test for VC4's Perfmon IOCTLs Maíra Canal
` (3 subsequent siblings)
7 siblings, 1 reply; 10+ messages in thread
From: Maíra Canal @ 2022-12-16 16:28 UTC (permalink / raw)
To: igt-dev; +Cc: petri.latvala, Emma Anholt, Maxime Ripard
Currently, if the VC4 tests are run on BCM2711/Raspberry Pi 4, they will
fail with no warning. So, add igt_require to the VC4 tests to check if
VC4 has rendering capabilities before running the tests.
In order to check if VC4 is running on BCM2711/Raspberry Pi 4, create a
function that checks if the vc4 driver has syncobj capabilities. If not so,
it means that the tests are being run on BCM2711/Raspberry Pi 4, as vc5
doesn't have syncobj capabilities.
Signed-off-by: Maíra Canal <mcanal@igalia.com>
---
lib/igt_vc4.c | 12 ++++++++++++
lib/igt_vc4.h | 1 +
tests/vc4/vc4_create_bo.c | 1 +
tests/vc4/vc4_dmabuf_poll.c | 4 +++-
tests/vc4/vc4_label_bo.c | 4 +++-
tests/vc4/vc4_tiling.c | 4 +++-
tests/vc4/vc4_wait_bo.c | 1 +
tests/vc4/vc4_wait_seqno.c | 4 +++-
8 files changed, 27 insertions(+), 4 deletions(-)
diff --git a/lib/igt_vc4.c b/lib/igt_vc4.c
index 54718cee..2c86bd93 100644
--- a/lib/igt_vc4.c
+++ b/lib/igt_vc4.c
@@ -59,6 +59,18 @@ bool igt_vc4_is_tiled(uint64_t modifier)
}
}
+bool igt_vc4_is_v3d(int fd)
+{
+ uint64_t value;
+
+ /*
+ * vc5 doesn't have syncobj capabilities, only vc4.
+ */
+ if (drmGetCap(fd, DRM_CAP_SYNCOBJ, &value))
+ return false;
+ return value;
+}
+
/**
* igt_vc4_get_cleared_bo:
* @fd: device file descriptor
diff --git a/lib/igt_vc4.h b/lib/igt_vc4.h
index ddce90da..79a6ab7d 100644
--- a/lib/igt_vc4.h
+++ b/lib/igt_vc4.h
@@ -34,6 +34,7 @@ void *igt_vc4_mmap_bo(int fd, uint32_t handle, uint32_t size, unsigned prot);
int igt_vc4_get_param(int fd, uint32_t param, uint64_t *val);
bool igt_vc4_purgeable_bo(int fd, int handle, bool purgeable);
bool igt_vc4_is_tiled(uint64_t modifier);
+bool igt_vc4_is_v3d(int fd);
void igt_vc4_set_tiling(int fd, uint32_t handle, uint64_t modifier);
uint64_t igt_vc4_get_tiling(int fd, uint32_t handle);
diff --git a/tests/vc4/vc4_create_bo.c b/tests/vc4/vc4_create_bo.c
index c4909b49..c17f25b0 100644
--- a/tests/vc4/vc4_create_bo.c
+++ b/tests/vc4/vc4_create_bo.c
@@ -30,6 +30,7 @@ igt_main
igt_fixture {
fd = drm_open_driver(DRIVER_VC4);
+ igt_require(igt_vc4_is_v3d(fd));
}
igt_subtest("create-bo-4096") {
diff --git a/tests/vc4/vc4_dmabuf_poll.c b/tests/vc4/vc4_dmabuf_poll.c
index da99964b..c76d4950 100644
--- a/tests/vc4/vc4_dmabuf_poll.c
+++ b/tests/vc4/vc4_dmabuf_poll.c
@@ -59,8 +59,10 @@ igt_main
{
int fd;
- igt_fixture
+ igt_fixture {
fd = drm_open_driver(DRIVER_VC4);
+ igt_require(igt_vc4_is_v3d(fd));
+ }
igt_subtest("poll-write-waits-until-write-done") {
poll_write_bo_test(fd, POLLOUT);
diff --git a/tests/vc4/vc4_label_bo.c b/tests/vc4/vc4_label_bo.c
index dd8b5f9a..252bd1ed 100644
--- a/tests/vc4/vc4_label_bo.c
+++ b/tests/vc4/vc4_label_bo.c
@@ -43,8 +43,10 @@ igt_main
{
int fd;
- igt_fixture
+ igt_fixture {
fd = drm_open_driver(DRIVER_VC4);
+ igt_require(igt_vc4_is_v3d(fd));
+ }
igt_subtest("set-label") {
int handle = igt_vc4_create_bo(fd, PAGE_SIZE);
diff --git a/tests/vc4/vc4_tiling.c b/tests/vc4/vc4_tiling.c
index 372b1fed..f5bf31f5 100644
--- a/tests/vc4/vc4_tiling.c
+++ b/tests/vc4/vc4_tiling.c
@@ -28,8 +28,10 @@ igt_main
{
int fd;
- igt_fixture
+ igt_fixture {
fd = drm_open_driver(DRIVER_VC4);
+ igt_require(igt_vc4_is_v3d(fd));
+ }
igt_subtest("get-bad-handle") {
struct drm_vc4_get_tiling get = {
diff --git a/tests/vc4/vc4_wait_bo.c b/tests/vc4/vc4_wait_bo.c
index 386642b9..c88a4ac4 100644
--- a/tests/vc4/vc4_wait_bo.c
+++ b/tests/vc4/vc4_wait_bo.c
@@ -64,6 +64,7 @@ igt_main
igt_fixture {
fd = drm_open_driver(DRIVER_VC4);
+ igt_require(igt_vc4_is_v3d(fd));
bo_handle = igt_vc4_create_bo(fd, PAGE_SIZE);
}
diff --git a/tests/vc4/vc4_wait_seqno.c b/tests/vc4/vc4_wait_seqno.c
index 61485bbf..78984fa3 100644
--- a/tests/vc4/vc4_wait_seqno.c
+++ b/tests/vc4/vc4_wait_seqno.c
@@ -28,8 +28,10 @@ igt_main
{
int fd;
- igt_fixture
+ igt_fixture {
fd = drm_open_driver(DRIVER_VC4);
+ igt_require(igt_vc4_is_v3d(fd));
+ }
/* A 64-bit seqno should never hit the maximum value over the
* lifetime of the system. (A submit per 1000 cycles at 1Ghz
--
2.38.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t v3 5/5] tests/vc4_perfmon: Create test for VC4's Perfmon IOCTLs
2022-12-16 16:28 [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Maíra Canal
` (3 preceding siblings ...)
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 4/5] tests/vc4: Skip VC4 tests if they are running on BCM2711/RaspberryPi4 Maíra Canal
@ 2022-12-16 16:28 ` Maíra Canal
2022-12-18 21:39 ` [igt-dev] ✓ Fi.CI.BAT: success for VC4 IGT Tests Updates (rev3) Patchwork
` (2 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: Maíra Canal @ 2022-12-16 16:28 UTC (permalink / raw)
To: igt-dev; +Cc: petri.latvala, Emma Anholt, Maxime Ripard
Add igt_subtests for the VC4's Perfmon IOCTLs:
DRM_IOCTL_VC4_PERFMON_CREATE, DRM_IOCTL_VC4_PERFMON_DESTROY and
DRM_IOCTL_VC4_PERFMON_GET_VALUES. The tests aim to make sure that the
performance monitors are being properly created and destroyed and to
ensure that improper parameters return an errno.
Acked-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Maíra Canal <mcanal@igalia.com>
---
lib/igt_vc4.c | 34 ++++++++++
lib/igt_vc4.h | 4 ++
tests/vc4/meson.build | 1 +
tests/vc4/vc4_perfmon.c | 138 ++++++++++++++++++++++++++++++++++++++
tests/vc4_ci/vc4.testlist | 10 +++
5 files changed, 187 insertions(+)
create mode 100644 tests/vc4/vc4_perfmon.c
diff --git a/lib/igt_vc4.c b/lib/igt_vc4.c
index 2c86bd93..91f7f4b5 100644
--- a/lib/igt_vc4.c
+++ b/lib/igt_vc4.c
@@ -193,6 +193,40 @@ bool igt_vc4_purgeable_bo(int fd, int handle, bool purgeable)
return arg.retained;
}
+uint32_t igt_vc4_perfmon_create(int fd, uint32_t ncounters, uint8_t *events)
+{
+ struct drm_vc4_perfmon_create create = {
+ .ncounters = ncounters,
+ };
+
+ memcpy(create.events, events, ncounters * sizeof(*events));
+
+ do_ioctl(fd, DRM_IOCTL_VC4_PERFMON_CREATE, &create);
+ igt_assert_neq(create.id, 0);
+
+ return create.id;
+}
+
+void igt_vc4_perfmon_get_values(int fd, uint32_t id)
+{
+ uint64_t *values = calloc(DRM_VC4_MAX_PERF_COUNTERS, sizeof(*values));
+ struct drm_vc4_perfmon_get_values get = {
+ .id = id,
+ .values_ptr = to_user_pointer(values),
+ };
+
+ do_ioctl(fd, DRM_IOCTL_VC4_PERFMON_GET_VALUES, &get);
+ free(values);
+}
+
+void igt_vc4_perfmon_destroy(int fd, uint32_t id)
+{
+ struct drm_vc4_perfmon_destroy destroy = {
+ .id = id,
+ };
+
+ do_ioctl(fd, DRM_IOCTL_VC4_PERFMON_DESTROY, &destroy);
+}
/* Calculate the t-tile width so that size = width * height * bpp / 8. */
#define VC4_T_TILE_W(size, height, bpp) ((size) / (height) / ((bpp) / 8))
diff --git a/lib/igt_vc4.h b/lib/igt_vc4.h
index 79a6ab7d..384d7d6e 100644
--- a/lib/igt_vc4.h
+++ b/lib/igt_vc4.h
@@ -36,6 +36,10 @@ bool igt_vc4_purgeable_bo(int fd, int handle, bool purgeable);
bool igt_vc4_is_tiled(uint64_t modifier);
bool igt_vc4_is_v3d(int fd);
+uint32_t igt_vc4_perfmon_create(int fd, uint32_t ncounters, uint8_t *events);
+void igt_vc4_perfmon_get_values(int fd, uint32_t id);
+void igt_vc4_perfmon_destroy(int fd, uint32_t id);
+
void igt_vc4_set_tiling(int fd, uint32_t handle, uint64_t modifier);
uint64_t igt_vc4_get_tiling(int fd, uint32_t handle);
diff --git a/tests/vc4/meson.build b/tests/vc4/meson.build
index bdb2a6b0..76e6f16c 100644
--- a/tests/vc4/meson.build
+++ b/tests/vc4/meson.build
@@ -3,6 +3,7 @@ vc4_progs = [
'vc4_dmabuf_poll',
'vc4_label_bo',
'vc4_lookup_fail',
+ 'vc4_perfmon',
'vc4_purgeable_bo',
'vc4_tiling',
'vc4_wait_bo',
diff --git a/tests/vc4/vc4_perfmon.c b/tests/vc4/vc4_perfmon.c
new file mode 100644
index 00000000..30186519
--- /dev/null
+++ b/tests/vc4/vc4_perfmon.c
@@ -0,0 +1,138 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2022 Igalia S.L.
+ */
+
+#include "igt.h"
+#include "igt_vc4.h"
+
+IGT_TEST_DESCRIPTION("Tests for the VC4's performance monitors");
+
+igt_main
+{
+ int fd;
+
+ igt_fixture {
+ fd = drm_open_driver(DRIVER_VC4);
+ igt_require(igt_vc4_is_v3d(fd));
+ }
+
+ igt_describe("Make sure a perfmon cannot be created with zero counters.");
+ igt_subtest("create-perfmon-0") {
+ struct drm_vc4_perfmon_create create = {
+ .ncounters = 0,
+ };
+ do_ioctl_err(fd, DRM_IOCTL_VC4_PERFMON_CREATE, &create, EINVAL);
+ }
+
+ igt_describe("Make sure a perfmon cannot be created with more counters than the maximum allowed.");
+ igt_subtest("create-perfmon-exceed") {
+ struct drm_vc4_perfmon_create create = {
+ .ncounters = DRM_VC4_MAX_PERF_COUNTERS + 1,
+ };
+ do_ioctl_err(fd, DRM_IOCTL_VC4_PERFMON_CREATE, &create, EINVAL);
+ }
+
+ igt_describe("Make sure a perfmon cannot be created with invalid events identifiers.");
+ igt_subtest("create-perfmon-invalid-events") {
+ struct drm_vc4_perfmon_create create = {
+ .ncounters = 1,
+ .events = { VC4_PERFCNT_NUM_EVENTS },
+ };
+ do_ioctl_err(fd, DRM_IOCTL_VC4_PERFMON_CREATE, &create, EINVAL);
+ }
+
+ igt_describe("Make sure a perfmon with 1 counter can be created.");
+ igt_subtest("create-single-perfmon") {
+ uint8_t events[] = { VC4_PERFCNT_FEP_VALID_PRIMS_NO_RENDER };
+ uint32_t id = igt_vc4_perfmon_create(fd, 1, events);
+
+ igt_vc4_perfmon_destroy(fd, id);
+ }
+
+ igt_describe("Make sure that two perfmons can be created simultaneously.");
+ igt_subtest("create-two-perfmon") {
+ uint8_t events_perfmon1[] = { VC4_PERFCNT_FEP_VALID_QUADS };
+ uint8_t events_perfmon2[] = { VC4_PERFCNT_L2C_TOTAL_L2_CACHE_HIT, VC4_PERFCNT_QPU_TOTAL_UNIFORM_CACHE_MISS };
+
+ /* Create two different performance monitors */
+ uint32_t id1 = igt_vc4_perfmon_create(fd, 1, events_perfmon1);
+ uint32_t id2 = igt_vc4_perfmon_create(fd, 2, events_perfmon2);
+
+ /* Make sure that the id's of the performance monitors are different */
+ igt_assert_neq(id1, id2);
+
+ igt_vc4_perfmon_destroy(fd, id1);
+
+ /* Make sure that the second perfmon it is still acessible */
+ igt_vc4_perfmon_get_values(fd, id2);
+
+ igt_vc4_perfmon_destroy(fd, id2);
+ }
+
+ igt_describe("Make sure that getting the values from perfmon fails for invalid identifier.");
+ igt_subtest("get-values-invalid-perfmon") {
+ struct drm_vc4_perfmon_get_values get = {
+ .id = 1,
+ };
+ do_ioctl_err(fd, DRM_IOCTL_VC4_PERFMON_GET_VALUES, &get, EINVAL);
+ }
+
+ igt_describe("Make sure that getting the values from perfmon fails for invalid memory pointer.");
+ igt_subtest("get-values-invalid-pointer") {
+ uint8_t counters[] = { VC4_PERFCNT_TLB_QUADS_ZERO_COVERAGE,
+ VC4_PERFCNT_PLB_PRIMS_OUTSIDE_VIEWPORT,
+ VC4_PERFCNT_QPU_TOTAL_INST_CACHE_HIT };
+ uint32_t id = igt_vc4_perfmon_create(fd, 3, counters);
+
+ struct drm_vc4_perfmon_get_values get = {
+ .id = id,
+ .values_ptr = 0ULL
+ };
+
+ do_ioctl_err(fd, DRM_IOCTL_VC4_PERFMON_GET_VALUES, &get, EFAULT);
+
+ igt_vc4_perfmon_destroy(fd, id);
+ }
+
+ igt_describe("Sanity check for getting the values from a valid perfmon.");
+ igt_subtest("get-values-valid-perfmon") {
+ uint8_t events[] = { VC4_PERFCNT_VPM_TOTAL_CLK_CYCLES_VDW_STALLED,
+ VC4_PERFCNT_PSE_PRIMS_REVERSED,
+ VC4_PERFCNT_QPU_TOTAL_INST_CACHE_HIT };
+ uint32_t id = igt_vc4_perfmon_create(fd, 3, events);
+
+ igt_vc4_perfmon_get_values(fd, id);
+ igt_vc4_perfmon_destroy(fd, id);
+ }
+
+ igt_describe("Make sure that destroying a non-existent perfmon fails.");
+ igt_subtest("destroy-invalid-perfmon") {
+ struct drm_vc4_perfmon_destroy destroy = {
+ .id = 1,
+ };
+ do_ioctl_err(fd, DRM_IOCTL_VC4_PERFMON_DESTROY, &destroy, EINVAL);
+ }
+
+ igt_describe("Make sure that a perfmon is not accessible after being destroyed.");
+ igt_subtest("destroy-valid-perfmon") {
+ uint8_t events[] = { VC4_PERFCNT_QPU_TOTAL_CLK_CYCLES_EXEC_VALID_INST,
+ VC4_PERFCNT_FEP_VALID_QUADS,
+ VC4_PERFCNT_TMU_TOTAL_TEXT_CACHE_MISS,
+ VC4_PERFCNT_L2C_TOTAL_L2_CACHE_MISS };
+ uint32_t id = igt_vc4_perfmon_create(fd, 4, events);
+ struct drm_vc4_perfmon_get_values get = {
+ .id = id,
+ };
+
+ igt_vc4_perfmon_get_values(fd, id);
+
+ igt_vc4_perfmon_destroy(fd, id);
+
+ /* Make sure that the id is no longer allocate */
+ do_ioctl_err(fd, DRM_IOCTL_VC4_PERFMON_GET_VALUES, &get, EINVAL);
+ }
+
+ igt_fixture
+ close(fd);
+}
diff --git a/tests/vc4_ci/vc4.testlist b/tests/vc4_ci/vc4.testlist
index ec09dda9..1b41538e 100644
--- a/tests/vc4_ci/vc4.testlist
+++ b/tests/vc4_ci/vc4.testlist
@@ -8,6 +8,16 @@ igt@vc4/vc4_label_bo@set-bad-handle
igt@vc4/vc4_label_bo@set-bad-name
igt@vc4/vc4_label_bo@set-kernel-name
igt@vc4/vc4_lookup_fail@bad-color-write
+igt@vc4/vc4_perfmon@create-perfmon-0
+igt@vc4/vc4_perfmon@create-perfmon-exceed
+igt@vc4/vc4_perfmon@create-perfmon-invalid-events
+igt@vc4/vc4_perfmon@create-single-perfmon
+igt@vc4/vc4_perfmon@create-two-perfmon
+igt@vc4/vc4_perfmon@get-values-invalid-perfmon
+igt@vc4/vc4_perfmon@get-values-invalid-pointer
+igt@vc4/vc4_perfmon@get-values-valid-perfmon
+igt@vc4/vc4_perfmon@destroy-invalid-perfmon
+igt@vc4/vc4_perfmon@destroy-valid-perfmon
igt@vc4/vc4_purgeable_bo@mark-willneed
igt@vc4/vc4_purgeable_bo@mark-purgeable
igt@vc4/vc4_purgeable_bo@mark-purgeable-twice
--
2.38.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for VC4 IGT Tests Updates (rev3)
2022-12-16 16:28 [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Maíra Canal
` (4 preceding siblings ...)
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 5/5] tests/vc4_perfmon: Create test for VC4's Perfmon IOCTLs Maíra Canal
@ 2022-12-18 21:39 ` Patchwork
2022-12-18 23:11 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2022-12-19 9:30 ` [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Melissa Wen
7 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2022-12-18 21:39 UTC (permalink / raw)
To: Maíra Canal; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 6696 bytes --]
== Series Details ==
Series: VC4 IGT Tests Updates (rev3)
URL : https://patchwork.freedesktop.org/series/110948/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12512 -> IGTPW_8242
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/index.html
Participating hosts (42 -> 40)
------------------------------
Missing (2): fi-rkl-11600 fi-snb-2520m
Known issues
------------
Here are the changes found in IGTPW_8242 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@gt_heartbeat:
- fi-glk-j4005: [PASS][1] -> [DMESG-FAIL][2] ([i915#5334])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/fi-glk-j4005/igt@i915_selftest@live@gt_heartbeat.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/fi-glk-j4005/igt@i915_selftest@live@gt_heartbeat.html
* igt@kms_chamelium@common-hpd-after-suspend:
- fi-rkl-guc: NOTRUN -> [SKIP][3] ([fdo#111827])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/fi-rkl-guc/igt@kms_chamelium@common-hpd-after-suspend.html
#### Possible fixes ####
* igt@i915_selftest@live@reset:
- {bat-rpls-2}: [DMESG-FAIL][4] ([i915#4983]) -> [PASS][5]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/bat-rpls-2/igt@i915_selftest@live@reset.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/bat-rpls-2/igt@i915_selftest@live@reset.html
* igt@i915_selftest@live@slpc:
- {bat-rpls-1}: [DMESG-FAIL][6] ([i915#6367]) -> [PASS][7]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/bat-rpls-1/igt@i915_selftest@live@slpc.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/bat-rpls-1/igt@i915_selftest@live@slpc.html
* igt@i915_selftest@live@workarounds:
- fi-rkl-guc: [INCOMPLETE][8] ([i915#4983]) -> [PASS][9]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/fi-rkl-guc/igt@i915_selftest@live@workarounds.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/fi-rkl-guc/igt@i915_selftest@live@workarounds.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7096 -> IGTPW_8242
CI-20190529: 20190529
CI_DRM_12512: 32c0d1e3ac9cf7e7b64a53dcafeeb7173a2f511b @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8242: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/index.html
IGT_7096: f2f515390fb11554d22c7b78b94e288026545326 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@vc4/vc4_create_bo@create-bo-0
+igt@vc4/vc4_create_bo@create-bo-4096
+igt@vc4/vc4_create_bo@create-bo-zeroed
+igt@vc4/vc4_dmabuf_poll@poll-read-waits-until-write-done
+igt@vc4/vc4_dmabuf_poll@poll-write-waits-until-write-done
+igt@vc4/vc4_label_bo@set-bad-handle
+igt@vc4/vc4_label_bo@set-bad-name
+igt@vc4/vc4_label_bo@set-kernel-name
+igt@vc4/vc4_label_bo@set-label
+igt@vc4/vc4_lookup_fail@bad-color-write
+igt@vc4/vc4_perfmon@create-perfmon-0
+igt@vc4/vc4_perfmon@create-perfmon-exceed
+igt@vc4/vc4_perfmon@create-perfmon-invalid-events
+igt@vc4/vc4_perfmon@create-single-perfmon
+igt@vc4/vc4_perfmon@create-two-perfmon
+igt@vc4/vc4_perfmon@destroy-invalid-perfmon
+igt@vc4/vc4_perfmon@destroy-valid-perfmon
+igt@vc4/vc4_perfmon@get-values-invalid-perfmon
+igt@vc4/vc4_perfmon@get-values-invalid-pointer
+igt@vc4/vc4_perfmon@get-values-valid-perfmon
+igt@vc4/vc4_purgeable_bo@access-purgeable-bo-mem
+igt@vc4/vc4_purgeable_bo@access-purged-bo-mem
+igt@vc4/vc4_purgeable_bo@free-purged-bo
+igt@vc4/vc4_purgeable_bo@mark-purgeable
+igt@vc4/vc4_purgeable_bo@mark-purgeable-twice
+igt@vc4/vc4_purgeable_bo@mark-unpurgeable-check-retained
+igt@vc4/vc4_purgeable_bo@mark-unpurgeable-purged
+igt@vc4/vc4_purgeable_bo@mark-unpurgeable-twice
+igt@vc4/vc4_purgeable_bo@mark-willneed
+igt@vc4/vc4_tiling@get-after-free
+igt@vc4/vc4_tiling@get-bad-flags
+igt@vc4/vc4_tiling@get-bad-handle
+igt@vc4/vc4_tiling@get-bad-modifier
+igt@vc4/vc4_tiling@set-bad-flags
+igt@vc4/vc4_tiling@set-bad-handle
+igt@vc4/vc4_tiling@set-bad-modifier
+igt@vc4/vc4_tiling@set-get
+igt@vc4/vc4_wait_bo@bad-bo
+igt@vc4/vc4_wait_bo@bad-pad
+igt@vc4/vc4_wait_bo@unused-bo-0ns
+igt@vc4/vc4_wait_bo@unused-bo-1ns
+igt@vc4/vc4_wait_bo@used-bo
+igt@vc4/vc4_wait_bo@used-bo-0ns
+igt@vc4/vc4_wait_bo@used-bo-1ns
+igt@vc4/vc4_wait_seqno@bad-seqno-0ns
+igt@vc4/vc4_wait_seqno@bad-seqno-1ns
-igt@vc4_create_bo@create-bo-0
-igt@vc4_create_bo@create-bo-4096
-igt@vc4_create_bo@create-bo-zeroed
-igt@vc4_dmabuf_poll@poll-read-waits-until-write-done
-igt@vc4_dmabuf_poll@poll-write-waits-until-write-done
-igt@vc4_label_bo@set-bad-handle
-igt@vc4_label_bo@set-bad-name
-igt@vc4_label_bo@set-kernel-name
-igt@vc4_label_bo@set-label
-igt@vc4_lookup_fail@bad-color-write
-igt@vc4_purgeable_bo@access-purgeable-bo-mem
-igt@vc4_purgeable_bo@access-purged-bo-mem
-igt@vc4_purgeable_bo@free-purged-bo
-igt@vc4_purgeable_bo@mark-purgeable
-igt@vc4_purgeable_bo@mark-purgeable-twice
-igt@vc4_purgeable_bo@mark-unpurgeable-check-retained
-igt@vc4_purgeable_bo@mark-unpurgeable-purged
-igt@vc4_purgeable_bo@mark-unpurgeable-twice
-igt@vc4_purgeable_bo@mark-willneed
-igt@vc4_tiling@get-after-free
-igt@vc4_tiling@get-bad-flags
-igt@vc4_tiling@get-bad-handle
-igt@vc4_tiling@get-bad-modifier
-igt@vc4_tiling@set-bad-flags
-igt@vc4_tiling@set-bad-handle
-igt@vc4_tiling@set-bad-modifier
-igt@vc4_tiling@set-get
-igt@vc4_wait_bo@bad-bo
-igt@vc4_wait_bo@bad-pad
-igt@vc4_wait_bo@unused-bo-0ns
-igt@vc4_wait_bo@unused-bo-1ns
-igt@vc4_wait_bo@used-bo
-igt@vc4_wait_bo@used-bo-0ns
-igt@vc4_wait_bo@used-bo-1ns
-igt@vc4_wait_seqno@bad-seqno-0ns
-igt@vc4_wait_seqno@bad-seqno-1ns
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/index.html
[-- Attachment #2: Type: text/html, Size: 7563 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for VC4 IGT Tests Updates (rev3)
2022-12-16 16:28 [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Maíra Canal
` (5 preceding siblings ...)
2022-12-18 21:39 ` [igt-dev] ✓ Fi.CI.BAT: success for VC4 IGT Tests Updates (rev3) Patchwork
@ 2022-12-18 23:11 ` Patchwork
2022-12-19 9:30 ` [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Melissa Wen
7 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2022-12-18 23:11 UTC (permalink / raw)
To: Maíra Canal; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 33613 bytes --]
== Series Details ==
Series: VC4 IGT Tests Updates (rev3)
URL : https://patchwork.freedesktop.org/series/110948/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12512_full -> IGTPW_8242_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/index.html
Participating hosts (13 -> 10)
------------------------------
Missing (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_8242_full:
### IGT changes ###
#### Possible regressions ####
* {igt@vc4/vc4_perfmon@create-two-perfmon} (NEW):
- {shard-rkl}: NOTRUN -> [SKIP][1] +41 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-1/igt@vc4/vc4_perfmon@create-two-perfmon.html
* {igt@vc4/vc4_purgeable_bo@access-purgeable-bo-mem} (NEW):
- {shard-dg1}: NOTRUN -> [SKIP][2] +42 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-dg1-17/igt@vc4/vc4_purgeable_bo@access-purgeable-bo-mem.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@i915_suspend@basic-s3-without-i915:
- {shard-dg1}: [PASS][3] -> [DMESG-WARN][4] +1 similar issue
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-dg1-13/igt@i915_suspend@basic-s3-without-i915.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-dg1-14/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_vblank@pipe-a-query-forked:
- {shard-dg1}: NOTRUN -> [DMESG-WARN][5]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-dg1-14/igt@kms_vblank@pipe-a-query-forked.html
New tests
---------
New tests have been introduced between CI_DRM_12512_full and IGTPW_8242_full:
### New IGT tests (46) ###
* igt@vc4/vc4_create_bo@create-bo-0:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_create_bo@create-bo-4096:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_create_bo@create-bo-zeroed:
- Statuses :
- Exec time: [None] s
* igt@vc4/vc4_dmabuf_poll@poll-read-waits-until-write-done:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_dmabuf_poll@poll-write-waits-until-write-done:
- Statuses : 4 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_label_bo@set-bad-handle:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_label_bo@set-bad-name:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_label_bo@set-kernel-name:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_label_bo@set-label:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_lookup_fail@bad-color-write:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_perfmon@create-perfmon-0:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_perfmon@create-perfmon-exceed:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_perfmon@create-perfmon-invalid-events:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_perfmon@create-single-perfmon:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_perfmon@create-two-perfmon:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_perfmon@destroy-invalid-perfmon:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_perfmon@destroy-valid-perfmon:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_perfmon@get-values-invalid-perfmon:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_perfmon@get-values-invalid-pointer:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_perfmon@get-values-valid-perfmon:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_purgeable_bo@access-purgeable-bo-mem:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_purgeable_bo@access-purged-bo-mem:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_purgeable_bo@free-purged-bo:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_purgeable_bo@mark-purgeable:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_purgeable_bo@mark-purgeable-twice:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_purgeable_bo@mark-unpurgeable-check-retained:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_purgeable_bo@mark-unpurgeable-purged:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_purgeable_bo@mark-unpurgeable-twice:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_purgeable_bo@mark-willneed:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_tiling@get-after-free:
- Statuses :
- Exec time: [None] s
* igt@vc4/vc4_tiling@get-bad-flags:
- Statuses :
- Exec time: [None] s
* igt@vc4/vc4_tiling@get-bad-handle:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_tiling@get-bad-modifier:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_tiling@set-bad-flags:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_tiling@set-bad-handle:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_tiling@set-bad-modifier:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_tiling@set-get:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_wait_bo@bad-bo:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_wait_bo@bad-pad:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_wait_bo@unused-bo-0ns:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_wait_bo@unused-bo-1ns:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_wait_bo@used-bo:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_wait_bo@used-bo-0ns:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_wait_bo@used-bo-1ns:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_wait_seqno@bad-seqno-0ns:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
* igt@vc4/vc4_wait_seqno@bad-seqno-1ns:
- Statuses : 6 skip(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in IGTPW_8242_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_persistence@idempotent:
- shard-snb: NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#1099])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-snb4/igt@gem_ctx_persistence@idempotent.html
* igt@gem_exec_fair@basic-deadline:
- shard-glk: [PASS][7] -> [FAIL][8] ([i915#2846])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-glk3/igt@gem_exec_fair@basic-deadline.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-glk9/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-none-rrul@rcs0:
- shard-glk: NOTRUN -> [FAIL][9] ([i915#2842])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-glk5/igt@gem_exec_fair@basic-none-rrul@rcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [PASS][10] -> [FAIL][11] ([i915#2842]) +1 similar issue
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-glk7/igt@gem_exec_fair@basic-pace-share@rcs0.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-glk1/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_huc_copy@huc-copy:
- shard-apl: NOTRUN -> [SKIP][12] ([fdo#109271] / [i915#2190])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl6/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@heavy-verify-random:
- shard-apl: NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#4613])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl8/igt@gem_lmem_swapping@heavy-verify-random.html
* igt@gem_lmem_swapping@parallel-random:
- shard-glk: NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#4613])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-glk6/igt@gem_lmem_swapping@parallel-random.html
* igt@gen9_exec_parse@allowed-single:
- shard-glk: [PASS][15] -> [DMESG-WARN][16] ([i915#5566] / [i915#716])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-glk3/igt@gen9_exec_parse@allowed-single.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-glk7/igt@gen9_exec_parse@allowed-single.html
* igt@i915_pm_dc@dc9-dpms:
- shard-apl: [PASS][17] -> [SKIP][18] ([fdo#109271])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-apl8/igt@i915_pm_dc@dc9-dpms.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
* igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
- shard-apl: NOTRUN -> [SKIP][19] ([fdo#109271] / [i915#3886]) +4 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl7/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_mc_ccs:
- shard-glk: NOTRUN -> [SKIP][20] ([fdo#109271] / [i915#3886])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-glk1/igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_mc_ccs.html
* igt@kms_chamelium@dp-crc-single:
- shard-snb: NOTRUN -> [SKIP][21] ([fdo#109271] / [fdo#111827]) +4 similar issues
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-snb2/igt@kms_chamelium@dp-crc-single.html
- shard-apl: NOTRUN -> [SKIP][22] ([fdo#109271] / [fdo#111827]) +6 similar issues
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl3/igt@kms_chamelium@dp-crc-single.html
* igt@kms_content_protection@srm@pipe-a-dp-1:
- shard-apl: NOTRUN -> [TIMEOUT][23] ([i915#7173])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl1/igt@kms_content_protection@srm@pipe-a-dp-1.html
* igt@kms_content_protection@uevent@pipe-a-dp-1:
- shard-apl: NOTRUN -> [FAIL][24] ([i915#1339])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl6/igt@kms_content_protection@uevent@pipe-a-dp-1.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-apl: NOTRUN -> [SKIP][25] ([fdo#109271]) +120 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl6/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-apl: NOTRUN -> [SKIP][26] ([fdo#109271] / [i915#658])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl3/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_writeback@writeback-fb-id:
- shard-apl: NOTRUN -> [SKIP][27] ([fdo#109271] / [i915#2437])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl6/igt@kms_writeback@writeback-fb-id.html
* igt@sysfs_clients@sema-50:
- shard-snb: NOTRUN -> [SKIP][28] ([fdo#109271]) +123 similar issues
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-snb4/igt@sysfs_clients@sema-50.html
- shard-apl: NOTRUN -> [SKIP][29] ([fdo#109271] / [i915#2994]) +1 similar issue
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl7/igt@sysfs_clients@sema-50.html
* {igt@vc4/vc4_label_bo@set-bad-handle} (NEW):
- {shard-tglu}: NOTRUN -> [SKIP][30] ([i915#2575]) +21 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-tglu-1/igt@vc4/vc4_label_bo@set-bad-handle.html
* {igt@vc4/vc4_perfmon@create-perfmon-exceed} (NEW):
- shard-glk: NOTRUN -> [SKIP][31] ([fdo#109271]) +48 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-glk2/igt@vc4/vc4_perfmon@create-perfmon-exceed.html
* {igt@vc4/vc4_purgeable_bo@mark-purgeable} (NEW):
- {shard-tglu-10}: NOTRUN -> [SKIP][32] ([i915#2575]) +2 similar issues
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-tglu-10/igt@vc4/vc4_purgeable_bo@mark-purgeable.html
* {igt@vc4/vc4_purgeable_bo@mark-unpurgeable-check-retained} (NEW):
- {shard-tglu-9}: NOTRUN -> [SKIP][33] ([i915#2575]) +3 similar issues
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-tglu-9/igt@vc4/vc4_purgeable_bo@mark-unpurgeable-check-retained.html
#### Possible fixes ####
* igt@drm_read@empty-nonblock:
- {shard-tglu}: [SKIP][34] -> [PASS][35] +3 similar issues
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-tglu-6/igt@drm_read@empty-nonblock.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-tglu-4/igt@drm_read@empty-nonblock.html
* igt@fbdev@nullptr:
- {shard-rkl}: [SKIP][36] ([i915#2582]) -> [PASS][37]
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-3/igt@fbdev@nullptr.html
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-4/igt@fbdev@nullptr.html
* igt@gem_ctx_isolation@nonpriv@vecs0:
- {shard-rkl}: [FAIL][38] ([i915#7673]) -> [PASS][39] +3 similar issues
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-4/igt@gem_ctx_isolation@nonpriv@vecs0.html
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-5/igt@gem_ctx_isolation@nonpriv@vecs0.html
* igt@gem_exec_fair@basic-none-solo@rcs0:
- {shard-rkl}: [FAIL][40] ([i915#2842]) -> [PASS][41]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-1/igt@gem_exec_fair@basic-none-solo@rcs0.html
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-4/igt@gem_exec_fair@basic-none-solo@rcs0.html
* igt@gem_exec_fair@basic-pace@vcs0:
- shard-glk: [FAIL][42] ([i915#2842]) -> [PASS][43] +2 similar issues
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-glk6/igt@gem_exec_fair@basic-pace@vcs0.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-glk9/igt@gem_exec_fair@basic-pace@vcs0.html
* igt@gem_exec_reloc@basic-wc-cpu:
- {shard-rkl}: [SKIP][44] ([i915#3281]) -> [PASS][45] +3 similar issues
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-3/igt@gem_exec_reloc@basic-wc-cpu.html
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-5/igt@gem_exec_reloc@basic-wc-cpu.html
* igt@gem_pwrite@basic-self:
- {shard-rkl}: [SKIP][46] ([i915#3282]) -> [PASS][47] +1 similar issue
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-1/igt@gem_pwrite@basic-self.html
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-5/igt@gem_pwrite@basic-self.html
* igt@gen9_exec_parse@allowed-all:
- {shard-rkl}: [SKIP][48] ([i915#2527]) -> [PASS][49] +2 similar issues
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-2/igt@gen9_exec_parse@allowed-all.html
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-5/igt@gen9_exec_parse@allowed-all.html
* igt@i915_pm_rc6_residency@rc6-idle@vcs0:
- {shard-dg1}: [FAIL][50] ([i915#3591]) -> [PASS][51]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html
* igt@i915_pm_rpm@modeset-lpsp:
- {shard-tglu}: [SKIP][52] ([i915#1397]) -> [PASS][53]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-tglu-6/igt@i915_pm_rpm@modeset-lpsp.html
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-tglu-2/igt@i915_pm_rpm@modeset-lpsp.html
* igt@i915_pm_rpm@modeset-lpsp-stress:
- {shard-dg1}: [SKIP][54] ([i915#1397]) -> [PASS][55]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-dg1-17/igt@i915_pm_rpm@modeset-lpsp-stress.html
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-dg1-14/igt@i915_pm_rpm@modeset-lpsp-stress.html
* igt@kms_big_fb@y-tiled-16bpp-rotate-0:
- shard-glk: [FAIL][56] ([i915#5138]) -> [PASS][57]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-glk6/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-glk1/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html
* igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1:
- shard-apl: [DMESG-WARN][58] ([i915#180]) -> [PASS][59]
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-apl2/igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1.html
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl1/igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1.html
* igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
- shard-glk: [FAIL][60] ([i915#2346]) -> [PASS][61] +1 similar issue
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
* igt@kms_flip@modeset-vs-vblank-race@c-hdmi-a2:
- shard-glk: [FAIL][62] ([i915#407]) -> [PASS][63]
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-glk2/igt@kms_flip@modeset-vs-vblank-race@c-hdmi-a2.html
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-glk3/igt@kms_flip@modeset-vs-vblank-race@c-hdmi-a2.html
* igt@kms_frontbuffer_tracking@fbc-1p-rte:
- {shard-tglu}: ([PASS][64], [SKIP][65]) ([i915#1849]) -> [PASS][66] +2 similar issues
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-1p-rte.html
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-1p-rte.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-tglu-4/igt@kms_frontbuffer_tracking@fbc-1p-rte.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt:
- {shard-rkl}: [SKIP][67] ([i915#1849] / [i915#4098]) -> [PASS][68] +11 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-msflip-blt.html
* igt@kms_plane@plane-position-covered@pipe-a-planes:
- {shard-rkl}: [SKIP][69] ([i915#1849] / [i915#3558]) -> [PASS][70] +1 similar issue
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-5/igt@kms_plane@plane-position-covered@pipe-a-planes.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-6/igt@kms_plane@plane-position-covered@pipe-a-planes.html
* igt@kms_properties@crtc-properties-legacy:
- {shard-rkl}: [SKIP][71] ([i915#1849]) -> [PASS][72]
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-5/igt@kms_properties@crtc-properties-legacy.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-6/igt@kms_properties@crtc-properties-legacy.html
* igt@kms_psr@cursor_plane_move:
- {shard-rkl}: [SKIP][73] ([i915#1072]) -> [PASS][74]
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-1/igt@kms_psr@cursor_plane_move.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-6/igt@kms_psr@cursor_plane_move.html
* igt@kms_vblank@pipe-a-ts-continuation-modeset:
- {shard-tglu}: ([PASS][75], [SKIP][76]) -> [PASS][77] +1 similar issue
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-tglu-4/igt@kms_vblank@pipe-a-ts-continuation-modeset.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-tglu-6/igt@kms_vblank@pipe-a-ts-continuation-modeset.html
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-tglu-3/igt@kms_vblank@pipe-a-ts-continuation-modeset.html
* igt@kms_vblank@pipe-b-query-idle:
- {shard-rkl}: [SKIP][78] ([i915#1845] / [i915#4098]) -> [PASS][79] +16 similar issues
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-2/igt@kms_vblank@pipe-b-query-idle.html
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-6/igt@kms_vblank@pipe-b-query-idle.html
* igt@perf@gen8-unprivileged-single-ctx-counters:
- {shard-rkl}: [SKIP][80] ([i915#2436]) -> [PASS][81]
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-2/igt@perf@gen8-unprivileged-single-ctx-counters.html
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-5/igt@perf@gen8-unprivileged-single-ctx-counters.html
* igt@prime_vgem@basic-fence-flip:
- {shard-rkl}: [SKIP][82] ([fdo#109295] / [i915#3708] / [i915#4098]) -> [PASS][83]
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-1/igt@prime_vgem@basic-fence-flip.html
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-6/igt@prime_vgem@basic-fence-flip.html
* igt@testdisplay:
- {shard-rkl}: [SKIP][84] ([i915#4098]) -> [PASS][85] +1 similar issue
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-rkl-5/igt@testdisplay.html
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-rkl-6/igt@testdisplay.html
#### Warnings ####
* igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1:
- shard-apl: [DMESG-FAIL][86] ([IGT#6]) -> [FAIL][87] ([i915#4573]) +1 similar issue
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12512/shard-apl2/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1.html
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/shard-apl7/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-dp-1.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[IGT#6]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/6
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
[fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
[fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[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#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
[fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
[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#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
[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#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
[i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
[i915#2436]: https://gitlab.freedesktop.org/drm/intel/issues/2436
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[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#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[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#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
[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#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
[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#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
[i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
[i915#407]: https://gitlab.freedesktop.org/drm/intel/issues/407
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[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#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4877]: https://gitlab.freedesktop.org/drm/intel/issues/4877
[i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
[i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
[i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138
[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#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
[i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
[i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
[i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
[i915#6258]: https://gitlab.freedesktop.org/drm/intel/issues/6258
[i915#6259]: https://gitlab.freedesktop.org/drm/intel/issues/6259
[i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
[i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
[i915#6344]: https://gitlab.freedesktop.org/drm/intel/issues/6344
[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#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
[i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
[i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
[i915#7037]: https://gitlab.freedesktop.org/drm/intel/issues/7037
[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#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
[i915#7673]: https://gitlab.freedesktop.org/drm/intel/issues/7673
[i915#7678]: https://gitlab.freedesktop.org/drm/intel/issues/7678
[i915#7679]: https://gitlab.freedesktop.org/drm/intel/issues/7679
[i915#7681]: https://gitlab.freedesktop.org/drm/intel/issues/7681
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7096 -> IGTPW_8242
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12512: 32c0d1e3ac9cf7e7b64a53dcafeeb7173a2f511b @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8242: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8242/index.html
IGT_7096: f2f515390fb11554d22c7b78b94e288026545326 @ 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_8242/index.html
[-- Attachment #2: Type: text/html, Size: 30898 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v3 4/5] tests/vc4: Skip VC4 tests if they are running on BCM2711/RaspberryPi4
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 4/5] tests/vc4: Skip VC4 tests if they are running on BCM2711/RaspberryPi4 Maíra Canal
@ 2022-12-19 9:21 ` Petri Latvala
0 siblings, 0 replies; 10+ messages in thread
From: Petri Latvala @ 2022-12-19 9:21 UTC (permalink / raw)
To: Maíra Canal; +Cc: igt-dev, Maxime Ripard, Emma Anholt
On Fri, Dec 16, 2022 at 01:28:54PM -0300, Maíra Canal wrote:
> Currently, if the VC4 tests are run on BCM2711/Raspberry Pi 4, they will
> fail with no warning. So, add igt_require to the VC4 tests to check if
> VC4 has rendering capabilities before running the tests.
>
> In order to check if VC4 is running on BCM2711/Raspberry Pi 4, create a
> function that checks if the vc4 driver has syncobj capabilities. If not so,
> it means that the tests are being run on BCM2711/Raspberry Pi 4, as vc5
> doesn't have syncobj capabilities.
>
> Signed-off-by: Maíra Canal <mcanal@igalia.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
> ---
> lib/igt_vc4.c | 12 ++++++++++++
> lib/igt_vc4.h | 1 +
> tests/vc4/vc4_create_bo.c | 1 +
> tests/vc4/vc4_dmabuf_poll.c | 4 +++-
> tests/vc4/vc4_label_bo.c | 4 +++-
> tests/vc4/vc4_tiling.c | 4 +++-
> tests/vc4/vc4_wait_bo.c | 1 +
> tests/vc4/vc4_wait_seqno.c | 4 +++-
> 8 files changed, 27 insertions(+), 4 deletions(-)
>
> diff --git a/lib/igt_vc4.c b/lib/igt_vc4.c
> index 54718cee..2c86bd93 100644
> --- a/lib/igt_vc4.c
> +++ b/lib/igt_vc4.c
> @@ -59,6 +59,18 @@ bool igt_vc4_is_tiled(uint64_t modifier)
> }
> }
>
> +bool igt_vc4_is_v3d(int fd)
> +{
> + uint64_t value;
> +
> + /*
> + * vc5 doesn't have syncobj capabilities, only vc4.
> + */
> + if (drmGetCap(fd, DRM_CAP_SYNCOBJ, &value))
> + return false;
> + return value;
> +}
> +
> /**
> * igt_vc4_get_cleared_bo:
> * @fd: device file descriptor
> diff --git a/lib/igt_vc4.h b/lib/igt_vc4.h
> index ddce90da..79a6ab7d 100644
> --- a/lib/igt_vc4.h
> +++ b/lib/igt_vc4.h
> @@ -34,6 +34,7 @@ void *igt_vc4_mmap_bo(int fd, uint32_t handle, uint32_t size, unsigned prot);
> int igt_vc4_get_param(int fd, uint32_t param, uint64_t *val);
> bool igt_vc4_purgeable_bo(int fd, int handle, bool purgeable);
> bool igt_vc4_is_tiled(uint64_t modifier);
> +bool igt_vc4_is_v3d(int fd);
>
> void igt_vc4_set_tiling(int fd, uint32_t handle, uint64_t modifier);
> uint64_t igt_vc4_get_tiling(int fd, uint32_t handle);
> diff --git a/tests/vc4/vc4_create_bo.c b/tests/vc4/vc4_create_bo.c
> index c4909b49..c17f25b0 100644
> --- a/tests/vc4/vc4_create_bo.c
> +++ b/tests/vc4/vc4_create_bo.c
> @@ -30,6 +30,7 @@ igt_main
>
> igt_fixture {
> fd = drm_open_driver(DRIVER_VC4);
> + igt_require(igt_vc4_is_v3d(fd));
> }
>
> igt_subtest("create-bo-4096") {
> diff --git a/tests/vc4/vc4_dmabuf_poll.c b/tests/vc4/vc4_dmabuf_poll.c
> index da99964b..c76d4950 100644
> --- a/tests/vc4/vc4_dmabuf_poll.c
> +++ b/tests/vc4/vc4_dmabuf_poll.c
> @@ -59,8 +59,10 @@ igt_main
> {
> int fd;
>
> - igt_fixture
> + igt_fixture {
> fd = drm_open_driver(DRIVER_VC4);
> + igt_require(igt_vc4_is_v3d(fd));
> + }
>
> igt_subtest("poll-write-waits-until-write-done") {
> poll_write_bo_test(fd, POLLOUT);
> diff --git a/tests/vc4/vc4_label_bo.c b/tests/vc4/vc4_label_bo.c
> index dd8b5f9a..252bd1ed 100644
> --- a/tests/vc4/vc4_label_bo.c
> +++ b/tests/vc4/vc4_label_bo.c
> @@ -43,8 +43,10 @@ igt_main
> {
> int fd;
>
> - igt_fixture
> + igt_fixture {
> fd = drm_open_driver(DRIVER_VC4);
> + igt_require(igt_vc4_is_v3d(fd));
> + }
>
> igt_subtest("set-label") {
> int handle = igt_vc4_create_bo(fd, PAGE_SIZE);
> diff --git a/tests/vc4/vc4_tiling.c b/tests/vc4/vc4_tiling.c
> index 372b1fed..f5bf31f5 100644
> --- a/tests/vc4/vc4_tiling.c
> +++ b/tests/vc4/vc4_tiling.c
> @@ -28,8 +28,10 @@ igt_main
> {
> int fd;
>
> - igt_fixture
> + igt_fixture {
> fd = drm_open_driver(DRIVER_VC4);
> + igt_require(igt_vc4_is_v3d(fd));
> + }
>
> igt_subtest("get-bad-handle") {
> struct drm_vc4_get_tiling get = {
> diff --git a/tests/vc4/vc4_wait_bo.c b/tests/vc4/vc4_wait_bo.c
> index 386642b9..c88a4ac4 100644
> --- a/tests/vc4/vc4_wait_bo.c
> +++ b/tests/vc4/vc4_wait_bo.c
> @@ -64,6 +64,7 @@ igt_main
>
> igt_fixture {
> fd = drm_open_driver(DRIVER_VC4);
> + igt_require(igt_vc4_is_v3d(fd));
> bo_handle = igt_vc4_create_bo(fd, PAGE_SIZE);
> }
>
> diff --git a/tests/vc4/vc4_wait_seqno.c b/tests/vc4/vc4_wait_seqno.c
> index 61485bbf..78984fa3 100644
> --- a/tests/vc4/vc4_wait_seqno.c
> +++ b/tests/vc4/vc4_wait_seqno.c
> @@ -28,8 +28,10 @@ igt_main
> {
> int fd;
>
> - igt_fixture
> + igt_fixture {
> fd = drm_open_driver(DRIVER_VC4);
> + igt_require(igt_vc4_is_v3d(fd));
> + }
>
> /* A 64-bit seqno should never hit the maximum value over the
> * lifetime of the system. (A submit per 1000 cycles at 1Ghz
> --
> 2.38.1
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates
2022-12-16 16:28 [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Maíra Canal
` (6 preceding siblings ...)
2022-12-18 23:11 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2022-12-19 9:30 ` Melissa Wen
7 siblings, 0 replies; 10+ messages in thread
From: Melissa Wen @ 2022-12-19 9:30 UTC (permalink / raw)
To: Maíra Canal; +Cc: petri.latvala, Emma Anholt, igt-dev, Maxime Ripard
[-- Attachment #1: Type: text/plain, Size: 2986 bytes --]
On 12/16, Maíra Canal wrote:
> This series aims to update the VC4 IGT tests. The first three patches contain
> some janitorial duties related to the existing tests: creating a folder for the
> VC4 tests, removing some unused includes, and adding a macro with the default
> PAGE_SIZE. The fourth patch adds an igt_require to all the VC4 tests to
> check that the tests are not running on BCM2711. The final patch includes
> new tests for the VC4's performance monitors.
>
> This series was tested on the Raspberry Pi 3 Model B and Raspberry Pi 4 Model B,
> and the HTML outputs of the VC4 tests are available on:
>
> - Raspberry Pi 4: https://mairacanal.fedorapeople.org/igt-results/rpi4-v2/html/
> - Raspberry Pi 3: https://mairacanal.fedorapeople.org/igt-results/rpi3-v2/html/
>
You already have the a-b from Petri.
And the series LGTM too:
Reviewed-by: Melissa Wen <mwen@igalia.com>
> Best Regards,
> - Maíra Canal
>
> v1 -> v2:
> - Install VC4 tests on build/tests/vc4/ instead of build/tests/ (Melissa Wen).
> - Use the syncobj capability to identify vc4 and vc5 (Melissa Wen).
> - Change the order of the commits (Melissa Wen).
> - Add Petri Latvala tags.
>
> v2 -> v3:
> - Remove ternary conditional operator from return (Petri Latvala).
> - Add Petri Latvala tag.
>
> Maíra Canal (5):
> tests/vc4: Move VC4 tests to their own folder
> tests/vc4: Remove unused or redundant includes
> lib/igt_vc4: Add PAGE_SIZE macro to VC4
> tests/vc4: Skip VC4 tests if they are running on BCM2711/RaspberryPi4
> tests/vc4_perfmon: Create test for VC4's Perfmon IOCTLs
>
> lib/igt_vc4.c | 60 ++++++++++---
> lib/igt_vc4.h | 9 ++
> meson.build | 8 ++
> tests/meson.build | 10 +--
> tests/vc4/meson.build | 20 +++++
> tests/{ => vc4}/vc4_create_bo.c | 15 +---
> tests/{ => vc4}/vc4_dmabuf_poll.c | 14 +--
> tests/{ => vc4}/vc4_label_bo.c | 21 ++---
> tests/{ => vc4}/vc4_lookup_fail.c | 14 +--
> tests/vc4/vc4_perfmon.c | 138 +++++++++++++++++++++++++++++
> tests/{ => vc4}/vc4_purgeable_bo.c | 10 ---
> tests/{ => vc4}/vc4_tiling.c | 27 ++----
> tests/{ => vc4}/vc4_wait_bo.c | 14 +--
> tests/{ => vc4}/vc4_wait_seqno.c | 15 +---
> tests/vc4_ci/vc4.testlist | 80 +++++++++--------
> 15 files changed, 298 insertions(+), 157 deletions(-)
> create mode 100644 tests/vc4/meson.build
> rename tests/{ => vc4}/vc4_create_bo.c (89%)
> rename tests/{ => vc4}/vc4_dmabuf_poll.c (91%)
> rename tests/{ => vc4}/vc4_label_bo.c (85%)
> rename tests/{ => vc4}/vc4_lookup_fail.c (90%)
> create mode 100644 tests/vc4/vc4_perfmon.c
> rename tests/{ => vc4}/vc4_purgeable_bo.c (97%)
> rename tests/{ => vc4}/vc4_tiling.c (88%)
> rename tests/{ => vc4}/vc4_wait_bo.c (92%)
> rename tests/{ => vc4}/vc4_wait_seqno.c (89%)
>
> --
> 2.38.1
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-12-19 9:30 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-16 16:28 [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Maíra Canal
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 1/5] tests/vc4: Move VC4 tests to their own folder Maíra Canal
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 2/5] tests/vc4: Remove unused or redundant includes Maíra Canal
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 3/5] lib/igt_vc4: Add PAGE_SIZE macro to VC4 Maíra Canal
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 4/5] tests/vc4: Skip VC4 tests if they are running on BCM2711/RaspberryPi4 Maíra Canal
2022-12-19 9:21 ` Petri Latvala
2022-12-16 16:28 ` [igt-dev] [PATCH i-g-t v3 5/5] tests/vc4_perfmon: Create test for VC4's Perfmon IOCTLs Maíra Canal
2022-12-18 21:39 ` [igt-dev] ✓ Fi.CI.BAT: success for VC4 IGT Tests Updates (rev3) Patchwork
2022-12-18 23:11 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2022-12-19 9:30 ` [igt-dev] [PATCH i-g-t v3 0/5] VC4 IGT Tests Updates Melissa Wen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox