* [igt-dev] [PATCH i-g-t 0/2] Keep tests working without relocations
@ 2021-08-09 13:20 Andrzej Turko
2021-08-09 13:20 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_streaming_writes: Support gens " Andrzej Turko
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Andrzej Turko @ 2021-08-09 13:20 UTC (permalink / raw)
To: igt-dev; +Cc: Andrzej Turko, Zbigniew Kempczyński
Avoid using relocations on generations
which do not support it.
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Andrzej Turko (2):
tests/i915/gem_streaming_writes: Support gens without relocations
HAX: Add the tests to fast feedback
tests/i915/gem_streaming_writes.c | 109 ++++++++-------
tests/intel-ci/fast-feedback.testlist | 185 ++------------------------
2 files changed, 75 insertions(+), 219 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_streaming_writes: Support gens without relocations
2021-08-09 13:20 [igt-dev] [PATCH i-g-t 0/2] Keep tests working without relocations Andrzej Turko
@ 2021-08-09 13:20 ` Andrzej Turko
2021-08-10 7:09 ` Zbigniew Kempczyński
2021-08-09 13:20 ` [igt-dev] [PATCH i-g-t 2/2] HAX: Add the tests to fast feedback Andrzej Turko
` (2 subsequent siblings)
3 siblings, 1 reply; 7+ messages in thread
From: Andrzej Turko @ 2021-08-09 13:20 UTC (permalink / raw)
To: igt-dev; +Cc: Andrzej Turko, Zbigniew Kempczyński
Use softpin to completely avoid relocations on generations
which do not support them.
Signed-off-by: Andrzej Turko <andrzej.turko@linux.intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
tests/i915/gem_streaming_writes.c | 109 +++++++++++++++++-------------
1 file changed, 62 insertions(+), 47 deletions(-)
diff --git a/tests/i915/gem_streaming_writes.c b/tests/i915/gem_streaming_writes.c
index c104792bd..ce82d8823 100644
--- a/tests/i915/gem_streaming_writes.c
+++ b/tests/i915/gem_streaming_writes.c
@@ -62,7 +62,8 @@ IGT_TEST_DESCRIPTION("Test of streaming writes into active GPU sources");
static void test_streaming(int fd, int mode, int sync)
{
- const int has_64bit_reloc = intel_gen(intel_get_drm_devid(fd)) >= 8;
+ const bool has_64bit_addr = intel_gen(intel_get_drm_devid(fd)) >= 8;
+ const bool do_relocs = gem_has_relocations(fd);
struct drm_i915_gem_execbuffer2 execbuf;
struct drm_i915_gem_exec_object2 exec[3];
struct drm_i915_gem_relocation_entry reloc[128];
@@ -112,30 +113,35 @@ static void test_streaming(int fd, int mode, int sync)
__src_offset = src_offset;
__dst_offset = dst_offset;
- memset(reloc, 0, sizeof(reloc));
- for (i = 0; i < 64; i++) {
- reloc[2*i+0].offset = 64*i + 4 * sizeof(uint32_t);
- reloc[2*i+0].delta = 0;
- reloc[2*i+0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
- reloc[2*i+0].presumed_offset = dst_offset;
- reloc[2*i+0].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[2*i+0].write_domain = I915_GEM_DOMAIN_RENDER;
-
- reloc[2*i+1].offset = 64*i + 7 * sizeof(uint32_t);
- if (has_64bit_reloc)
- reloc[2*i+1].offset += sizeof(uint32_t);
- reloc[2*i+1].delta = 0;
- reloc[2*i+1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
- reloc[2*i+1].presumed_offset = src_offset;
- reloc[2*i+1].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[2*i+1].write_domain = 0;
- }
gem_execbuf(fd, &execbuf);
igt_assert_eq_u64(__src_offset, src_offset);
igt_assert_eq_u64(__dst_offset, dst_offset);
exec[DST].flags = EXEC_OBJECT_WRITE;
- exec[BATCH].relocation_count = 2;
+ if (do_relocs) {
+ memset(reloc, 0, sizeof(reloc));
+ for (i = 0; i < 64; i++) {
+ reloc[2*i+0].offset = 64*i + 4 * sizeof(uint32_t);
+ reloc[2*i+0].delta = 0;
+ reloc[2*i+0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
+ reloc[2*i+0].presumed_offset = dst_offset;
+ reloc[2*i+0].read_domains = I915_GEM_DOMAIN_RENDER;
+ reloc[2*i+0].write_domain = I915_GEM_DOMAIN_RENDER;
+
+ reloc[2*i+1].offset = 64*i + 7 * sizeof(uint32_t);
+ if (has_64bit_addr)
+ reloc[2*i+1].offset += sizeof(uint32_t);
+ reloc[2*i+1].delta = 0;
+ reloc[2*i+1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
+ reloc[2*i+1].presumed_offset = src_offset;
+ reloc[2*i+1].read_domains = I915_GEM_DOMAIN_RENDER;
+ reloc[2*i+1].write_domain = 0;
+ }
+ exec[BATCH].relocation_count = 2;
+ } else {
+ exec[DST].flags |= EXEC_OBJECT_PINNED;
+ exec[SRC].flags = EXEC_OBJECT_PINNED;
+ }
execbuf.buffer_count = 3;
execbuf.flags |= I915_EXEC_NO_RELOC;
if (gem_has_blt(fd))
@@ -159,19 +165,19 @@ static void test_streaming(int fd, int mode, int sync)
int k = 0;
b[k] = COPY_BLT_CMD | BLT_WRITE_ARGB;
- if (has_64bit_reloc)
+ if (has_64bit_addr)
b[k] += 2;
k++;
b[k++] = 0xcc << 16 | 1 << 25 | 1 << 24 | 4096;
b[k++] = (y << 16) | x;
b[k++] = ((y+1) << 16) | (x + (CHUNK_SIZE >> 2));
b[k++] = dst_offset;
- if (has_64bit_reloc)
+ if (has_64bit_addr)
b[k++] = dst_offset >> 32;
b[k++] = (y << 16) | x;
b[k++] = 4096;
b[k++] = src_offset;
- if (has_64bit_reloc)
+ if (has_64bit_addr)
b[k++] = src_offset >> 32;
b[k++] = MI_BATCH_BUFFER_END;
@@ -205,7 +211,8 @@ static void test_streaming(int fd, int mode, int sync)
b = offset / CHUNK_SIZE / 64;
n = offset / CHUNK_SIZE % 64;
- exec[BATCH].relocs_ptr = to_user_pointer((reloc + 2*n));
+ if (do_relocs)
+ exec[BATCH].relocs_ptr = to_user_pointer((reloc + 2*n));
exec[BATCH].handle = batch[b].handle;
exec[BATCH].offset = batch[b].offset;
execbuf.batch_start_offset = 64*n;
@@ -234,7 +241,8 @@ static void test_streaming(int fd, int mode, int sync)
static void test_batch(int fd, int mode, int reverse)
{
- const int has_64bit_reloc = intel_gen(intel_get_drm_devid(fd)) >= 8;
+ const bool has_64bit_addr = intel_gen(intel_get_drm_devid(fd)) >= 8;
+ const bool do_relocs = gem_has_relocations(fd);
struct drm_i915_gem_execbuffer2 execbuf;
struct drm_i915_gem_exec_object2 exec[3];
struct drm_i915_gem_relocation_entry reloc[2];
@@ -254,26 +262,28 @@ static void test_batch(int fd, int mode, int reverse)
d = gem_mmap__cpu(fd, dst, 0, OBJECT_SIZE, PROT_READ);
- memset(reloc, 0, sizeof(reloc));
- reloc[0].offset = 4 * sizeof(uint32_t);
- reloc[0].delta = 0;
- reloc[0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
- reloc[0].presumed_offset = dst_offset;
- reloc[0].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[0].write_domain = I915_GEM_DOMAIN_RENDER;
-
- reloc[1].offset = 7 * sizeof(uint32_t);
- if (has_64bit_reloc)
- reloc[1].offset += sizeof(uint32_t);
- reloc[1].delta = 0;
- reloc[1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
- reloc[1].presumed_offset = src_offset;
- reloc[1].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[1].write_domain = 0;
-
+ if (do_relocs) {
+ memset(reloc, 0, sizeof(reloc));
+ reloc[0].offset = 4 * sizeof(uint32_t);
+ reloc[0].delta = 0;
+ reloc[0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
+ reloc[0].presumed_offset = dst_offset;
+ reloc[0].read_domains = I915_GEM_DOMAIN_RENDER;
+ reloc[0].write_domain = I915_GEM_DOMAIN_RENDER;
+
+ reloc[1].offset = 7 * sizeof(uint32_t);
+ if (has_64bit_addr)
+ reloc[1].offset += sizeof(uint32_t);
+ reloc[1].delta = 0;
+ reloc[1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
+ reloc[1].presumed_offset = src_offset;
+ reloc[1].read_domains = I915_GEM_DOMAIN_RENDER;
+ reloc[1].write_domain = 0;
+
+ exec[BATCH].relocs_ptr = to_user_pointer(reloc);
+ exec[BATCH].relocation_count = 2;
+ }
batch_size = ALIGN(OBJECT_SIZE / CHUNK_SIZE * 128, 4096);
- exec[BATCH].relocs_ptr = to_user_pointer(reloc);
- exec[BATCH].relocation_count = 2;
exec[BATCH].handle = gem_create(fd, batch_size);
switch (mode) {
@@ -308,8 +318,13 @@ static void test_batch(int fd, int mode, int reverse)
exec[DST].flags = EXEC_OBJECT_WRITE;
/* We assume that the active objects are fixed to avoid relocations */
exec[BATCH].relocation_count = 0;
+ exec[BATCH].relocs_ptr = 0;
__src_offset = src_offset;
__dst_offset = dst_offset;
+ if (!do_relocs) {
+ exec[DST].flags |= EXEC_OBJECT_PINNED;
+ exec[SRC].flags = EXEC_OBJECT_PINNED;
+ }
offset = mode ? I915_GEM_DOMAIN_GTT : I915_GEM_DOMAIN_CPU;
gem_set_domain(fd, exec[BATCH].handle, offset, offset);
@@ -334,19 +349,19 @@ static void test_batch(int fd, int mode, int reverse)
k = execbuf.batch_start_offset / 4;
base[k] = COPY_BLT_CMD | BLT_WRITE_ARGB;
- if (has_64bit_reloc)
+ if (has_64bit_addr)
base[k] += 2;
k++;
base[k++] = 0xcc << 16 | 1 << 25 | 1 << 24 | 4096;
base[k++] = (y << 16) | x;
base[k++] = ((y+1) << 16) | (x + (CHUNK_SIZE >> 2));
base[k++] = dst_offset;
- if (has_64bit_reloc)
+ if (has_64bit_addr)
base[k++] = dst_offset >> 32;
base[k++] = (y << 16) | x;
base[k++] = 4096;
base[k++] = src_offset;
- if (has_64bit_reloc)
+ if (has_64bit_addr)
base[k++] = src_offset >> 32;
base[k++] = MI_BATCH_BUFFER_END;
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] HAX: Add the tests to fast feedback
2021-08-09 13:20 [igt-dev] [PATCH i-g-t 0/2] Keep tests working without relocations Andrzej Turko
2021-08-09 13:20 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_streaming_writes: Support gens " Andrzej Turko
@ 2021-08-09 13:20 ` Andrzej Turko
2021-08-09 14:15 ` [igt-dev] ✗ Fi.CI.BAT: failure for Keep tests working without relocations (rev8) Patchwork
2021-08-09 16:51 ` [igt-dev] ✗ GitLab.Pipeline: warning " Patchwork
3 siblings, 0 replies; 7+ messages in thread
From: Andrzej Turko @ 2021-08-09 13:20 UTC (permalink / raw)
To: igt-dev; +Cc: Andrzej Turko
Signed-off-by: Andrzej Turko <andrzej.turko@linux.intel.com>
---
tests/intel-ci/fast-feedback.testlist | 185 ++------------------------
1 file changed, 13 insertions(+), 172 deletions(-)
diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index fa5006d2e..ab1691776 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -1,175 +1,16 @@
# Keep alphabetically sorted by default
-igt@core_auth@basic-auth
-igt@debugfs_test@read_all_entries
-igt@fbdev@eof
-igt@fbdev@info
-igt@fbdev@nullptr
-igt@fbdev@read
-igt@fbdev@write
-igt@gem_basic@bad-close
-igt@gem_basic@create-close
-igt@gem_basic@create-fd-close
-igt@gem_busy@busy@all
-igt@gem_close_race@basic-process
-igt@gem_close_race@basic-threads
-igt@gem_ctx_create@basic
-igt@gem_ctx_create@basic-files
-igt@gem_ctx_exec@basic
-igt@gem_exec_basic@basic
-igt@gem_exec_create@basic
-igt@gem_exec_fence@basic-busy
-igt@gem_exec_fence@basic-wait
-igt@gem_exec_fence@basic-await
-igt@gem_exec_fence@nb-await
-igt@gem_exec_gttfill@basic
-igt@gem_exec_parallel@engines
-igt@gem_exec_store@basic
-igt@gem_exec_suspend@basic-s0
-igt@gem_exec_suspend@basic-s3
-igt@gem_flink_basic@bad-flink
-igt@gem_flink_basic@bad-open
-igt@gem_flink_basic@basic
-igt@gem_flink_basic@double-flink
-igt@gem_flink_basic@flink-lifetime
-igt@gem_huc_copy@huc-copy
-igt@gem_linear_blits@basic
-igt@gem_mmap@basic
-igt@gem_mmap_gtt@basic
-igt@gem_render_linear_blits@basic
-igt@gem_render_tiled_blits@basic
-igt@gem_ringfill@basic-all
-igt@gem_softpin@allocator-basic
-igt@gem_softpin@allocator-basic-reserve
-igt@gem_sync@basic-all
-igt@gem_sync@basic-each
-igt@gem_tiled_blits@basic
-igt@gem_tiled_fence_blits@basic
-igt@gem_tiled_pread_basic
-igt@gem_wait@busy@all
-igt@gem_wait@wait@all
-igt@i915_getparams_basic@basic-eu-total
-igt@i915_getparams_basic@basic-subslice-total
-igt@i915_hangman@error-state-basic
-igt@kms_addfb_basic@addfb25-bad-modifier
-igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling
-igt@kms_addfb_basic@addfb25-modifier-no-flag
-igt@kms_addfb_basic@addfb25-x-tiled-legacy
-igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy
-igt@kms_addfb_basic@addfb25-yf-tiled-legacy
-igt@kms_addfb_basic@addfb25-y-tiled-legacy
-igt@kms_addfb_basic@addfb25-y-tiled-small-legacy
-igt@kms_addfb_basic@bad-pitch-0
-igt@kms_addfb_basic@bad-pitch-1024
-igt@kms_addfb_basic@bad-pitch-128
-igt@kms_addfb_basic@bad-pitch-256
-igt@kms_addfb_basic@bad-pitch-32
-igt@kms_addfb_basic@bad-pitch-63
-igt@kms_addfb_basic@bad-pitch-65536
-igt@kms_addfb_basic@bad-pitch-999
-igt@kms_addfb_basic@basic
-igt@kms_addfb_basic@basic-x-tiled-legacy
-igt@kms_addfb_basic@basic-y-tiled-legacy
-igt@kms_addfb_basic@bo-too-small
-igt@kms_addfb_basic@bo-too-small-due-to-tiling
-igt@kms_addfb_basic@clobberred-modifier
-igt@kms_addfb_basic@framebuffer-vs-set-tiling
-igt@kms_addfb_basic@invalid-get-prop
-igt@kms_addfb_basic@invalid-get-prop-any
-igt@kms_addfb_basic@invalid-set-prop
-igt@kms_addfb_basic@invalid-set-prop-any
-igt@kms_addfb_basic@no-handle
-igt@kms_addfb_basic@size-max
-igt@kms_addfb_basic@small-bo
-igt@kms_addfb_basic@tile-pitch-mismatch
-igt@kms_addfb_basic@too-high
-igt@kms_addfb_basic@too-wide
-igt@kms_addfb_basic@unused-handle
-igt@kms_addfb_basic@unused-modifier
-igt@kms_addfb_basic@unused-offsets
-igt@kms_addfb_basic@unused-pitches
-igt@kms_busy@basic
-igt@kms_chamelium@dp-hpd-fast
-igt@kms_chamelium@dp-edid-read
-igt@kms_chamelium@dp-crc-fast
-igt@kms_chamelium@hdmi-hpd-fast
-igt@kms_chamelium@hdmi-edid-read
-igt@kms_chamelium@hdmi-crc-fast
-igt@kms_chamelium@vga-hpd-fast
-igt@kms_chamelium@vga-edid-read
-igt@kms_chamelium@common-hpd-after-suspend
-igt@kms_prop_blob@basic
-igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic
-igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy
-igt@kms_cursor_legacy@basic-flip-after-cursor-atomic
-igt@kms_cursor_legacy@basic-flip-after-cursor-legacy
-igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size
-igt@kms_cursor_legacy@basic-flip-before-cursor-atomic
-igt@kms_cursor_legacy@basic-flip-before-cursor-legacy
-igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size
-igt@kms_flip@basic-flip-vs-dpms
-igt@kms_flip@basic-flip-vs-modeset
-igt@kms_flip@basic-flip-vs-wf_vblank
-igt@kms_flip@basic-plain-flip
-igt@kms_force_connector_basic@force-connector-state
-igt@kms_force_connector_basic@force-edid
-igt@kms_force_connector_basic@force-load-detect
-igt@kms_force_connector_basic@prune-stale-modes
-igt@kms_frontbuffer_tracking@basic
-igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-a
-igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b
-igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-c
-igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d
-igt@kms_pipe_crc_basic@hang-read-crc-pipe-a
-igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a
-igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence
-igt@kms_pipe_crc_basic@read-crc-pipe-a
-igt@kms_pipe_crc_basic@read-crc-pipe-b
-igt@kms_pipe_crc_basic@read-crc-pipe-c
-igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence
-igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a
-igt@kms_psr@primary_page_flip
-igt@kms_psr@cursor_plane_move
-igt@kms_psr@sprite_plane_onoff
-igt@kms_psr@primary_mmap_gtt
-igt@kms_setmode@basic-clone-single-crtc
-igt@i915_pm_backlight@basic-brightness
-igt@i915_pm_rpm@basic-pci-d3-state
-igt@i915_pm_rpm@basic-rte
-igt@i915_pm_rps@basic-api
-igt@prime_self_import@basic-llseek-bad
-igt@prime_self_import@basic-llseek-size
-igt@prime_self_import@basic-with_fd_dup
-igt@prime_self_import@basic-with_one_bo
-igt@prime_self_import@basic-with_one_bo_two_files
-igt@prime_self_import@basic-with_two_bos
-igt@prime_vgem@basic-fence-flip
-igt@prime_vgem@basic-fence-mmap
-igt@prime_vgem@basic-fence-read
-igt@prime_vgem@basic-gtt
-igt@prime_vgem@basic-read
-igt@prime_vgem@basic-write
-igt@prime_vgem@basic-userptr
-igt@vgem_basic@setversion
-igt@vgem_basic@create
-igt@vgem_basic@debugfs
-igt@vgem_basic@dmabuf-export
-igt@vgem_basic@dmabuf-fence
-igt@vgem_basic@dmabuf-fence-before
-igt@vgem_basic@dmabuf-mmap
-igt@vgem_basic@mmap
-igt@vgem_basic@second-client
-igt@vgem_basic@sysfs
-# All tests that do module unloading and reloading are executed last.
-# They will sometimes reveal issues of earlier tests leaving the
-# driver in a broken state that is not otherwise noticed in that test.
-
-igt@core_hotunplug@unbind-rebind
-igt@vgem_basic@unload
-igt@i915_module_load@reload
-igt@i915_pm_rpm@module-reload
-
-# Kernel selftests
-igt@i915_selftest@live
-igt@dmabuf@all
+igt@gem_streaming_writes@batch-cpu
+igt@gem_streaming_writes@batch-gtt
+igt@gem_streaming_writes@batch-reverse-cpu
+igt@gem_streaming_writes@batch-reverse-gtt
+igt@gem_streaming_writes@batch-reverse-wc
+igt@gem_streaming_writes@batch-wc
+igt@gem_streaming_writes@cpu
+igt@gem_streaming_writes@cpu-sync
+igt@gem_streaming_writes@gtt
+igt@gem_streaming_writes@gtt-sync
+igt@gem_streaming_writes@wc
+igt@gem_streaming_writes@wc-sync
+igt@meta_test@fail-result
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for Keep tests working without relocations (rev8)
2021-08-09 13:20 [igt-dev] [PATCH i-g-t 0/2] Keep tests working without relocations Andrzej Turko
2021-08-09 13:20 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_streaming_writes: Support gens " Andrzej Turko
2021-08-09 13:20 ` [igt-dev] [PATCH i-g-t 2/2] HAX: Add the tests to fast feedback Andrzej Turko
@ 2021-08-09 14:15 ` Patchwork
2021-08-09 16:51 ` [igt-dev] ✗ GitLab.Pipeline: warning " Patchwork
3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2021-08-09 14:15 UTC (permalink / raw)
To: Andrzej Turko; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 13121 bytes --]
== Series Details ==
Series: Keep tests working without relocations (rev8)
URL : https://patchwork.freedesktop.org/series/90049/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_10460 -> IGTPW_6101
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_6101 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_6101, 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_6101/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_6101:
### IGT changes ###
#### Possible regressions ####
* {igt@gem_streaming_writes@batch-cpu} (NEW):
- {fi-jsl-1}: NOTRUN -> [TIMEOUT][1] +10 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-jsl-1/igt@gem_streaming_writes@batch-cpu.html
- fi-rkl-guc: NOTRUN -> [TIMEOUT][2] +10 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-rkl-guc/igt@gem_streaming_writes@batch-cpu.html
- fi-cml-u2: NOTRUN -> [TIMEOUT][3] +10 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-cml-u2/igt@gem_streaming_writes@batch-cpu.html
* {igt@gem_streaming_writes@batch-gtt} (NEW):
- {fi-ehl-2}: NOTRUN -> [TIMEOUT][4] +10 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-ehl-2/igt@gem_streaming_writes@batch-gtt.html
- fi-rkl-11600: NOTRUN -> [TIMEOUT][5] +10 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-rkl-11600/igt@gem_streaming_writes@batch-gtt.html
- {fi-hsw-gt1}: NOTRUN -> [TIMEOUT][6] +10 similar issues
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-hsw-gt1/igt@gem_streaming_writes@batch-gtt.html
* {igt@gem_streaming_writes@batch-reverse-cpu} (NEW):
- fi-kbl-soraka: NOTRUN -> [TIMEOUT][7] +10 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-kbl-soraka/igt@gem_streaming_writes@batch-reverse-cpu.html
* {igt@gem_streaming_writes@batch-reverse-gtt} (NEW):
- fi-kbl-guc: NOTRUN -> [TIMEOUT][8] +10 similar issues
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-kbl-guc/igt@gem_streaming_writes@batch-reverse-gtt.html
- fi-icl-y: NOTRUN -> [TIMEOUT][9] +10 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-icl-y/igt@gem_streaming_writes@batch-reverse-gtt.html
- fi-bdw-gvtdvm: NOTRUN -> [TIMEOUT][10] +9 similar issues
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-bdw-gvtdvm/igt@gem_streaming_writes@batch-reverse-gtt.html
- fi-kbl-7500u: NOTRUN -> [TIMEOUT][11] +10 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-kbl-7500u/igt@gem_streaming_writes@batch-reverse-gtt.html
- fi-icl-u2: NOTRUN -> [TIMEOUT][12] +10 similar issues
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-icl-u2/igt@gem_streaming_writes@batch-reverse-gtt.html
- {fi-tgl-dsi}: NOTRUN -> [TIMEOUT][13] +10 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-tgl-dsi/igt@gem_streaming_writes@batch-reverse-gtt.html
- fi-cfl-8700k: NOTRUN -> [TIMEOUT][14] +10 similar issues
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-cfl-8700k/igt@gem_streaming_writes@batch-reverse-gtt.html
- fi-apl-guc: NOTRUN -> [TIMEOUT][15] +9 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-apl-guc/igt@gem_streaming_writes@batch-reverse-gtt.html
- fi-snb-2520m: NOTRUN -> [TIMEOUT][16] +10 similar issues
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-snb-2520m/igt@gem_streaming_writes@batch-reverse-gtt.html
* {igt@gem_streaming_writes@batch-reverse-wc} (NEW):
- fi-tgl-1115g4: NOTRUN -> [TIMEOUT][17] +10 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-tgl-1115g4/igt@gem_streaming_writes@batch-reverse-wc.html
- fi-bxt-dsi: NOTRUN -> [TIMEOUT][18] +9 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-bxt-dsi/igt@gem_streaming_writes@batch-reverse-wc.html
- fi-hsw-4770: NOTRUN -> [TIMEOUT][19] +10 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-hsw-4770/igt@gem_streaming_writes@batch-reverse-wc.html
* {igt@gem_streaming_writes@batch-wc} (NEW):
- fi-skl-6700k2: NOTRUN -> [TIMEOUT][20] +10 similar issues
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-skl-6700k2/igt@gem_streaming_writes@batch-wc.html
- fi-ivb-3770: NOTRUN -> [TIMEOUT][21] +10 similar issues
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-ivb-3770/igt@gem_streaming_writes@batch-wc.html
* {igt@gem_streaming_writes@cpu} (NEW):
- fi-bsw-kefka: NOTRUN -> [TIMEOUT][22] +9 similar issues
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-bsw-kefka/igt@gem_streaming_writes@cpu.html
- fi-cfl-guc: NOTRUN -> [TIMEOUT][23] +10 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-cfl-guc/igt@gem_streaming_writes@cpu.html
* {igt@gem_streaming_writes@cpu-sync} (NEW):
- fi-cfl-8109u: NOTRUN -> [TIMEOUT][24] +10 similar issues
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-cfl-8109u/igt@gem_streaming_writes@cpu-sync.html
* {igt@gem_streaming_writes@gtt} (NEW):
- fi-glk-dsi: NOTRUN -> [TIMEOUT][25] +9 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-glk-dsi/igt@gem_streaming_writes@gtt.html
- fi-bsw-nick: NOTRUN -> [TIMEOUT][26] +7 similar issues
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-bsw-nick/igt@gem_streaming_writes@gtt.html
- fi-kbl-8809g: NOTRUN -> [TIMEOUT][27] +10 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-kbl-8809g/igt@gem_streaming_writes@gtt.html
- fi-bwr-2160: NOTRUN -> [TIMEOUT][28] +7 similar issues
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-bwr-2160/igt@gem_streaming_writes@gtt.html
- fi-kbl-7567u: NOTRUN -> [TIMEOUT][29] +10 similar issues
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-kbl-7567u/igt@gem_streaming_writes@gtt.html
- fi-skl-guc: NOTRUN -> [TIMEOUT][30] +10 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-skl-guc/igt@gem_streaming_writes@gtt.html
* {igt@gem_streaming_writes@gtt-sync} (NEW):
- fi-elk-e7500: NOTRUN -> [TIMEOUT][31] +9 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-elk-e7500/igt@gem_streaming_writes@gtt-sync.html
* {igt@gem_streaming_writes@wc-sync} (NEW):
- fi-ilk-650: NOTRUN -> [TIMEOUT][32] +9 similar issues
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-ilk-650/igt@gem_streaming_writes@wc-sync.html
- fi-pnv-d510: NOTRUN -> [TIMEOUT][33] +9 similar issues
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-pnv-d510/igt@gem_streaming_writes@wc-sync.html
* igt@meta_test@fail-result (NEW):
- fi-apl-guc: NOTRUN -> [FAIL][34]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-apl-guc/igt@meta_test@fail-result.html
- fi-bxt-dsi: NOTRUN -> [FAIL][35]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-bxt-dsi/igt@meta_test@fail-result.html
- fi-glk-dsi: NOTRUN -> [FAIL][36]
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-glk-dsi/igt@meta_test@fail-result.html
- fi-bwr-2160: NOTRUN -> [FAIL][37]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-bwr-2160/igt@meta_test@fail-result.html
New tests
---------
New tests have been introduced between CI_DRM_10460 and IGTPW_6101:
### New IGT tests (13) ###
* igt@gem_streaming_writes@batch-cpu:
- Statuses : 1 fail(s) 9 skip(s) 24 timeout(s)
- Exec time: [0.00, 121.29] s
* igt@gem_streaming_writes@batch-gtt:
- Statuses : 1 fail(s) 33 timeout(s)
- Exec time: [0.01, 121.51] s
* igt@gem_streaming_writes@batch-reverse-cpu:
- Statuses : 1 fail(s) 9 skip(s) 24 timeout(s)
- Exec time: [0.00, 121.47] s
* igt@gem_streaming_writes@batch-reverse-gtt:
- Statuses : 1 fail(s) 33 timeout(s)
- Exec time: [0.01, 121.48] s
* igt@gem_streaming_writes@batch-reverse-wc:
- Statuses : 1 fail(s) 33 timeout(s)
- Exec time: [0.01, 121.51] s
* igt@gem_streaming_writes@batch-wc:
- Statuses : 1 fail(s) 33 timeout(s)
- Exec time: [0.01, 122.13] s
* igt@gem_streaming_writes@cpu:
- Statuses : 2 skip(s) 32 timeout(s)
- Exec time: [0.0, 121.57] s
* igt@gem_streaming_writes@cpu-sync:
- Statuses : 2 skip(s) 32 timeout(s)
- Exec time: [0.0, 121.91] s
* igt@gem_streaming_writes@gtt:
- Statuses : 1 fail(s) 33 timeout(s)
- Exec time: [0.01, 121.72] s
* igt@gem_streaming_writes@gtt-sync:
- Statuses : 1 fail(s) 33 timeout(s)
- Exec time: [0.01, 121.78] s
* igt@gem_streaming_writes@wc:
- Statuses : 1 fail(s) 31 timeout(s)
- Exec time: [0.01, 120.94] s
* igt@gem_streaming_writes@wc-sync:
- Statuses : 1 fail(s) 8 timeout(s)
- Exec time: [0.01, 121.39] s
* igt@meta_test@fail-result:
- Statuses : 5 fail(s)
- Exec time: [0.00, 0.03] s
Known issues
------------
Here are the changes found in IGTPW_6101 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@amdgpu/amd_cs_nop@nop-gfx0:
- fi-apl-guc: NOTRUN -> [SKIP][38] ([fdo#109271]) +19 similar issues
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-apl-guc/igt@amdgpu/amd_cs_nop@nop-gfx0.html
* {igt@gem_streaming_writes@batch-cpu} (NEW):
- fi-bwr-2160: NOTRUN -> [SKIP][39] ([fdo#109271]) +3 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-bwr-2160/igt@gem_streaming_writes@batch-cpu.html
- fi-glk-dsi: NOTRUN -> [SKIP][40] ([fdo#109271]) +1 similar issue
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-glk-dsi/igt@gem_streaming_writes@batch-cpu.html
- fi-bsw-kefka: NOTRUN -> [SKIP][41] ([fdo#109271]) +1 similar issue
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-bsw-kefka/igt@gem_streaming_writes@batch-cpu.html
- fi-pnv-d510: NOTRUN -> [SKIP][42] ([fdo#109271]) +1 similar issue
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-pnv-d510/igt@gem_streaming_writes@batch-cpu.html
* {igt@gem_streaming_writes@batch-reverse-cpu} (NEW):
- fi-bsw-nick: NOTRUN -> [SKIP][43] ([fdo#109271]) +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-bsw-nick/igt@gem_streaming_writes@batch-reverse-cpu.html
- fi-bxt-dsi: NOTRUN -> [SKIP][44] ([fdo#109271]) +1 similar issue
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-bxt-dsi/igt@gem_streaming_writes@batch-reverse-cpu.html
- fi-ilk-650: NOTRUN -> [SKIP][45] ([fdo#109271]) +1 similar issue
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-ilk-650/igt@gem_streaming_writes@batch-reverse-cpu.html
- fi-elk-e7500: NOTRUN -> [SKIP][46] ([fdo#109271]) +1 similar issue
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-elk-e7500/igt@gem_streaming_writes@batch-reverse-cpu.html
* {igt@gem_streaming_writes@cpu-sync} (NEW):
- {fi-dg1-1}: NOTRUN -> [SKIP][47] ([i915#3717]) +1 similar issue
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-dg1-1/igt@gem_streaming_writes@cpu-sync.html
* {igt@gem_streaming_writes@gtt-sync} (NEW):
- {fi-dg1-1}: NOTRUN -> [FAIL][48] ([i915#3717]) +10 similar issues
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/fi-dg1-1/igt@gem_streaming_writes@gtt-sync.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
[i915#3717]: https://gitlab.freedesktop.org/drm/intel/issues/3717
Participating hosts (37 -> 34)
------------------------------
Missing (3): fi-bdw-samus fi-bsw-cyan bat-jsl-1
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_6163 -> IGTPW_6101
CI-20190529: 20190529
CI_DRM_10460: 933d74e4ff60d39ff929b26780dca84412551174 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_6101: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/index.html
IGT_6163: 9f9d82df8c8e68c304e84aba717a9937b65e10e6 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6101/index.html
[-- Attachment #2: Type: text/html, Size: 15726 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] ✗ GitLab.Pipeline: warning for Keep tests working without relocations (rev8)
2021-08-09 13:20 [igt-dev] [PATCH i-g-t 0/2] Keep tests working without relocations Andrzej Turko
` (2 preceding siblings ...)
2021-08-09 14:15 ` [igt-dev] ✗ Fi.CI.BAT: failure for Keep tests working without relocations (rev8) Patchwork
@ 2021-08-09 16:51 ` Patchwork
3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2021-08-09 16:51 UTC (permalink / raw)
To: Andrzej Turko; +Cc: igt-dev
== Series Details ==
Series: Keep tests working without relocations (rev8)
URL : https://patchwork.freedesktop.org/series/90049/
State : warning
== Summary ==
Pipeline status: FAILED.
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/377806 for the overview.
test:ninja-test has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/12626785):
298/305 assembler test/rndd OK 0.02 s
299/305 assembler test/rndu OK 0.02 s
300/305 assembler test/rnde OK 0.01 s
301/305 assembler test/rnde-intsrc OK 0.02 s
302/305 assembler test/rndz OK 0.02 s
303/305 assembler test/lzd OK 0.01 s
304/305 assembler test/not OK 0.02 s
305/305 assembler test/immediate OK 0.01 s
Ok: 280
Expected Fail: 0
Fail: 0
Unexpected Pass: 0
Skipped: 0
Timeout: 25
Full log written to /builds/gfx-ci/igt-ci-tags/build/meson-logs/testlog.txt
section_end:1628527723:step_script
ERROR: Job failed: execution took longer than 1h0m0s seconds
test:ninja-test-arm64 has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/12626787):
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 112, in run
return options.run_func(options)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 805, in run
return th.doit()
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 555, in doit
self.run_tests(tests)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 715, in run_tests
self.drain_futures(futures)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 732, in drain_futures
self.print_stats(numlen, tests, name, result.result(), i)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 505, in print_stats
result_str += "\n\n" + result.get_log()
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 178, in get_log
res += self.stde
TypeError: can only concatenate str (not "bytes") to str
1/291 lib igt_assert TIMEOUT 32.09 s
section_end:1628527728:step_script
ERROR: Job failed: execution took longer than 1h0m0s seconds
test:ninja-test-armhf has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/12626788):
1/291 lib igt_assert TIMEOUT 32.08 s
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 112, in run
return options.run_func(options)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 805, in run
return th.doit()
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 555, in doit
self.run_tests(tests)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 715, in run_tests
self.drain_futures(futures)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 732, in drain_futures
self.print_stats(numlen, tests, name, result.result(), i)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 505, in print_stats
result_str += "\n\n" + result.get_log()
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 178, in get_log
res += self.stde
TypeError: can only concatenate str (not "bytes") to str
section_end:1628527729:step_script
ERROR: Job failed: execution took longer than 1h0m0s seconds
test:ninja-test-clang has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/12626786):
298/305 assembler test/rndd OK 0.01 s
299/305 assembler test/rndu OK 0.01 s
300/305 assembler test/rnde OK 0.01 s
301/305 assembler test/rnde-intsrc OK 0.02 s
302/305 assembler test/rndz OK 0.01 s
303/305 assembler test/lzd OK 0.02 s
304/305 assembler test/not OK 0.02 s
305/305 assembler test/immediate OK 0.01 s
Ok: 280
Expected Fail: 0
Fail: 0
Unexpected Pass: 0
Skipped: 0
Timeout: 25
Full log written to /builds/gfx-ci/igt-ci-tags/build/meson-logs/testlog.txt
section_end:1628527728:step_script
ERROR: Job failed: execution took longer than 1h0m0s seconds
test:ninja-test-mips has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/12626789):
1/291 lib igt_assert TIMEOUT 32.03 s
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py", line 112, in run
return options.run_func(options)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 805, in run
return th.doit()
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 555, in doit
self.run_tests(tests)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 715, in run_tests
self.drain_futures(futures)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 732, in drain_futures
self.print_stats(numlen, tests, name, result.result(), i)
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 505, in print_stats
result_str += "\n\n" + result.get_log()
File "/usr/lib/python3/dist-packages/mesonbuild/mtest.py", line 178, in get_log
res += self.stde
TypeError: can only concatenate str (not "bytes") to str
section_end:1628527729:step_script
ERROR: Job failed: execution took longer than 1h0m0s seconds
== Logs ==
For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/377806
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_streaming_writes: Support gens without relocations
2021-08-09 13:20 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_streaming_writes: Support gens " Andrzej Turko
@ 2021-08-10 7:09 ` Zbigniew Kempczyński
0 siblings, 0 replies; 7+ messages in thread
From: Zbigniew Kempczyński @ 2021-08-10 7:09 UTC (permalink / raw)
To: Andrzej Turko; +Cc: igt-dev
On Mon, Aug 09, 2021 at 03:20:25PM +0200, Andrzej Turko wrote:
> Use softpin to completely avoid relocations on generations
> which do not support them.
>
> Signed-off-by: Andrzej Turko <andrzej.turko@linux.intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> ---
> tests/i915/gem_streaming_writes.c | 109 +++++++++++++++++-------------
> 1 file changed, 62 insertions(+), 47 deletions(-)
>
> diff --git a/tests/i915/gem_streaming_writes.c b/tests/i915/gem_streaming_writes.c
> index c104792bd..ce82d8823 100644
> --- a/tests/i915/gem_streaming_writes.c
> +++ b/tests/i915/gem_streaming_writes.c
> @@ -62,7 +62,8 @@ IGT_TEST_DESCRIPTION("Test of streaming writes into active GPU sources");
>
> static void test_streaming(int fd, int mode, int sync)
> {
> - const int has_64bit_reloc = intel_gen(intel_get_drm_devid(fd)) >= 8;
> + const bool has_64bit_addr = intel_gen(intel_get_drm_devid(fd)) >= 8;
> + const bool do_relocs = gem_has_relocations(fd);
> struct drm_i915_gem_execbuffer2 execbuf;
> struct drm_i915_gem_exec_object2 exec[3];
> struct drm_i915_gem_relocation_entry reloc[128];
> @@ -112,30 +113,35 @@ static void test_streaming(int fd, int mode, int sync)
> __src_offset = src_offset;
> __dst_offset = dst_offset;
>
> - memset(reloc, 0, sizeof(reloc));
> - for (i = 0; i < 64; i++) {
> - reloc[2*i+0].offset = 64*i + 4 * sizeof(uint32_t);
> - reloc[2*i+0].delta = 0;
> - reloc[2*i+0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
> - reloc[2*i+0].presumed_offset = dst_offset;
> - reloc[2*i+0].read_domains = I915_GEM_DOMAIN_RENDER;
> - reloc[2*i+0].write_domain = I915_GEM_DOMAIN_RENDER;
> -
> - reloc[2*i+1].offset = 64*i + 7 * sizeof(uint32_t);
> - if (has_64bit_reloc)
> - reloc[2*i+1].offset += sizeof(uint32_t);
> - reloc[2*i+1].delta = 0;
> - reloc[2*i+1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
> - reloc[2*i+1].presumed_offset = src_offset;
> - reloc[2*i+1].read_domains = I915_GEM_DOMAIN_RENDER;
> - reloc[2*i+1].write_domain = 0;
> - }
> gem_execbuf(fd, &execbuf);
> igt_assert_eq_u64(__src_offset, src_offset);
> igt_assert_eq_u64(__dst_offset, dst_offset);
>
> exec[DST].flags = EXEC_OBJECT_WRITE;
> - exec[BATCH].relocation_count = 2;
> + if (do_relocs) {
> + memset(reloc, 0, sizeof(reloc));
> + for (i = 0; i < 64; i++) {
> + reloc[2*i+0].offset = 64*i + 4 * sizeof(uint32_t);
> + reloc[2*i+0].delta = 0;
> + reloc[2*i+0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
> + reloc[2*i+0].presumed_offset = dst_offset;
> + reloc[2*i+0].read_domains = I915_GEM_DOMAIN_RENDER;
> + reloc[2*i+0].write_domain = I915_GEM_DOMAIN_RENDER;
> +
> + reloc[2*i+1].offset = 64*i + 7 * sizeof(uint32_t);
> + if (has_64bit_addr)
> + reloc[2*i+1].offset += sizeof(uint32_t);
> + reloc[2*i+1].delta = 0;
> + reloc[2*i+1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
> + reloc[2*i+1].presumed_offset = src_offset;
> + reloc[2*i+1].read_domains = I915_GEM_DOMAIN_RENDER;
> + reloc[2*i+1].write_domain = 0;
> + }
> + exec[BATCH].relocation_count = 2;
> + } else {
> + exec[DST].flags |= EXEC_OBJECT_PINNED;
> + exec[SRC].flags = EXEC_OBJECT_PINNED;
> + }
> execbuf.buffer_count = 3;
> execbuf.flags |= I915_EXEC_NO_RELOC;
> if (gem_has_blt(fd))
> @@ -159,19 +165,19 @@ static void test_streaming(int fd, int mode, int sync)
> int k = 0;
>
> b[k] = COPY_BLT_CMD | BLT_WRITE_ARGB;
> - if (has_64bit_reloc)
> + if (has_64bit_addr)
> b[k] += 2;
> k++;
> b[k++] = 0xcc << 16 | 1 << 25 | 1 << 24 | 4096;
> b[k++] = (y << 16) | x;
> b[k++] = ((y+1) << 16) | (x + (CHUNK_SIZE >> 2));
> b[k++] = dst_offset;
> - if (has_64bit_reloc)
> + if (has_64bit_addr)
> b[k++] = dst_offset >> 32;
> b[k++] = (y << 16) | x;
> b[k++] = 4096;
> b[k++] = src_offset;
> - if (has_64bit_reloc)
> + if (has_64bit_addr)
> b[k++] = src_offset >> 32;
> b[k++] = MI_BATCH_BUFFER_END;
>
> @@ -205,7 +211,8 @@ static void test_streaming(int fd, int mode, int sync)
>
> b = offset / CHUNK_SIZE / 64;
> n = offset / CHUNK_SIZE % 64;
> - exec[BATCH].relocs_ptr = to_user_pointer((reloc + 2*n));
> + if (do_relocs)
> + exec[BATCH].relocs_ptr = to_user_pointer((reloc + 2*n));
> exec[BATCH].handle = batch[b].handle;
> exec[BATCH].offset = batch[b].offset;
> execbuf.batch_start_offset = 64*n;
> @@ -234,7 +241,8 @@ static void test_streaming(int fd, int mode, int sync)
>
> static void test_batch(int fd, int mode, int reverse)
> {
> - const int has_64bit_reloc = intel_gen(intel_get_drm_devid(fd)) >= 8;
> + const bool has_64bit_addr = intel_gen(intel_get_drm_devid(fd)) >= 8;
> + const bool do_relocs = gem_has_relocations(fd);
> struct drm_i915_gem_execbuffer2 execbuf;
> struct drm_i915_gem_exec_object2 exec[3];
> struct drm_i915_gem_relocation_entry reloc[2];
> @@ -254,26 +262,28 @@ static void test_batch(int fd, int mode, int reverse)
>
> d = gem_mmap__cpu(fd, dst, 0, OBJECT_SIZE, PROT_READ);
>
> - memset(reloc, 0, sizeof(reloc));
> - reloc[0].offset = 4 * sizeof(uint32_t);
> - reloc[0].delta = 0;
> - reloc[0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
> - reloc[0].presumed_offset = dst_offset;
> - reloc[0].read_domains = I915_GEM_DOMAIN_RENDER;
> - reloc[0].write_domain = I915_GEM_DOMAIN_RENDER;
> -
> - reloc[1].offset = 7 * sizeof(uint32_t);
> - if (has_64bit_reloc)
> - reloc[1].offset += sizeof(uint32_t);
> - reloc[1].delta = 0;
> - reloc[1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
> - reloc[1].presumed_offset = src_offset;
> - reloc[1].read_domains = I915_GEM_DOMAIN_RENDER;
> - reloc[1].write_domain = 0;
> -
> + if (do_relocs) {
> + memset(reloc, 0, sizeof(reloc));
> + reloc[0].offset = 4 * sizeof(uint32_t);
> + reloc[0].delta = 0;
> + reloc[0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
> + reloc[0].presumed_offset = dst_offset;
> + reloc[0].read_domains = I915_GEM_DOMAIN_RENDER;
> + reloc[0].write_domain = I915_GEM_DOMAIN_RENDER;
> +
> + reloc[1].offset = 7 * sizeof(uint32_t);
> + if (has_64bit_addr)
> + reloc[1].offset += sizeof(uint32_t);
> + reloc[1].delta = 0;
> + reloc[1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
> + reloc[1].presumed_offset = src_offset;
> + reloc[1].read_domains = I915_GEM_DOMAIN_RENDER;
> + reloc[1].write_domain = 0;
> +
> + exec[BATCH].relocs_ptr = to_user_pointer(reloc);
> + exec[BATCH].relocation_count = 2;
> + }
> batch_size = ALIGN(OBJECT_SIZE / CHUNK_SIZE * 128, 4096);
> - exec[BATCH].relocs_ptr = to_user_pointer(reloc);
> - exec[BATCH].relocation_count = 2;
> exec[BATCH].handle = gem_create(fd, batch_size);
>
> switch (mode) {
> @@ -308,8 +318,13 @@ static void test_batch(int fd, int mode, int reverse)
> exec[DST].flags = EXEC_OBJECT_WRITE;
> /* We assume that the active objects are fixed to avoid relocations */
> exec[BATCH].relocation_count = 0;
> + exec[BATCH].relocs_ptr = 0;
> __src_offset = src_offset;
> __dst_offset = dst_offset;
> + if (!do_relocs) {
> + exec[DST].flags |= EXEC_OBJECT_PINNED;
> + exec[SRC].flags = EXEC_OBJECT_PINNED;
> + }
>
> offset = mode ? I915_GEM_DOMAIN_GTT : I915_GEM_DOMAIN_CPU;
> gem_set_domain(fd, exec[BATCH].handle, offset, offset);
> @@ -334,19 +349,19 @@ static void test_batch(int fd, int mode, int reverse)
> k = execbuf.batch_start_offset / 4;
>
> base[k] = COPY_BLT_CMD | BLT_WRITE_ARGB;
> - if (has_64bit_reloc)
> + if (has_64bit_addr)
> base[k] += 2;
> k++;
> base[k++] = 0xcc << 16 | 1 << 25 | 1 << 24 | 4096;
> base[k++] = (y << 16) | x;
> base[k++] = ((y+1) << 16) | (x + (CHUNK_SIZE >> 2));
> base[k++] = dst_offset;
> - if (has_64bit_reloc)
> + if (has_64bit_addr)
> base[k++] = dst_offset >> 32;
> base[k++] = (y << 16) | x;
> base[k++] = 4096;
> base[k++] = src_offset;
> - if (has_64bit_reloc)
> + if (has_64bit_addr)
> base[k++] = src_offset >> 32;
> base[k++] = MI_BATCH_BUFFER_END;
>
> --
> 2.25.1
>
Code looks ok so it should handle softpin properly. Only check I need to add
before merge is to check mappable aperture - test won't run on discrete due
to lack of gtt mapping. Anyway:
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
--
Zbigniew
^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_streaming_writes: Support gens without relocations
2021-08-03 7:38 [igt-dev] [PATCH i-g-t 0/2] Keep tests working without relocations 2 Andrzej Turko
@ 2021-08-03 7:38 ` Andrzej Turko
0 siblings, 0 replies; 7+ messages in thread
From: Andrzej Turko @ 2021-08-03 7:38 UTC (permalink / raw)
To: igt-dev; +Cc: Andrzej Turko, Zbigniew Kempczyński
Use the allocator to assign offsets to gem objects.
This allows to completely avoid relocations which
is necessary on newer generations.
Signed-off-by: Andrzej Turko <andrzej.turko@linux.intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
tests/i915/gem_streaming_writes.c | 151 ++++++++++++++++++++----------
1 file changed, 100 insertions(+), 51 deletions(-)
diff --git a/tests/i915/gem_streaming_writes.c b/tests/i915/gem_streaming_writes.c
index c104792bd..806f8ba72 100644
--- a/tests/i915/gem_streaming_writes.c
+++ b/tests/i915/gem_streaming_writes.c
@@ -41,6 +41,7 @@
#include "i915/gem_create.h"
#include "igt.h"
+#define ALIGNMENT (1 << 24)
#define OBJECT_SIZE 1024*1024
#define CHUNK_SIZE 32
@@ -62,12 +63,13 @@ IGT_TEST_DESCRIPTION("Test of streaming writes into active GPU sources");
static void test_streaming(int fd, int mode, int sync)
{
- const int has_64bit_reloc = intel_gen(intel_get_drm_devid(fd)) >= 8;
+ const bool has_64bit_addresses = intel_gen(intel_get_drm_devid(fd)) >= 8;
+ const bool do_relocs = gem_has_relocations(fd);
struct drm_i915_gem_execbuffer2 execbuf;
struct drm_i915_gem_exec_object2 exec[3];
struct drm_i915_gem_relocation_entry reloc[128];
uint32_t tmp[] = { MI_BATCH_BUFFER_END };
- uint64_t __src_offset, __dst_offset;
+ uint64_t __src_offset, __dst_offset, ahnd;
uint32_t *s, *d;
uint32_t offset;
struct {
@@ -76,9 +78,19 @@ static void test_streaming(int fd, int mode, int sync)
} *batch;
int i, n;
+ ahnd = intel_allocator_open(fd, 0, INTEL_ALLOCATOR_SIMPLE);
+
memset(exec, 0, sizeof(exec));
exec[SRC].handle = gem_create(fd, OBJECT_SIZE);
+ exec[SRC].offset = intel_allocator_alloc(ahnd, exec[SRC].handle,
+ OBJECT_SIZE, ALIGNMENT);
+ exec[SRC].offset = CANONICAL(exec[SRC].offset);
+ exec[SRC].flags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
exec[DST].handle = gem_create(fd, OBJECT_SIZE);
+ exec[DST].offset = intel_allocator_alloc(ahnd, exec[DST].handle,
+ OBJECT_SIZE, ALIGNMENT);
+ exec[DST].offset = CANONICAL(exec[DST].offset);
+ exec[DST].flags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
switch (mode) {
case 0: /* cpu/snoop */
@@ -112,30 +124,37 @@ static void test_streaming(int fd, int mode, int sync)
__src_offset = src_offset;
__dst_offset = dst_offset;
- memset(reloc, 0, sizeof(reloc));
- for (i = 0; i < 64; i++) {
- reloc[2*i+0].offset = 64*i + 4 * sizeof(uint32_t);
- reloc[2*i+0].delta = 0;
- reloc[2*i+0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
- reloc[2*i+0].presumed_offset = dst_offset;
- reloc[2*i+0].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[2*i+0].write_domain = I915_GEM_DOMAIN_RENDER;
-
- reloc[2*i+1].offset = 64*i + 7 * sizeof(uint32_t);
- if (has_64bit_reloc)
- reloc[2*i+1].offset += sizeof(uint32_t);
- reloc[2*i+1].delta = 0;
- reloc[2*i+1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
- reloc[2*i+1].presumed_offset = src_offset;
- reloc[2*i+1].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[2*i+1].write_domain = 0;
+ if (do_relocs) {
+ memset(reloc, 0, sizeof(reloc));
+ for (i = 0; i < 64; i++) {
+ reloc[2*i+0].offset = 64*i + 4 * sizeof(uint32_t);
+ reloc[2*i+0].delta = 0;
+ reloc[2*i+0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
+ reloc[2*i+0].presumed_offset = dst_offset;
+ reloc[2*i+0].read_domains = I915_GEM_DOMAIN_RENDER;
+ reloc[2*i+0].write_domain = I915_GEM_DOMAIN_RENDER;
+
+ reloc[2*i+1].offset = 64*i + 7 * sizeof(uint32_t);
+ if (has_64bit_addresses)
+ reloc[2*i+1].offset += sizeof(uint32_t);
+ reloc[2*i+1].delta = 0;
+ reloc[2*i+1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
+ reloc[2*i+1].presumed_offset = src_offset;
+ reloc[2*i+1].read_domains = I915_GEM_DOMAIN_RENDER;
+ reloc[2*i+1].write_domain = 0;
+ }
}
gem_execbuf(fd, &execbuf);
igt_assert_eq_u64(__src_offset, src_offset);
igt_assert_eq_u64(__dst_offset, dst_offset);
- exec[DST].flags = EXEC_OBJECT_WRITE;
- exec[BATCH].relocation_count = 2;
+ if (do_relocs) {
+ exec[DST].flags |= EXEC_OBJECT_WRITE;
+ exec[BATCH].relocation_count = 2;
+ } else {
+ exec[SRC].flags |= EXEC_OBJECT_PINNED;
+ exec[DST].flags |= EXEC_OBJECT_PINNED | EXEC_OBJECT_WRITE;
+ }
execbuf.buffer_count = 3;
execbuf.flags |= I915_EXEC_NO_RELOC;
if (gem_has_blt(fd))
@@ -146,7 +165,8 @@ static void test_streaming(int fd, int mode, int sync)
uint32_t *base;
batch[i].handle = gem_create(fd, 4096);
- batch[i].offset = 0;
+ batch[i].offset = intel_allocator_alloc(ahnd, batch[i].handle, 4096, ALIGNMENT);
+ batch[i].offset = CANONICAL(batch[i].offset);
base = gem_mmap__cpu(fd, batch[i].handle, 0, 4096, PROT_WRITE);
gem_set_domain(fd, batch[i].handle,
@@ -159,19 +179,19 @@ static void test_streaming(int fd, int mode, int sync)
int k = 0;
b[k] = COPY_BLT_CMD | BLT_WRITE_ARGB;
- if (has_64bit_reloc)
+ if (has_64bit_addresses)
b[k] += 2;
k++;
b[k++] = 0xcc << 16 | 1 << 25 | 1 << 24 | 4096;
b[k++] = (y << 16) | x;
b[k++] = ((y+1) << 16) | (x + (CHUNK_SIZE >> 2));
b[k++] = dst_offset;
- if (has_64bit_reloc)
+ if (has_64bit_addresses)
b[k++] = dst_offset >> 32;
b[k++] = (y << 16) | x;
b[k++] = 4096;
b[k++] = src_offset;
- if (has_64bit_reloc)
+ if (has_64bit_addresses)
b[k++] = src_offset >> 32;
b[k++] = MI_BATCH_BUFFER_END;
@@ -205,10 +225,12 @@ static void test_streaming(int fd, int mode, int sync)
b = offset / CHUNK_SIZE / 64;
n = offset / CHUNK_SIZE % 64;
- exec[BATCH].relocs_ptr = to_user_pointer((reloc + 2*n));
exec[BATCH].handle = batch[b].handle;
exec[BATCH].offset = batch[b].offset;
+ exec[BATCH].flags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
execbuf.batch_start_offset = 64*n;
+ if (do_relocs)
+ exec[BATCH].relocs_ptr = to_user_pointer((reloc + 2*n));
gem_execbuf(fd, &execbuf);
igt_assert_eq_u64(__src_offset, src_offset);
@@ -230,51 +252,73 @@ static void test_streaming(int fd, int mode, int sync)
gem_close(fd, src);
munmap(d, OBJECT_SIZE);
gem_close(fd, dst);
+ intel_allocator_close(ahnd);
}
static void test_batch(int fd, int mode, int reverse)
{
- const int has_64bit_reloc = intel_gen(intel_get_drm_devid(fd)) >= 8;
+ const bool has_64bit_addresses = intel_gen(intel_get_drm_devid(fd)) >= 8;
+ const bool do_relocs = gem_has_relocations(fd);
struct drm_i915_gem_execbuffer2 execbuf;
struct drm_i915_gem_exec_object2 exec[3];
struct drm_i915_gem_relocation_entry reloc[2];
uint32_t tmp[] = { MI_BATCH_BUFFER_END };
uint64_t __src_offset, __dst_offset;
bool need_64b_start_offset = true;
- uint64_t batch_size;
+ uint64_t batch_size, ahnd;
uint32_t *s, *d;
uint32_t *base;
uint32_t offset;
+ ahnd = intel_allocator_open(fd, 0, INTEL_ALLOCATOR_SIMPLE);
+
memset(exec, 0, sizeof(exec));
exec[DST].handle = gem_create(fd, OBJECT_SIZE);
+ exec[DST].offset = intel_allocator_alloc(ahnd, exec[DST].handle,
+ OBJECT_SIZE, ALIGNMENT);
+ exec[DST].offset = CANONICAL(exec[DST].offset);
+ exec[DST].flags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
exec[SRC].handle = gem_create(fd, OBJECT_SIZE);
+ exec[SRC].offset = intel_allocator_alloc(ahnd, exec[SRC].handle,
+ OBJECT_SIZE, ALIGNMENT);
+ exec[SRC].offset = CANONICAL(exec[SRC].offset);
+ exec[SRC].flags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
s = gem_mmap__wc(fd, src, 0, OBJECT_SIZE, PROT_READ | PROT_WRITE);
d = gem_mmap__cpu(fd, dst, 0, OBJECT_SIZE, PROT_READ);
- memset(reloc, 0, sizeof(reloc));
- reloc[0].offset = 4 * sizeof(uint32_t);
- reloc[0].delta = 0;
- reloc[0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
- reloc[0].presumed_offset = dst_offset;
- reloc[0].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[0].write_domain = I915_GEM_DOMAIN_RENDER;
-
- reloc[1].offset = 7 * sizeof(uint32_t);
- if (has_64bit_reloc)
- reloc[1].offset += sizeof(uint32_t);
- reloc[1].delta = 0;
- reloc[1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
- reloc[1].presumed_offset = src_offset;
- reloc[1].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[1].write_domain = 0;
+ if (do_relocs) {
+ memset(reloc, 0, sizeof(reloc));
+ reloc[0].offset = 4 * sizeof(uint32_t);
+ reloc[0].delta = 0;
+ reloc[0].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? DST : dst;
+ reloc[0].presumed_offset = dst_offset;
+ reloc[0].read_domains = I915_GEM_DOMAIN_RENDER;
+ reloc[0].write_domain = I915_GEM_DOMAIN_RENDER;
+
+ reloc[1].offset = 7 * sizeof(uint32_t);
+ if (has_64bit_addresses)
+ reloc[1].offset += sizeof(uint32_t);
+ reloc[1].delta = 0;
+ reloc[1].target_handle = execbuf.flags & I915_EXEC_HANDLE_LUT ? SRC : src;
+ reloc[1].presumed_offset = src_offset;
+ reloc[1].read_domains = I915_GEM_DOMAIN_RENDER;
+ reloc[1].write_domain = 0;
+
+ exec[BATCH].relocs_ptr = to_user_pointer(reloc);
+ exec[BATCH].relocation_count = 2;
+ } else {
+ exec[DST].flags |= EXEC_OBJECT_WRITE | EXEC_OBJECT_PINNED;
+ exec[SRC].flags |= EXEC_OBJECT_PINNED;
+ }
batch_size = ALIGN(OBJECT_SIZE / CHUNK_SIZE * 128, 4096);
- exec[BATCH].relocs_ptr = to_user_pointer(reloc);
- exec[BATCH].relocation_count = 2;
exec[BATCH].handle = gem_create(fd, batch_size);
+ exec[BATCH].offset = intel_allocator_alloc(ahnd, exec[BATCH].handle,
+ batch_size, ALIGNMENT);
+ exec[BATCH].offset = CANONICAL(exec[BATCH].offset);
+ exec[BATCH].flags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
switch (mode) {
case 0: /* cpu/snoop */
@@ -304,10 +348,14 @@ static void test_batch(int fd, int mode, int reverse)
execbuf.flags &= ~I915_EXEC_HANDLE_LUT;
gem_execbuf(fd, &execbuf);
}
+ /* Even without softpinning we can reuse the offsets
+ * assigned by the driver and avoid relocations.
+ */
execbuf.flags |= I915_EXEC_NO_RELOC;
- exec[DST].flags = EXEC_OBJECT_WRITE;
- /* We assume that the active objects are fixed to avoid relocations */
+ exec[DST].flags |= EXEC_OBJECT_WRITE;
exec[BATCH].relocation_count = 0;
+ exec[BATCH].relocs_ptr = 0;
+
__src_offset = src_offset;
__dst_offset = dst_offset;
@@ -334,19 +382,19 @@ static void test_batch(int fd, int mode, int reverse)
k = execbuf.batch_start_offset / 4;
base[k] = COPY_BLT_CMD | BLT_WRITE_ARGB;
- if (has_64bit_reloc)
+ if (has_64bit_addresses)
base[k] += 2;
k++;
base[k++] = 0xcc << 16 | 1 << 25 | 1 << 24 | 4096;
base[k++] = (y << 16) | x;
base[k++] = ((y+1) << 16) | (x + (CHUNK_SIZE >> 2));
base[k++] = dst_offset;
- if (has_64bit_reloc)
+ if (has_64bit_addresses)
base[k++] = dst_offset >> 32;
base[k++] = (y << 16) | x;
base[k++] = 4096;
base[k++] = src_offset;
- if (has_64bit_reloc)
+ if (has_64bit_addresses)
base[k++] = src_offset >> 32;
base[k++] = MI_BATCH_BUFFER_END;
@@ -368,6 +416,7 @@ static void test_batch(int fd, int mode, int reverse)
gem_close(fd, src);
munmap(d, OBJECT_SIZE);
gem_close(fd, dst);
+ intel_allocator_close(ahnd);
}
igt_main
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-08-10 7:09 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-09 13:20 [igt-dev] [PATCH i-g-t 0/2] Keep tests working without relocations Andrzej Turko
2021-08-09 13:20 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_streaming_writes: Support gens " Andrzej Turko
2021-08-10 7:09 ` Zbigniew Kempczyński
2021-08-09 13:20 ` [igt-dev] [PATCH i-g-t 2/2] HAX: Add the tests to fast feedback Andrzej Turko
2021-08-09 14:15 ` [igt-dev] ✗ Fi.CI.BAT: failure for Keep tests working without relocations (rev8) Patchwork
2021-08-09 16:51 ` [igt-dev] ✗ GitLab.Pipeline: warning " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2021-08-03 7:38 [igt-dev] [PATCH i-g-t 0/2] Keep tests working without relocations 2 Andrzej Turko
2021-08-03 7:38 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_streaming_writes: Support gens without relocations Andrzej Turko
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.