summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-03-15igt/gem_bad_reloc: Rename conflicting negative-reloc-bltChris Wilson
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_bad_reloc: Fix handling of 64bit relocationsChris Wilson
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94537 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-14drv_module_reload_basic: skip alive check after load failure injectionImre Deak
After loading the module with load failure injection enabled don't try check the alive state. Also limit the number of failure points to existing ones, to reduce the run time of the test. v2: - make VT binding/snd module loading part of reload and VT bind fail silently (Chris) Signed-off-by: Imre Deak <imre.deak@intel.com>
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-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-14lib: Remove dead gem_get_num_rings()Chris Wilson
No users so time to die. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-14igt/gem_exec_reloc: Exercise updating relocations of an active objectChris Wilson
Supersedes gem_dummy_reloc_loop. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-14tests/gem_ring_sync_loop: Exercise all ringsChris Wilson
Fix the engine selection to exercise all possible rings and in doing so completely obsoletes gem_multi_bsd_sync_loop. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-14lib: Remove unused gem_has_enable_ring()Chris Wilson
No one uses this nor should they as it just gem_get_param() in disguise and they are better feature queries for whether individual execution engines are functional. 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/drv_module_reload_basic: Rinse and repeat with addition module parametersChris Wilson
An idea for testing failure paths along module load is to use a parameter to perform fault injection. This rudimentary framework should get us started. 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-11benchmarks/gem_syslatency: Add extra android guard to attr_setaffinity_npDerek Morton
Android defines __USE_GNU but does not provide pthread_attr_setaffinity_np() so added an extra guard arround pthread_attr_setaffinity_np(). Signed-off-by: Derek Morton <derek.j.morton@intel.com>
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>
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-10benchmarks/gem_syslatency: Guard setaffinity_npChris Wilson
pthread_setaffinity_np is a GNU extensions, so add some __USE_GNU ifdeffry and hope for the best if unavailable. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-10igt/gem_reloc_overflow: 32bit compilation warningChris Wilson
gem_reloc_overflow.c: In function ‘__real_main365’: gem_reloc_overflow.c:384:3: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘size_t’ [-Wformat=] igt_require_f(mlock(reloc, reloc_size) == 0, ^ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-10igt/gem_concurrent_blit: 32bit compilation warningChris Wilson
gem_concurrent_all.c: In function ‘__real_main1556’: gem_concurrent_all.c:1642:4: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘uint64_t’ [-Wformat=] igt_debug("Pinning %ld MiB\n", pin_sz); Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-10igt/drv_hangman: 32bit compilation warningChris Wilson
drv_hangman.c: In function ‘hangcheck_unterminated’: drv_hangman.c:290:27: warning: integer overflow in expression [-Woverflow] int64_t timeout_ns = 100 * NSEC_PER_SEC; /* 100 seconds */ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-10benchmarks/gem_syslatency: Subtract the clock_gettime() overheadChris Wilson
Since clock_gettime() should be a fixed overhead that adds to the latency result, subtract it from the result. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-10benchmarks/gem_syslatency: Prevent CPU sleeps (C-states)Chris Wilson
In order to keep the latency as low as possible for the idle load, we need to keep the CPU awake. Otherwise we end up with the busy workload having lower latency than the idle workload! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-10benchmarks/gem_syslatency: Measure unloaded latencyChris Wilson
Also useful to know how much worse than baseline the latency is when the gem load is applied. For slower systems, presenting in nanoseconds makes it hard to read, so switch to microseconds for output. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-09benchmarks: Add gem_syslatencyChris Wilson
Instead of measuring the wakeup latency of a GEM client, we turn the tables here and ask what is the wakeup latency of a normal process competing with GEM. In particular, a realtime process that expects deterministic latency. 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-09tests/gem_reloc_overflow: Add missing igt_fixtureDaniel Vetter
Boom when running with --list on non-intel machines or as non-root. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2016-03-09lib: remove saved_sig_maskDaniel Vetter
Oversight from the exit handler cleanup, spotted by Chris Wilson. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2016-03-09igt/gem_exec_store: The simplest batch that does something!Chris Wilson
A very simple, the simplest!, batch that can execution on any known engine that just writes a value into memory. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-08lib: Unit test for exit handlerDaniel Vetter
Checks that - exit handlers are run only once, even when registered multiple times. - run in reverse order - actually run for all ways a test could exit. This is prep work to extend exit handlers to also work in a subtest aware way. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2016-03-08lib/igt_core: remove igt_disable/enable_exit_handlersDaniel Vetter
No longer needed, and also not really a safe idea. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2016-03-08gitignore: Add .dirstampDaniel Vetter
autofu apparently adds these files for non-recoursive make. Fallout from the uwildmat addition. While at it also exclude stuff generated by make distcheck Cc: Derek Morton <derek.j.morton@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2016-03-08tests/kms_mmap_write_crc: Use the right fork helpersDaniel Vetter
For a background task the fork helpers are more appropriate, since we can explicitly cancel children. Also, anything that does real work is supposed to be in fixtures. Cc: Tiago Vignatti <tiago.vignatti@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> -- Tiago, can you pls check that I haven't broken anythig? Thanks, Daniel
2016-03-08lib/igt_kms: Don't disable exit handlers around set_vt_modeDaniel Vetter
This was originally added to work around a race, but then that's broken now. And set_vt_mode generally never results in a test binary crash, so overkill. I want to get rid of this interface since I spotted some abuse. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2016-03-08benchmarks/gem_latency: Replace igt_stats with igt_meanChris Wilson
Use a simpler statically allocated struct for computing the mean as otherwise we many run out of memeory! 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-03-08igt/gem_ringfill: Check full rings across suspend/hibernateChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-08igt/gem_exec_suspend: Check with both cached/uncached objectsChris Wilson
Keep an eye on domain tracking for both cached/uncached objects across suspend. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-08lib: Magic for_each_engine() macro to iterate over available enginesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-08igt/gem_exec_suspend: Do pre/post suspend double checksChris Wilson
Check that the system operates normally before and after the suspend (as well as across the suspend). The goal is to isolate the breakage to the subtest. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-08lib: Skip execution in gem_has_ring()Chris Wilson
By looking for a particular error we can avoid actually executing anything when testing whether the kernel supports an individual ring. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-08lib: Flush all possible ringsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-08lib: Flush BSD2 as well when availableChris Wilson
When flushing work and idling the GPU, we need to flush all engines, including the forgotten BSD2. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-08igt/gem_reloc_overflow: Fix errno tests for "overflow"Chris Wilson
The execbuffer2 ABI is not strictly limited to a total of UINT32_MAX entries, rather each object can have a maximum of UINT32_MAX relocation entries and the current implementation imposes that the total must be allocable in a contiguous buffer when necessary (i.e as large as the kernel can conceivably allocate). This is not an ABI constraint per-se, just an implementation issue. Whilst updating the limits for 64bit kernels, review usable of ioctl-wrappers (i.e. use __gem_execbuf now available) and include a batch of more tests to explore the boundary conditions of the maximum relocation size. Note that rather than guess the reloc-max, it would be better if we queried it. Also it is of vital importance that when constructing a test to fail in a particular fashion, it must not include any other error (e.g. we were passing in relocation arrays with invalid target handle and domains when looking for a potential overflow across multiple objects). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-07igt/pm_rpm: Wait for PCI D3Chris Wilson
The transition to PCI device state D3 is not instantaneous and only started when runtime suspended. Allow the driver/hardware a little bit of time to complete the transition before declaring a test failure. References: https://bugs.freedesktop.org/show_bug.cgi?id=93123 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-03-07gem_ppgtt: Fix flink-and-exit-vma-leak for engine->last_contextTvrtko Ursulin
Now that engines keep references on the last executed contexts, to fix this test we need to execute an unrelated context last to ensure the one we are interested in is free to be cleaned up when we expect it to be. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2016-03-07tests/kms_setmode: Fix compilation warnings.Marius Vlad
kms_setmode.c:384:30: warning: declaration of ‘drm_fd’ shadows a global declaration [-Wshadow] kms_setmode.c:45:12: note: shadowed declaration is here static int drm_fd; kms_setmode.c:391:38: warning: passing argument 8 of ‘drmModeSetCrtc’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] ids, crtc->connector_count, &crtc->mode); Signed-off-by: Marius Vlad <marius.c.vlad@intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2016-03-07tests/kms_setmode: Add tests when not stealing encoders on same crtc.Maarten Lankhorst
Excercise connector stealing harder. There is a border case in atomic currently where encoder stealing is not prevented on the same crtc when the encoder is not reassigned. The following testcase excercises that path and causes a OOPS on my system with nightly. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-03-04tests/kms_draw_crc: remove hardcoded PIPE_APaulo Zanoni
The test used to assume pipe A was being used for everything, and we tried to fix this in commit "tests: fix CRTC assignment for a few tests", but the pipe CRC code was forgotten. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>