diff options
author | Vinay Belgaumkar <vinay.belgaumkar@intel.com> | 2020-01-24 16:01:35 -0800 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2020-01-27 21:34:50 +0000 |
commit | b5a4fcb43909a7d1f0e9f358ed5b5ba8f3a98482 (patch) | |
tree | d5530aac7ba6fad741b7a0a65d4f716ab475decb /tests/i915/gem_mmap_wc.c | |
parent | 966c58649dee31bb5bf2fad92f75ffd365968b81 (diff) |
tests/i915/gem_mmap_wc: Skip gtt test if aperture is missing
Skip subtest on platforms that do not have mappable aperture.
v2: Skip the test_write_gtt as well when there is no aperture.
It seems like the purpose of this test was to mmap the buffer in
gtt even though it uses the incorrect mapping call. Until this
can be fixed, might be better to skip it. Also remove all subtests
that use run_without_prefault, since this debugfs is being removed.
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Ashutosh Dixit <ashutosh.dixit@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'tests/i915/gem_mmap_wc.c')
-rw-r--r-- | tests/i915/gem_mmap_wc.c | 61 |
1 files changed, 37 insertions, 24 deletions
diff --git a/tests/i915/gem_mmap_wc.c b/tests/i915/gem_mmap_wc.c index 375a9b50..f44b406d 100644 --- a/tests/i915/gem_mmap_wc.c +++ b/tests/i915/gem_mmap_wc.c @@ -253,19 +253,19 @@ test_coherency(int fd) } static void -test_write_gtt(int fd) +test_write_prefaulted(int fd) { uint32_t dst; - char *dst_gtt; + char *fault; void *src; dst = gem_create(fd, OBJECT_SIZE); set_domain(fd, dst); /* prefault object into gtt */ - dst_gtt = mmap_bo(fd, dst); - memset(dst_gtt, 0, OBJECT_SIZE); - munmap(dst_gtt, OBJECT_SIZE); + fault = mmap_bo(fd, dst); + memset(fault, 0, OBJECT_SIZE); + munmap(fault, OBJECT_SIZE); src = create_pointer(fd); @@ -337,6 +337,27 @@ test_write_gtt_read_wc(int fd) handle = gem_create(fd, OBJECT_SIZE); set_domain(fd, handle); + src = local_gem_mmap__wc(fd, handle, 0, OBJECT_SIZE, PROT_READ); + + dst = gem_mmap__gtt(fd, handle, OBJECT_SIZE, PROT_WRITE); + + memset(src, 0xaa, OBJECT_SIZE); + igt_assert(memcmp(dst, src, OBJECT_SIZE) == 0); + gem_close(fd, handle); + + munmap(src, OBJECT_SIZE); + munmap(dst, OBJECT_SIZE); +} + +static void +test_write_wc_read_gtt(int fd) +{ + uint32_t handle; + uint32_t *src, *dst; + + handle = gem_create(fd, OBJECT_SIZE); + set_domain(fd, handle); + dst = local_gem_mmap__wc(fd, handle, 0, OBJECT_SIZE, PROT_READ); src = gem_mmap__gtt(fd, handle, OBJECT_SIZE, PROT_WRITE); @@ -461,15 +482,6 @@ test_pf_nonblock(int i915) igt_spin_free(i915, spin); } -static void -run_without_prefault(int fd, - void (*func)(int fd)) -{ - igt_disable_prefault(); - func(fd); - igt_enable_prefault(); -} - static int mmap_ioctl(int i915, struct drm_i915_gem_mmap *arg) { int err = 0; @@ -577,8 +589,8 @@ igt_main test_write(fd); igt_subtest("coherency") test_coherency(fd); - igt_subtest("write-gtt") - test_write_gtt(fd); + igt_subtest("write-prefaulted") + test_write_prefaulted(fd); igt_subtest("read-write") test_read_write(fd, READ_BEFORE_WRITE); igt_subtest("write-read") @@ -589,18 +601,19 @@ igt_main test_read_write2(fd, READ_AFTER_WRITE); igt_subtest("fault-concurrent") test_fault_concurrent(fd); - igt_subtest("read-no-prefault") - run_without_prefault(fd, test_read); - igt_subtest("write-no-prefault") - run_without_prefault(fd, test_write); - igt_subtest("write-gtt-no-prefault") - run_without_prefault(fd, test_write_gtt); igt_subtest("write-cpu-read-wc") test_write_cpu_read_wc(fd, 1); igt_subtest("write-cpu-read-wc-unflushed") test_write_cpu_read_wc(fd, 0); - igt_subtest("write-gtt-read-wc") - test_write_gtt_read_wc(fd); + + igt_subtest_group { + igt_fixture gem_require_mappable_ggtt(fd); + igt_subtest("write-wc-read-gtt") + test_write_wc_read_gtt(fd); + igt_subtest("write-gtt-read-gtt") + test_write_gtt_read_wc(fd); + } + igt_subtest("pf-nonblock") test_pf_nonblock(fd); igt_subtest("set-cache-level") |