summaryrefslogtreecommitdiff
path: root/tests/gem_exec_whisper.c
AgeCommit message (Collapse)Author
2016-07-03igt/gem_exec_whisper: Preallocate locations in GTT for whisperChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-06-17tests: Push igt_fork/stop_hang_detector into fixturesDaniel Vetter
It access hardware, hence why the simple igt_only_list_subtests() check from igt_fork/stop_signal_helper() isn't enough. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2016-06-04igt/gem_exec_whisper: Another twist on engine interchangeChris Wilson
Slightly less extreme than switching engines between commands, switch engines between pixels. This helps contrast the request amalgamation in execlists. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-06-02Mark up a few more execbuf tests with automatic fail for missed-interruptsChris Wilson
Too many interrupts missed being ignored. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-20igt/gem_exec_whisper: Exclude from BATChris Wilson
At its heart gem_exec_whisper is a race detector between submission between multiple rings and the execution. It is made even more unreliable by debug kernels making it nigh impossible to submit batches faster than the GPU can execute. As such, it's relevance for BAT is dubious. 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-26igt/gem_exec_whisper: Add simple interruptible passChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-26igt/gem_exec_whisper: Check for inconsistent reloc offset vs object offsetChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-24lib: Add a GPU error detectorChris Wilson
If we listen to the uevents from the kernel, we can detect when the GPU hangs. This requires us to fork a helper process to do so and send a signal back to the parent. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-21igt/gem_exec_whisper: Tweak migration loggingChris Wilson
reloc.presumed_offset == -1 => implies we hit the fallback path and not that we strictly needed to patch the relocation. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-21igt/gem_exec_whisper: Prevent MI_STORE_DWORD on gen6/bsd againChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-19igt/gem_exec_whisper: Add interruptibles testsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-17igt/gem_exec_whisper: Move testing of "default" engine to standaloneChris Wilson
Exclude the symbolic "default" engine from the interengine sync testing, and move it onto the standalone testing. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-15igt/gem_exec_whisper: Beware PIN_HIGHChris Wilson
Certain kernels/gen like to move execbuf around for relocations, disrupting our prewritten batches. Be more careful and try and keep the relocation/execobjects accurate. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-14igt/gem_exec_whisper: Exercise rings individuallyChris Wilson
Not as stressful as testing inter-ring synchronisation, but it does allow inspecting the simpler testcases if need be. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-12igt/gem_exec_whisper: Persistent relocation supportChris Wilson
The goal is to test interengine synchronisation so remove any likelihood that we introduce synchronisation for performing relocations. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-11igt/gem_exec_whisper: Test submission between fdsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-11igt/gem_exec_whisper: Stop passing NO_RELOCChris Wilson
We don't preserve the execobj.offset nor set the right values into the batches between iterations. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-11igt/gem_exec_whisper: Don't forget that 0 is a valid address on full-ppgttChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-11tests: Add gem_exec_whisperChris Wilson
A more complicated store variant to stress inter-engine dependencies (i.e. semaphores and sync). We write a control value from one batch into the next and then execute it. This is repeated a few times with each execution happening on a different engine (so the kernel has to serialise operations between engines) until we finally write the value out into our scratch buffer where we can check the result, just like a Chinese whisper. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>