summaryrefslogtreecommitdiff
path: root/tests/gem_exec_flush.c
AgeCommit message (Collapse)Author
2017-01-02igt: Mass conversion to to_user_pointer()Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-11-29igt/gem_gtt_speed: Spare clang the embarrassmentChris Wilson
Clang pretends to be GCC and then dies on GCC pragma. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-10-19igt/gem_exec_flush: Seed a GGTT mappable addressChris Wilson
Given aperture fragmentation execution with a fresh object would bind it outside of the mappable aperture. On earlier gen, execbuf uses the global GTT and so a subsequent pwrite would be move the idle object into the mappable aperture, invalidating the existing reloc.presumed_offset - which are supposed to be accurate as we pass NORELOC. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98109 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-07-15Convert function target attributes to pragmaChris Wilson
We need to not only cover the function in the target=sse4.1 but the include as well. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Damien Lespiau <damien.lespiau@intel.com>
2016-07-11igt/gem_exec_flush: Test movntqda reads from WCChris 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-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-19igt/gem_exec_flush: Exclude -before- subtests from BATChris Wilson
The *-before-* tests were designed to detect a potential issue with long speculative prefetches that would load the map[] before we have even called execbuf(). As CPUs get smarter and able to look ahead further we are starting to see failures and as we know the code is deliberately buggy exclude the tests from BAT. (I want to keep the tests in the full suite so that we can record which processors are affected, and look for related issues.) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=95378 References: https://bugs.freedesktop.org/show_bug.cgi?id=95488 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-13igt/gem_exec_flush: Include a bit of information about the test setupChris Wilson
When reading reports, it is much easier for the test to tell us how it will be run than try and remember the configuration of a random machine. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-12lib/igt_aux: Polish docs for igt_timeoutDaniel Vetter
Add docs, rename parameter and rename the macro to igt_do_timeout to make it clear it works like a loop. v2: Rename instead to igt_until_timeout (Chris). Acked-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
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-05-06igt/gem_exec_flush: Add some commentary about clflush testingChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-06igt/gem_exec_flush: Flush before each useChris Wilson
After we inspect map[i], we must flush again before checking map[i] for the xor pass. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-06igt/gem_exec_flush: Add a WC mmapping of the target bufferChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-06igt/gem_exec_flush: Test cacheline invalidation before execbufChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-06igt/gem_exec_flush: Restrict BAT batch testingChris Wilson
Only do one mode of batch writing for BAT, and hope that is sufficient to route out all the coherency problems when doing the cmdparser and when not. We still have the full set for non-BAT, just less of a smokescreen. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-04igt/gem_exec_flush: Halve the number of BAT tests, but double their runtimeChris Wilson
On the CI machines, the coherency tests are flip-flopping on byt/bsw. Undesirable as they should always fail (until we have a good w/a). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-04igt/gem_exec_flush: Also check flushing before the cmdparserChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-03igt/gem_exec_flush: Give even batch write a unique valueChris Wilson
One property lost in the expansion for various coherency checks was ensuring that every time we overwrote the batch it had a unique value (to ensure that the GPU was seeing the latest value). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-03igt/gem_exec_flush: Stress a few more synchronisation paths for execbufChris Wilson
Look at handling of multiple batches within the buffer and avoiding as much synchronisation as possible. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-03igt/gem_exec_flush: Test continuously rewriting the batchChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-02igt/gem_exec_flush: Match gem_set_domain to pointer accessChris Wilson
When using the kernel set-domain cache management, we need to set the domain as appropriate for our pointer access. In this case we access the buffer through a CPU mmap, and so we must request access via the CPU domain. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-02igt/gem_exec_flush: Immediately repeat the same cachelineChris Wilson
When looking at a pair of GPU writes, where we want to make sure that the clean cacheline is invalidated automatically, we want to reuse that cacheline whilst we know it remains valid (i.e. repeat the test using a new value to the same location). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-02igt/gem_exec_flush: Move assertions out of interruptible loopsChris Wilson
Since the value in the bo may be altered by the test, we only want to repeat phases of the test to avoid breaking the test itself. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-02igt/gem_exec_flush: Mark mmap-wc dependencyChris Wilson
Add a requirement for mmap-wc so that failure on older kernels is explained. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-02igt/gem_exec_flush: Use a cacheline strideChris Wilson
Look at different cachelines on each pass, otherwise each group of 16 flush the same cachline. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-02igt/gem_exec_flush: Add interruptible testingChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-02igt/gem_exec_flush: Add basic set-domain checksChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-01igt/gem_exec_flush: For good measure, check pread/pwriteChris Wilson
As a point of comparison, test the pread/pwrite interface as well. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-01igt/gem_exec_flush: Use subtest groups to tidy requirement checkingChris Wilson
We can make the requirement testing and reporting tidier by using igt_subtest_group. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-01igt/gem_exec_flush: Add a read-only variationChris Wilson
Alternate between two values written by the GPU so that we can look for stale cachelines without having to overwrite the value with the CPU. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-29tests: Add gem_exec_flushChris Wilson
A basic check that the execbuf flushes writes from the batch and that they are coherent afterwards. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>