summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-12-13ctx-traceHEADmasterChris Wilson3-0/+99
2020-12-13i915: Add gem_cancelChris Wilson3-0/+180
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_exec_latency: Add another variant of waiter latencyChris Wilson1-0/+81
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_exec_latency: Measure the latency of context switchingChris Wilson1-10/+220
Measure the baseline latency between contexts in order to directly compare that with the additional cost of preemption. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915: Exercise VM_WAIT ioctlChris Wilson6-5/+597
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13endless-suspendChris Wilson1-0/+59
2020-12-13igt/kms_draw_crc: Test for a working GPU firstChris Wilson1-8/+18
The draw-method-blt subtests require a working GPU, so create a subtest group for the draw-methods, and skip the BLT group using igt_require_gem() in its fixture. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13igt/kms_flip_tiling: Check GEM availability before useChris Wilson1-0/+1
We use the GPU to convert between tiling formats, indirectly via the call to igt_create_pattern_fb. So before we try and execute commands on the GPU, we should check that the GPU is available. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13igt/kms_frontbuffer_tracking: Skip over IGT_DRAW_BLT when there's no BLTChris Wilson1-2/+55
If the blitter is not available, we cannot use it as a source for dirty rectangles. We shall have to rely on the other engines to create GPU dirty instead. v2: Try using lots of subgroup+fixtures Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_exec_balancer: Kick tasklets harderChris Wilson2-11/+24
Tasklet scheduling can unfortunately be quite predicated. Where we are only caring about workload distribution and not initial execution latency (see kick_kthreads), make that kick more precise. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13intel-ci: Include the small concurrent testsChris Wilson1-1/+1
The tiny tests run quick, but sometimes just enough to trip over the system. v2: Only 4K, and only the bigger bombs. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13intel-ci/blacklists: Lift premerge ban for gem_exec_alignmentChris Wilson1-9/+0
In all but a few stray cases, the issues with the excess timeouts has been resolved by capping the amount of work and setup we do. There is still currently quadratic behaviour in the kernel that we are trying to resolve, and so this test is under current scrutiny and *useful*! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Martin Peres <martin.peres@linux.intel.com>
2020-12-13i915/gem_ctx_exec: Exploit resource contention to verify execbuf independenceChris Wilson1-1/+121
Even if one client is blocked on a resource, that should not impact another client. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13lib/i915: Discard unused gem_test_engine()Chris Wilson2-51/+0
Last user removed, remove the definition of gem_test_engine(). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_eio: Drop redundant "health check"Chris Wilson1-10/+0
After triggering the reset, we would ping the engines with a no-op. But we already validate the reset, so this would seem superfluous. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/pm_rpm: Drop obsolete "gem_idle" subtestChris Wilson1-12/+0
An obscure and very dated subtest, it's even covered by the other subtests -- if the kernel still worked in any fashion assumed by the test. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_exec_fence: Teach invalid-wait about invalid future fencesChris Wilson1-12/+1098
When we allow a wait on a future future fence, it must autoexpire if the fence is never signaled by userspace. Also put future fences to work, as the intention is to use them, along with WAIT_SUBMIT and semaphores, for userspace to perform its own fine-grained scheduling. Or simply run concurrent clients without having to flush batches between context switches. v2: Verify deadlock detection Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13lib/i915: Report scheduler caps for timeslicingChris Wilson3-3/+21
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13ringszChris Wilson1-5/+6
2020-12-13i915/gem_softpin: Active rebindsChris Wilson1-0/+29
Verify that we do not block userspace [controlling fence progress] if it requires vma recycling. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13lib: Propagate error from writing to drop-cachesChris Wilson2-5/+6
We almost always do not care whether the write to drop-caches succeeds or not, it is just to clear residual state and so try to isolate individual tests. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_userptr_blits: Test execution isolationChris Wilson1-0/+40
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_exec_reloc: Continuing the trend of checking userptrChris Wilson1-3/+10
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_exec_balancer: Check interactions between bonds and userptrChris Wilson1-15/+31
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_exec_schedule: Include userptr scheduling testsChris Wilson1-22/+57
In practice, it turns out that compute likes to use userptr for everything, and so in turn so must we. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_exec_balancer: Check balancer submission latencyChris Wilson1-1/+7
While CI is unreliable in terms of detecting performance deltas, it should still be able to detect when we are orders of magnitude off expectations. In this case, latency/throughput when submitting to a load balancer should be on par with a native engine. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13lib: Ignore runner's SIGQUIT from fork helpersChris Wilson1-0/+1
We would rather not confuse our debug output with simultaneous delivery of SIGQUIT to the helper processes, leaving the parent to handle SIGQUIT and kill the children. (If the parent is unable to quit, then it and the children will be killed by the runner.) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13lib: Handle chamelium failures gracefullyChris Wilson1-17/+37
Don't cause CI to abort a run if an _unrelated_ fixture checks for a display and chamelium is dead. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13tests/kms_cursor_legacy: Check for update overrunsChris Wilson1-0/+8
Check around each pipe test whether an update overran its alloted time. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13lib/kms: Open per-crtc debugfs around kmstestsChris Wilson2-0/+71
Drivers may include useful snippets of information in per-crtc debugfs, that we may check around pipe tests. For instance, rather than the kernel warn everytime a CRTC update exceeds a certain threshold, we can check ourselves and so only flag a test failure when looking for such failures. And more importantly, present the information for debugging them. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_exec_hostile: Wild Stallions!Chris Wilson5-4/+556
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/gem_exec_schedule: Try to spot unfairnessChris Wilson1-0/+960
An important property for multi-client systems is that each client gets a 'fair' allotment of system time. (Where fairness is at the whim of the context properties, such as priorities.) This test forks N independent clients (albeit they happen to share a single vm), and does an equal amount of work in client and asserts that they take an equal amount of time. Though we have never claimed to have a completely fair scheduler, that is what is expected. v2: igt_assert_f and more commentary; exclude vip from client stats, include range of frame intervals from each individual client v3: Write down what the test actually does! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Ramalingam C <ramalingam.c@intel.com>
2020-12-13i915/gem_shrink: Refactor allocation sizing based on available memoryChris Wilson1-5/+6
Refactor the allocation such that we utilise just enough memory pressure to invoke the shrinker, and just enough processes to spread across the CPUs and contend on the shrinker. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-13i915/perf_pmu: Verify RC6 measurements before/after suspendChris Wilson1-8/+34
RC6 should work before suspend, and continue to increment while idle after suspend. Should. v2: Include a longer sleep after suspend; it appears we are reticent to idle so soon after waking up. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2020-12-13i915/gem_exec_balancer: Measure timeslicing fairnessChris Wilson1-0/+154
Oversaturate the virtual engines on the system and check that each workload receives a fair share of the available GPU time. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-12lib: Pass device fd to gem_mmappable_aperture_size()Chris Wilson14-145/+138
In order to find the correct aperture size for the test, we want to pass the test's device into the query. Reported-by: Bruce Chang <yu.bruce.chang@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Bruce Chang <yu.bruce.chang@intel.com> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-12-11intel-ci: Remove blacklisting for perf_pmu/cpu-hotplugChris Wilson1-5/+0
While this regularly breaks upstream, that is also a good reason to keep testing! Let's see if upstream is in a working mood. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
2020-12-11i915/gem_create: Exercise bo creation while the GPU is busyChris Wilson1-0/+41
We always expect to be able to create new buffer, regardless of the state of the GPU. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Matthew Auld <matthew.auld@intel.com>
2020-12-11i915/gem_exec_fence: Skip timeline tests if not supportedChris Wilson1-1/+1
Report we cannot run the timeline tests (SKIP) if the kernel doesn't support the API. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-12-11i915/gem_vm_create: Race vm-destroy against object freeChris Wilson1-0/+67
Matthew postulated that we should be able to hit a race in __i915_vm_close() between the RCU object free and vma unbind viz GEM_BUG_ON(!list_empty(&vm->bound_list)); due to the effect of leaving the vma on the list if we are unable to obtain the kref to the object. Let's try and find that race. In practice, this does not happen because to race the object free vma cleanup against vm close requires a leak of a ppGTT vma. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Matthew Auld <matthew.auld@intel.com> Acked-by: Matthew Auld <matthew.auld@intel.com>
2020-12-11i915/gem_exec_fence: Check a submit chainChris Wilson3-8/+60
Submit a chain of spinners across all the engines, using the submit fence to launch them in parallel. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-12-10i915/gem_mmap_gtt: Replace gem_threaded_access_tiledChris Wilson5-134/+15
Concurrent access to a mmap is covered by gem_mmap_gtt/concurrent, if we add tiled access to it, we make gem_threaded_access_tiled entirely redundant. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-12-10i915/gem_tiled_blits: Remove libdrm dependencyDominik Grzegorzek1-42/+45
Use intel_bb / intel_buf to remove libdrm dependency. Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-10i915/gem_unref_active_buffers.c: Remove libdrm dependencyDominik Grzegorzek2-55/+77
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-10i915/gem_unfence_active_buffers.c: Remove librdm dependencyDominik Grzegorzek1-93/+28
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Acked-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-12-08i915/query: Directly check query results against GETPARAMChris Wilson1-40/+9
Simplify the cross-check by asserting that the existence of an engine in the list matches the existence of the engine as reported by GETPARAM. By using the comparison, we check both directions at once. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2020-12-08i915/query: Cross-check engine list against execbuf interfaceChris Wilson1-1/+26
Check that every engine listed can be used in execbuf. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Andi Shyti <andi.shyti@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Andi Shyti <andi.shyti@intel.com>
2020-12-07runner: Don't kill a test on taint if watching timeoutsJanusz Krzysztofik1-6/+20
We may still be interested in results of a test even if it has tainted the kernel. On the other hand, we need to kill the test on taint if no other means of killing it on a jam is active. If abort on both kernel taint or a timeout is requested, decrease all potential timeouts significantly while the taint is detected instead of aborting immediately. However, report the taint as the reason of the abort if a timeout decreased by the taint expires. v2: Fix missing show_kernel_task_state() lost on rebase conflict resolution (Chris - thanks!) Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-12-07tests/kms_color_chamelium: time optimizationKunal Joshi1-9/+9
Instead of going through all the delta even if we got success with one, now breaking when we pass, thus saving some time and decreasing load on chamelium for capturing the rest of the frames. Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com>
2020-12-06i915/gem_ctx_exec: Check spinner requirements before forkChris Wilson1-3/+5
Do a check to see if we support a pollable spinner before forking to avoid upsetting libigt. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>