[igt-dev] [PATCH i-g-t] i915/gem_persistent_relocs: Manage the domain for the GGTT access

Chris Wilson chris at chris-wilson.co.uk
Wed Oct 16 18:56:42 UTC 2019


Since the GGTT fault will overlap with the pwrite access, there is no
implicit moment at which the kernel will automagically flush the backing
store. Userspace has to be explicit in its domain control, or do itself.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112037
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
 tests/i915/gem_persistent_relocs.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/i915/gem_persistent_relocs.c b/tests/i915/gem_persistent_relocs.c
index 2ab7091ad..20ee03027 100644
--- a/tests/i915/gem_persistent_relocs.c
+++ b/tests/i915/gem_persistent_relocs.c
@@ -224,8 +224,11 @@ static void do_test(int fd, bool faulting_reloc)
 
 		relocs_bo_handle[i] = gem_create(fd, 4096);
 		gem_write(fd, relocs_bo_handle[i], 0, reloc, sizeof(reloc));
+
 		gtt_relocs_ptr[i] = gem_mmap__gtt(fd, relocs_bo_handle[i], 4096,
 						  PROT_READ | PROT_WRITE);
+		gem_set_domain(fd, relocs_bo_handle[i],
+			       I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT);
 	}
 
 	/* repeat must be smaller than 4096/small_pitch */
-- 
2.23.0



More information about the igt-dev mailing list