summaryrefslogtreecommitdiff
path: root/tests/gem_exec_nop.c
AgeCommit message (Collapse)Author
2017-06-07tests/gem_exec_nop: Rename signal() to fence_signal()Arkadiusz Hiler
Unfortunately <signal.h> is included through some obscure dependencies when using bionic, so we have a name clash on signal(). Changed the test function name to fence_signal() to avoid this, but left the test cases names unchanged. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-06-07tests/gem_exec_nop: Disable headless subtest on cairoless AndroidArkadiusz Hiler
Currently whole igt_kms.c is disabled while compiling on Android without cairo, so this tests does not compile. There should be cleaner a way to disable only cairo dependant parts which should allow us to enable at least some of the KMS tests, but that's a bigger rework for another time. v2: simplified #ifs on CAIRO/ANDROID (P. Latvala) Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-05-31lib: Moving gem_execbuf_wr to ioctl_wrappersLukasz Fiedorowicz
gem_execbuf_wr was duplicated in multiple places. Moving everything to lib/ Signed-off-by: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2017-05-13igt/gem_exec_nop: Restore check on available signal ringsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-05-12igt/gem_exec_nop: Include the impact of signaling a fenceChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-04-19igt/gem_exec_nop: Add some output to headless subtestChris Wilson
Report the measurements as we make them. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-04-19igt/gem_exec_nop/headless: Verify GT performance in headless modeTvrtko Ursulin
Check that no-op execution speed is the same in headless mode and with the display active. v2: * Set graphics mode for the test to disable blanking. (Imre) * Use igt stats framework as suggested by Chris. v3: * Rename variable names for clearer assert. * Simplify by using I915_EXEC_DEFAULT. (Chris Wilson) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100572 Cc: Imre Deak <imre.deak@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Petri Latvala <petri.latvala@intel.com>
2017-03-21igt/gem_exec_nop: Sync before measuring total elapsed timeChris Wilson
The systematic error should be lost in the millions of cycles, but better pedagogically correct. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-02-22igt: Start marking up GEM tests that require an alive GPU to functionChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-22igt/gem_exec_nop: Watch interprocess switchingChris Wilson
Like a lightweight unchecking gem_exec_whisper, but the simplicity helps looking for driver overhead and stressing the ordering. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-20igt/gem_exec_nop: Watch inter-ring synchronisation overheadChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-02igt: Mass conversion to to_user_pointer()Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-10-18igt: Trim timeouts for basic GEM testsChris Wilson
It's a compromise between detecting an unlikely timing error in one test and being able to run a broader selection of tests. I hope this is wise. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-09-08igt/gem_exec_nop: Show more timing detailsChris Wilson
Min, average, exclude the post-exec sync time. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-09-08igt/gem_exec_nop: Refine the target calculationChris Wilson
The ideal execution time cannot be faster than the fastest ring! If all other rings were infinitely fast, the seed would be max/nengine. Given each is finite, this puts a floor on the ideal execution time. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-09-08igt/gem_exec_nop: Check submitting nops to each engine in parallelChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-09-08igt/gem_exec_nop: Relax assertion for parallel executionChris Wilson
In an ideal world, we should be able to execute on every engine in parallel and the single limiting factor would be how fast the GPU can execute. Due to the serialisation in execbuf, we would lockstep with execution to the slowest engine and so would execute the same number of cycles on each. However in CI, we are limited by how fast the driver is, particularly under invasive debugging. This makes asserting that the average time == max/nengine impossible, and reveals that the assertion is impossible to meet under general condition. It's an impractical regression test. Therefore we relax the assertion to only detect should something critically fail. Worst case behaviour is presumed that each ring runs sequentially, and so running N rings in parallel should take no longer than running N rings serially. (Pathologically it can be even slower if no batching on the rings occur). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-07-22lib/sysfs: Provide a convenience function for reading a boolChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-07-22igt/gem_exec_nop: Display submission mechanismChris Wilson
Useful for confirmation when testing. 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-04-22igt/gem_exec_nop: Apply missed interrupt detectionChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-18igt/gem_exec_nop: Fix time units for assertion printfChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-15igt/gem_exec_nop: Correct %3.f typoChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-04-14igt/gem_exec_nop: Explain the parallel execution assertionChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-28igt/gem_exec_nop: Relax parallel assertion for short ringsChris Wilson
On bdw, the render ring becomes full and limits dispatch across all rings. Adjust the expected latency to take this into account. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-28igt/gem_exec_nop: Add expectancy of independent execution between enginesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-25igt/gem: Add GPU hang detection to basic testsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-14igt/gem_exec_nop: Decrease BAT timingChris Wilson
For basic, since CI doesn't hit the same hard lockup on Braswell that is possible without hpet, stop running for so long! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-10igt/gem_exec_nop: Fix logical inversion for checking of valid execbufChris Wilson
Only if the trial __gem_execbuf reports an error do we want to remove the fancy LUT flags. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-09igt/gem_exec_nop: Only combine unique ringsChris Wilson
Ignore the default ring as that is purely symbolic. On BSD2 systems it is similarly useful to ignore the symbolic BSD ring. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-08igt/gem_exec_nop: Add a basic testChris Wilson
Demonstrate how trivial it is to lockup Braswell, at least my N3050 nuc, by saturating the interrupt handler with a few requests. References: https://bugs.freedesktop.org/show_bug.cgi?id=93467 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_exec_nop: Use common array of ringsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-12-16igt/gem_exec_nop: Restore SLOW_QUICK loop terminatorChris Wilson
The upper bound for SLOW_QUICK was added for the benefit of the slow simulator, not because, as I wrongly thought, of the latency measurements. SLOW_QUICK was added in commit d1e862324b747a0ab5d985eaa6830076817231c5 Author: Damien Lespiau <damien.lespiau@intel.com> Date: Mon Mar 25 20:06:20 2013 +0000 tests: Instrument tests run in simulation to run quickly and dropped in commit 89bcdb9022fb7a1f66635b9f2546356ad0c0761a Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Tue Dec 8 13:42:50 2015 +0000 igt/gem_exec_nop: Remove nop latency measurements Reported-by: Ben Widawsky <benjamin.widawsky@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-12-08igt/gem_exec_nop: Remove nop latency measurementsChris Wilson
Since commit c8beadb811bdc2b9c21f95144852f3e55867b546 Author: Derek Morton <derek.j.morton@intel.com> Date: Wed Nov 11 14:46:58 2015 +0000 tests/gem_exec_nop: Improved test run time the stablity of the measurement regressed and it is once again no longer a reliable metric for detecting regressions. Give up. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Derek Morton <derek.j.morton@intel.com>
2015-11-13tests/gem_exec_nop: Improved test run timeDerek Morton
Reduced the Sleep period to 200mS and reduced the repetition count to 7 to decrease the test run time significantly. v2: Changed uS to us v3: removed the output formatting change as the issue will be addressed in a seperate patch from Thomas Wood. v4: mS -> ms Signed-off-by: Derek Morton <derek.j.morton@intel.com> Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-09-11convert drm_open_any*() calls to drm_open_driver*(DRIVER_INTEL) calls with cocciMicah Fedke
Apply the new API to all call sites within the test suite using the following semantic patch: // Semantic patch for replacing drm_open_any* with arch-specific drm_open_driver* calls @@ identifier i =~ "\bdrm_open_any\b"; @@ - i() + drm_open_driver(DRIVER_INTEL) @@ identifier i =~ "\bdrm_open_any_master\b"; @@ - i() + drm_open_driver_master(DRIVER_INTEL) @@ identifier i =~ "\bdrm_open_any_render\b"; @@ - i() + drm_open_driver_render(DRIVER_INTEL) @@ identifier i =~ "\b__drm_open_any\b"; @@ - i() + __drm_open_driver(DRIVER_INTEL) Signed-off-by: Micah Fedke <micah.fedke@collabora.co.uk> Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-08-21lib: add a single include headerThomas Wood
Add a header that includes all the headers for the library. This allows reorganisation of the library without affecting programs using it and also simplifies the headers that need to be included to use the library. Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-07-01igt/gem_exec_nop: Control boost/idle frequenciesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-07-01igt/gem_exec_nop: Wait between runsChris Wilson
In order to keep the GPU in a consistent state between samples, we have to wait for it to fall asleep before proceeding. For fun hook up igt_stats. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-26igt/gem_exec_(blt|nop): IGT magicChris Wilson
$ ./gem_exec_nop --list-subtests render bsd blt vebox gem_exec_nop: igt_core.c:946: igt_skip: Assertion `in_fixture' failed. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-26igt/gem_exec_(nop|blt): Repeat measurements at min/max GPU frequenciesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-26igt/gem_exec_nop: Repeat and average to stabilize measurementsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-18igt/gem_exec_nop: Enlighten the failure error messageChris Wilson
References: https://bugs.freedesktop.org/show_bug.cgi?id=89633 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-03-06igt.cocci: Replace igt_assert() with igt_assert_CMP() where possibleMatt Roper
The integer comparison macros give us better error output by including the actual values that failed the comparison. Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-05-14tests: sprinkle igt loggingDaniel Vetter
All the cases that simply dump some debug information and couldn't be converted to some of the fancier macros. Some information output removed when it's redundant with the subtest status. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-22lib: rename intel_gpu_tools.h to intel_io.hDaniel Vetter
With the header cleanup we can now give this header a suitable name, since it now really only contains register access and other I/O functions and assorted definitions. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-22lib: unnecessary header removal for drmtest.h, part 1Daniel Vetter
Brought a few missing headers to light in ioctl_wrappers.h, too. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-01lib: add igt_main macroDaniel Vetter
In the past new testcases with subtest often forgot to add the call to igt_exit at the end of their main() function. That is now caught with a bit more obnoxious asserts, but it's still a nuissance. This little igt_main macro takes care of that (and also of calling the subtest machinery initialization code correctly). If no one objects I'll roll this out for all the simple cases (i.e. those tests that don't have additional argv parsing on top of the subtest machinery). v2: Roll it out across the board. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-25tests: use igt_assert/igt_require moreDaniel Vetter
With the new _f variants we can replace almost all of them. Also remove a ton of checks for argc != 1, they're a bit useless ... Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-09-03lib/drmtest: include sys/mman.h from drmtest.hDaniel Vetter
We need it for mmapping to get at PROT_READ|WRITE anyway. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>