[Intel-gfx] [PATCH] tests/gem_userptr_blits: Expanded userptr test cases

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Thu Jan 30 10:20:38 CET 2014


Hi,

On 01/29/2014 08:11 PM, Daniel Vetter wrote:
> On Wed, Jan 29, 2014 at 01:30:54PM +0000, Tvrtko Ursulin wrote:
>> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>>
>> A set of userptr test cases to support the new feature.

[snip]

> Minor thing on patch style: I'd split this up into 3 parts:
> - Extraction of the helpers - always useful to shine a bit light onto new
>    helper stuff so other people also notice them.
> - The new testcase.
> - Removal of the old vmap testcase.

I was afraid someone will say that, but was hoping for a lower bar 
since, to quote what yourself say later in this mail, "is a bit evil, 
but this is a testuite ;-)". :)

Okay, I'll split it up.

> The other patch style thing are the helpers - the forking_eviction stuff
> doesn't really sound like a bit of helper code. igt_exchange_uint32_t
> certainly is, but the other stuff I'd just put into a common source file
> which is included by both tests. Yeah #include "common.c" is a bit evil,
> but this is a testsuite ;-) Or just copy&paste the code into the userptr
> test, which is the approach I'd have done.

It would be too  much c&p for my liking so I chose this route.

> Now for test coverage it sounds like this testcases here has been more
> than good enough to shake down the userptr implementation, so I think
> we're covered.
>
> But there is also basic interface coverage for sanity-checking and
> defending against evil userspace. For this case here I think we need:
>
> - Tests with un-aligned ptr/size.
> - Tests with invalid flags.

Above are already there as test_usage_restrictions and test_input_checking.

> - Basic nastiness of handing in an invalid pointer.

You mean trying to map something which doesn't exist in user address 
space? Any idea how to obtain such a pointer? Or just use zero?

> Then there's all the interactions with other gem interfaces:
> - pwrite/pread/set_tiling: Should probably all fail with -EINVAL or
>    something like that.

Ok.

> - dma-buf export/gem flink: should succeed.
> - But: dma-buf mapping for a foreign device should fail. This will be a
>    pain to test on Android since we don't have anything else really. I can
>    take that and do a test like the pile of prime_nv tests we have.

Flink is there in forking_evictions.

Dmabuf is something I know nothing at the moment so I'll have to look 
into it.

> - gtt mmaps: Theoretically works, but dunno whether it makes sense.

According to Chris not on all architectures, I have to find relevant 
documentation for that.

> - Anything esle I've forgotten?

Don't know, but thanks for your comments!

Regards,

Tvrtko




More information about the Intel-gfx mailing list