Re: [PATCH i-g-t] tests/gem_softpin: New tests for softpin feature

Tvrtko Ursulin
2015-12-09T10:32:49Z

On 08/12/15 12:16, Tvrtko Ursulin wrote:
>
> On 08/12/15 11:57, Michel Thierry wrote:
>> From: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>>
>> These tests exercise the userptr ioctl to create shared buffers
>> between CPU and GPU. They contain error and normal usage scenarios.
>> They also contain a couple of stress tests which copy buffers between
>> CPU and GPU. These tests rely on the softpin patch in order to pin
>> buffers
>> to a certain VA.
>>
>> Caveat: These tests were designed to run on 64-bit system. Future work
>> includes adding logic to ensure these tests can run on 32-bit systems
>> with
>> PPGTT support. Some tests are currently disabled for 32-bit systems
>> for that
>> reason.
>>
>> v2: Added cc and signed-off-by fields
>>
>> v3: Fixed review comments, added helper functions. Removed userptr error
>> scenarios covered by existing userptr tests. Modified stress test to have
>> 100K buffers, it now runs for ~30 mins, checks every element has been
>> written
>> to correctly, and pins buffers at different VMAs.
>>
>> v4: Changed name to gem_softpin
>>
>> v5: More fixes. Removed the file based tests, will move them to
>> userptr tests.
>> Added a function that validates appropriate PPGTT support before
>> running tests.
>> Optimized stack space and memory footprint in stress test. Removed the
>> eviction
>> test, will add it back after verifying proper functionality.
>>
>> v6: Split basic test into userptr and bo
>> Fixed some coding style issues.
>>
>> v7: Enhanced invalid vma pinning test to verify 32-bit PPGTT
>> functionality.
>> Enabled the test for 32-bit PPGTT systems, and verify pinning fails above
>> 32-bit addresses. Enhanced the high adress pinning test to ensure pinning
>> fails when EXEC_OBJECT_PINNED flag is not used. Some more cosmetic
>> fixes to
>> close buffer handles. Changed userptr function to used synchronized
>> operations.
>>
>> v8: Minor change to high address pinning test as per comment.
>>
>> v9: Skip the tests if softpin support is not present.
>>
>> v10: Removed trailing white spaces.
>>
>> v11: Keep alphabetical order in Makefile and gitignore; update error code
>> returned while trying to pin above the max vm size (EINVAL); test attempt
>> to pin above 4GB without the support 48b flag.
>>
>> Cc: Michel Thierry <michel.thierry@intel.com>
>> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
>> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
>> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> (v10)
>> Signed-off-by: Michel Thierry <michel.thierry@intel.com> (v11)
>> ---
>> tests/.gitignore | 1 +
>> tests/Makefile.sources | 1 +
>> tests/gem_softpin.c | 1084
>> ++++++++++++++++++++++++++++++++++++++++++++++++
>> 3 files changed, 1086 insertions(+)
>> create mode 100644 tests/gem_softpin.c
>
> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

I pushed this one since the kernel part got merged.