All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.