Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
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>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Last user removed, remove the definition of gem_test_engine().
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
|
|
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>
|
|
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>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Check around each pipe test whether an update overran its alloted time.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
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>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|