[igt-dev] [PATCH i-g-t] igt/gem_mmap_gtt: Check for known incoherency before testing
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Fri Jul 20 15:39:12 UTC 2018
On 20/07/2018 09:07, Chris Wilson wrote:
> We test map_gtt coherency (whether or not a write via the mmap_gtt is
> immediately visible in the backing storage to a read via mmap_cpu) but
> we know that several platforms are inherently incorrect and require some
> form of hammer to workaround internal delays. These platforms break our
> ABI guarantees and so we report the change in ABI via a driver getparam.
>
> If we know the platform doesn't meet the ABI guarantee, skip the test.
> If it is meant to work, test!
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
> ---
> tests/gem_mmap_gtt.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/tests/gem_mmap_gtt.c b/tests/gem_mmap_gtt.c
> index c8a0bedec..f63535556 100644
> --- a/tests/gem_mmap_gtt.c
> +++ b/tests/gem_mmap_gtt.c
> @@ -309,6 +309,18 @@ test_write_gtt(int fd)
> munmap(src, OBJECT_SIZE);
> }
>
> +static bool is_coherent(int i915)
> +{
> + int val = 1; /* by default, we assume GTT is coherent, hence the test */
> + struct drm_i915_getparam gp = {
> + gp.param = 52, /* GTT_COHERENT */
> + gp.value = &val,
> + };
> +
> + ioctl(i915, DRM_IOCTL_I915_GETPARAM, &gp);
> + return val;
> +}
> +
> static void
> test_coherency(int fd)
> {
> @@ -316,6 +328,7 @@ test_coherency(int fd)
> uint32_t *gtt, *cpu;
> int i;
>
> + igt_require(is_coherent(fd));
> igt_require(igt_setup_clflush());
>
> handle = gem_create(fd, OBJECT_SIZE);
>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the igt-dev
mailing list