Age | Commit message (Collapse) | Author |
|
Add basic parallel execbuf submission test which more or less just
submits the same BB in loop a which does an atomic increment to a memory
location. The memory location is checked at the end for the correct
value. Different sections use various IOCTL options (e.g. fences,
location of BBs, etc...).
In addition to above sections, an additional section ensure the ordering
of parallel submission by submitting a spinning batch to 1 individual
engine, submit a parallel execbuf to all engines instances within the
class, verify none on parallel execbuf make to hardware, release
spinner, and finally verify everything has completed.
The parallel-ordering section assumes default timeslice / preemption
timeout values. If these values are changed the test may fail.
v2:
(Daniele)
- Add assert to ensure parallel & load_balance both not set in ctx lib
- s/count/expected/g in check_bo()
- use existing query library functions
- clean up bb_per_execbuf / count usage
- drop dead loop
- add comment for parallel-ordering
- don't declare loop variables inside loop
v3:
(Daniele)
- Read timeslice from sysfs
v4:
(Daniele)
- Add comment in timeslice sysfs function
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
|
|
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
We use the same convention as the load balancing tests and, when
balancing is requested, we make a context with N+1 engines where the
first one is the balanced engine and the others are physical engines.
v2 (Zbigniew Kempczyński):
- Don't initialize num_logical_engines
- Use igt_assert() instead of assert()
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
We're trying to clean up some of our technical debt in the i915 API. In
particular, context mutability and unnecessary getparam(). There's
quite a bit of the introspection stuff that's not used by any userspace
other than IGT. Most drivers don't care about fetching the set of
engines, for instance, because they don't forget about what set of
engines they asked for int the first place.
Unfortunately, IGT relies heavily on context introspection for just
about everything when it comes to multi-engine testing. It also likes
to use ctx0 as temporary storage for whatever the current test config
is. While effective at keeping IGC simple in some ways, this means
we're making heavy use of context mutability. Also, passing data around
with in tests isn't really what contexts are for.
This patch adds a new intel_ctx_t struct which wraps a context and
remembers the full context configuration. This will provide similar
ease-of-use without having use ctx0 as temporary storage.
v2 (Jason Ekstrand):
- Make all intel_ctx_t's const
v3 (Jason Ekstrand):
- Fix up the docs so they build properly
v4 (Jason Ekstrand):
- Add an intel_ctx_create_for_engine helper
v5 (Zbigniew Kempczyński):
- Use SPDX license identifiers
- Document default context semantics
v6 (Ashutosh Dixit):
- Fix SPDX in intel_ctx.h
- Fix a typo in a comment
v6 (Jason Ekstrand):
- Add documentation about num_engines to intel_ctx_cfg_t
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|