summaryrefslogtreecommitdiff
path: root/tests/gem_softpin.c
AgeCommit message (Collapse)Author
2016-10-13lib/igt_aux: Add support for various system suspend/resume optionsImre Deak
To have a more accurate idea about any suspend/resume issues we can perform the s/r until various phases in the s/r sequence. This way we can isolate the given problem as being a device driver, kernel core or BIOS related issue. Actual subtests using these new s/r phases will be added as follow-up. While at it also add the freeze suspend target, it's something we also would need to test. Signed-off-by: Imre Deak <imre.deak@intel.com>
2016-09-13igt/gem_busy: Prevent banning when running multiple hang testsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-12lib/igt_aux: Polish docs for igt_interruptibleDaniel Vetter
- Give __ prefix to internal funcstion and structs, only igt_interruptible is used by tests. - Move docs to igt_interruptible and adjust. - Explain more clearly how the timeout is getting doubled each iteration until no more interruptions happen. Also rename the argument to give it a more meaningful name in the docs. - Link from other functions to this one for cross-referencing. - Rename to igt_do_interruptible to make it clearer it's a loop, inspired by do {} while () loops. v2: Rename instead to igt_while_interruptible and fix typos (Chris). And add gtk-doc for igt_ioctl, too. Acked-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2016-03-19igt/gem_softpin: Convert to igt_interruptibleChris Wilson
Convert the fixed time interruptible tests to igt_interruptible() for a speed improvement. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-18igt/gem_softpin: Repeat tests with signal interruptionsChris Wilson
For the long running tests probing error conditions, throwing in the signal interruptions is a good idea. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-03igt/gem_softpin: Check norelocations hold versus suspend/resumeChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-28igt: More MI_STORE_DWORD fixes for gen5Chris Wilson
A few other tests I have updated recently to use MI_STORE_DWORD also need the magic bit for gen4/5. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27lib: Share common __gem_execbuf()Chris Wilson
An oft-repeated function to check EXECBUFFER2 for a particular fail condition. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-25lib/ioctl_wrappers: Add gem_has_softpinMichał Winiarski
We can move it from softpin test into lib, and since softpin support is highly unlikely to go away in-between getparam ioctl calls, let's just do a single call and store the value. v2: rebase Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-01-25lib/ioctl_wrappers: Add gem_gtt_type exposing raw HAS_ALIASING_PPGTT paramMichał Winiarski
No functional changes. While I'm here, let's also rename gem_uses_aliasing_ppgtt (since it's being used to indicate if we are using ANY kind of ppgtt) and introduce gem_uses_full_ppgtt to drop some unnecessary code from tests that were previously calling getparam directly instead of using ioctl wrapper. v2: drop gem_uses_full_48b_ppgtt since it's no longer used anywhere, s/48b/64b (Chris) v3: rebase Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-01-24igt/gem_softpin: Keep last_handle around to vary hole generationChris Wilson
If we don't close the handle from the last pass, we don't free up the previous pass's vma immediately, changing the hole allocation. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-23igt/gem_softpin: Exercise snoop+uncached abuttingChris Wilson
snooped objects are not allowed to abutt uncached objects on older gen (!llc and global GTT) or else the GPU may hang if it prefetches across a page boundary into a different memory type (i.e. CS reading from snoop). The kernel should be checking the alignment rules as normal. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-22igt/gem_softpin: Fix MI_STORE_DATA_IMM for gen3Chris Wilson
We need both a secure batch and to flag it to use the virtual GTT address. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-21igt/gem_softpin: Fix MI_STORE_DWORD_IMM for gen2-3Chris Wilson
Before gen4, MI_STORE_DWORD was just 3 dwords long (cmd, offset, value). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-20igt/gem_softpin: Remove false dependencies on esoteric featuresChris Wilson
For softpinning, we do not require either userptr or extended ppgtt, so remove those requirements and make the tests work universally. (Certain ABI tests require large GTT, or per-process GTT.) In the process, make the tests more extensive - validate overlapping handling more careful, explicitly test no-relocation support, validate more ABI handling. And for fun, cause a kernel GPF. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-08tests/gem_softpin: Use offset addresses in canonical formMichel Thierry
i915 validates that requested offset is in canonical form, so tests need to convert the offsets as required. Also add test to verify non-canonical 48-bit address will be rejected. v2: Use sign_extend64 for converting to canonical form (Tvrtko) Cc: Vinay Belgaumkar <vinay.belgaumkar@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com> Signed-off-by: Michel Thierry <michel.thierry@intel.com>
2015-12-14tests/gem_softpin: Fix compiler warning on 32bit systemsMika Kuoppala
We get build error as we try to cast from ptr to integer of different size on 32 bit platforms. Use unsigned long as the cast, it will work with both 32 and 64 bit systems. Cc: Vinay Belgaumkar <vinay.belgaumkar@intel.com> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
2015-12-09tests/gem_softpin: New tests for softpin featureVinay Belgaumkar
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> Signed-off-by: Michel Thierry <michel.thierry@intel.com> (v11) Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>