summaryrefslogtreecommitdiff
path: root/tests/gem_exec_gttfill.c
AgeCommit message (Collapse)Author
2018-06-29igt/gem_exec_gttfill: Avoid pwrite into busy handleChris Wilson
The goal of gem_exec_gttfill is to exercise execbuf under heavy GTT pressure (by trying to execute more objects than may fit into the GTT). We spread the same set of handles across different processes, with the result that each would occasionally stall waiting for execution of an unrelated batch, limiting the pressure we were applying. If we using a steaming write via a WC pointer, we can avoid the serialisation penalty and so submit faster. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2018-02-23Iterate over physical enginesChris Wilson
We current have a single for_each_engine() iterator which we use to generate both a set of uABI engines and a set of physical engines. Determining what uABI ring-id corresponds to an actual HW engine is tricky, so pull that out to a library function and introduce for_each_physical_engine() for cases where we want to issue requests once on each HW ring (avoiding aliasing issues). v2: Remember can_store_dword for gem_sync v3: Find more open-coded for_each_physical Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2017-05-18lib: Refactor testing for ability to use MI_STORE_DATA_IMMChris Wilson
Rather than have the code in multiple locations, put a copy in lib/ 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-02-04igt: intel_gen(intel_gen()) eekChris Wilson
Painfully obvious afterwards. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-02-03igt: Skip MI_STORE_DWORD_IMM on gen2Chris Wilson
On gen2 MI_STORE_DWORD_IMM operates on a physical, not virtual, address i.e. we can't use it. 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-07-03igt/gem_exec_gttfill: Reduce overhead in setting up filler batchesChris Wilson
Since all the batches start with the same content, we can reuse the same buf to fill them. 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-05-21igt/gem_exec_gttfill: qword writes require an extra bit on bdw+Chris Wilson
Set bit 21 to enable qword writes for Broadwell. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-20igt/gem_exec_gttfill: Limit to using 4GiB of GTTChris Wilson
Since we do not use the allow-48b GTT per-object flag, even on Broadwell+ we will be constrained to 4GiB of usage GTT. Also only do a single pass for BAT as suggested by Marius Vlad. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-19igt/gem_exec_gttfill: Exclude the page allocation from the timeoutChris Wilson
Since we want to focus on the issue of running with a full-gtt, and part of that is in handling the eviction, do a warm-up pass before we start the clock that allocates the objects and fills the gtt. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-05-19tests: Add gem_exec_gttfillChris Wilson
This is an attempt to emulate the stressful nature of gem_cs_prefetch without being as slow i.e. without trying to detect the GPU prefetch issues and just emphasive the basic correctness in handling enough batches to fill the GTT similar to gem_ringfill aims to fill a ring. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>