Re: [PATCH 1/3] tests/gem_userptr_blits: Expanded userptr test cases

Chris Wilson
2014-03-05T14:48:10Z

On Wed, Feb 26, 2014 at 04:17:43PM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>
> A set of userptr test cases to support the new feature.
>
> For the eviction and swapping stress testing I have extracted
> some common behaviour from gem_evict_everything and made both
> test cases use it to avoid duplicating the code.
>
> Both unsynchronized and synchronized userptr objects are
> tested but the latter set of tests will be skipped if kernel
> is compiled without MMU_NOTIFIERS.
>
> Also, with 32-bit userspace swapping tests are skipped if
> the system has a lot more RAM than process address space.
> Forking swapping tests are not skipped since they can still
> trigger swapping by cumulative effect.
>
> v2:
> * Fixed dmabuf test.
> * Added test for rejecting read-only.
> * Fixed ioctl detection for latest kernel patch.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
> +static void
> +copy(int fd, uint32_t dst, uint32_t src, unsigned int error)
> +{
> + uint32_t batch[10];
> + struct drm_i915_gem_relocation_entry reloc[2];
> + struct drm_i915_gem_exec_object2 obj[3];
> + struct drm_i915_gem_execbuffer2 exec;
> + uint32_t handle;
> + int ret;
> +
> + batch[0] = XY_SRC_COPY_BLT_CMD |
> + XY_SRC_COPY_BLT_WRITE_ALPHA |
> + XY_SRC_COPY_BLT_WRITE_RGB | 6;

Hmm, you made blit() bdw-aware, but not this copy() routine?

As for the rest, I think we have good coverage.

What I would like to see exercised as well is mmap(fd), shm_open() and
sysv shmem.

Another thing to test is transfering our device fd over a unix socket to
another process and checking that we can continue to access the memory.
(That should just be the same as forking and continuing to use the
parent fd.)

I can think of more wacky vma to use, but I haven't thought of any
corner cases in the code that need exercising.
-Chris

--
Chris Wilson, Intel Open Source Technology Centre