14 Commits

Author SHA1 Message Date
Chris Wilson
102943d1ba igt/gem_busy: Avoid BSD emission on gen6
Remember to skip using BSD on gen6, unless you want to kill the machine.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95134
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-25 18:52:05 +01:00
marius vlad
8753f77692 tests/gem_busy: Fix passing invalid fd for basic-parallel-* tests.
Caught by check target.

Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
2016-04-25 15:56:37 +03:00
Chris Wilson
13cfccd665 igt/gem_busy: Test parallel execution
Parallel but not concurrent!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-25 09:35:20 +01:00
Chris Wilson
1e9a3acfd4 igt/gem_busy: Discard the indirect batchbuffers
The stack of batchbuffers is myth. In general there are only 2 levels of
stack for HEAD (ringbuffer, batchbuffer) and chaining up the batch
buffer just updates the lowest level of the stack. A BATCH_BUFFER_END at
any depth then returns to the ring.

So be creative and modify the batch buffer on the fly...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-22 19:31:06 +01:00
Chris Wilson
4233b59608 igt/gem_busy: Slow down the writer
Add a few more (128) loops to the page full of MI_STORE_DWORD in an
attempt to try and slow down the execution to the point where a
full-debug kernel can beat the GPU.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-15 10:58:14 +01:00
Chris Wilson
d6a85f042c igt/gem_busy: fix compaction of multiple store commands
Missed increment of the batch offset between commands.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-11 12:53:30 +01:00
Chris Wilson
aec81019e1 igt/gem_busy: Try to slow down execution
With lockdep enabled, the driver overhead is enormous and we need to
slow down the GPU to compenstate (otherwise the GPU is already idle when
we expect busyness). So do more work per batch.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-01 17:05:20 +01:00
Chris Wilson
92ee3cc1f6 igt/gem_busy: Cap number of tries to create busy rings
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-01 14:59:43 +01:00
Chris Wilson
0f5b03fa38 igt/gem_busy: Use a boatload of store-dwords to force ring busyness
A little more inelegant as we can't control the delay very well, but it
should prove more vesatile and broaden the test coverge (and still be
quick enough for basic).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-01 13:21:56 +01:00
Chris Wilson
3992babd98 igt/gem_busy: Refactor to use gem_require_ring()
Now that gem_require_ring() does the right thing with BSD1/BSD2 we can
use it to our advantage here.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-02-04 09:49:29 +00:00
Chris Wilson
de70769cc0 Add I915_EXEC_DEFAULT to list of known engines
I dropped this from the list of rings for some tests when refactoring to
a common array. Almost all of the tests should be run over the default
exec engine to ensure ABI backwards compatiblity.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27 16:42:10 +00:00
Chris Wilson
04f5215f00 Extract array of execution engines
A few tests wish to execute on every engine, so centralise the array of
known engines.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27 14:45:19 +00:00
Chris Wilson
e3b68bb666 lib: Share common __gem_execbuf()
An oft-repeated function to check EXECBUFFER2 for a particular fail
condition.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27 14:45:18 +00:00
Chris Wilson
59adb00129 tests: Add gem_busy
Exercise the busy-ioctl and verify it reports the right active engines
using the execbuffer notation.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-15 20:54:45 +00:00