[igt-dev] [RFC 4/4] tests/i915/prime_mmap: Add WC correctness test

Chris Wilson chris at chris-wilson.co.uk
Tue Mar 12 22:07:15 UTC 2019


Quoting Antonio Argenziano (2019-03-12 21:57:38)
> Signed-off-by: Antonio Argenziano <antonio.argenziano at intel.com>
> ---
>  tests/prime_mmap.c | 36 ++++++++++++++++++++++++++++++++++--
>  1 file changed, 34 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/prime_mmap.c b/tests/prime_mmap.c
> index fc985784..d3833f91 100644
> --- a/tests/prime_mmap.c
> +++ b/tests/prime_mmap.c
> @@ -73,7 +73,7 @@ fill_bo_cpu(char *ptr)
>  }
>  
>  static void
> -test_correct(void)
> +test_correct_gtt(void)
>  {
>         int dma_buf_fd;
>         char *ptr1, *ptr2;
> @@ -101,6 +101,37 @@ test_correct(void)
>         gem_close(fd, handle);
>  }
>  
> +static void
> +test_correct_wc(void)
> +{
> +       int dma_buf_fd;
> +       char *ptr1, *ptr2;
> +       uint32_t handle;
> +
> +       gem_require_mmap_wc(fd);
> +
> +       handle = gem_create(fd, BO_SIZE);
> +       fill_bo(handle, BO_SIZE);
> +
> +       dma_buf_fd = prime_handle_to_fd(fd, handle);
> +       igt_assert(errno == 0);
> +
> +       /* Check correctness vs WC mapping */
> +       ptr1 = gem_mmap__wc(fd, handle, 0, BO_SIZE, PROT_READ);
> +       ptr2 = mmap(NULL, BO_SIZE, PROT_READ, MAP_SHARED, dma_buf_fd, 0);

But both for read. Where's the write through one mmap, check it arrives
in the second.

memcmp(ptr1, ptr2) just reduces to
memcmp(ptr1, pattern) || memcmp(ptr2, pattern)

The fault handling in the kernel is no different between those two.
-Chris


More information about the igt-dev mailing list