summaryrefslogtreecommitdiff
path: root/lib/intel_ctx.h
AgeCommit message (Collapse)Author
2021-11-11i915/gem_exec_balancer: Test parallel execbufMatthew Brost
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>
2021-07-16lib/intel_ctx: Add a intel_ctx_cfg_engine_class helperJason Ekstrand
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2021-07-08lib/intel_ctx: Add load balancing support (v2)Jason Ekstrand
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>
2021-07-08tests/i915/gem_ctx_persistence: Convert to intel_ctx_tJason Ekstrand
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>
2021-06-10lib: Add an intel_ctx wrapper struct and helpers (v6)Jason Ekstrand
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>