[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