Re: [igt-dev] [PATCH i-g-t] tests/i915: Use engine query interface for gem_ctx_isolation/persistence

Tvrtko Ursulin
2019-12-04T09:36:15Z

On 03/12/2019 05:11, Stuart Summers wrote:
> Align with gem_exec_basic and other tests using the newer
> engine query interface into i915 to enumerate active engines.
>
> Signed-off-by: Stuart Summers <stuart.summers@intel.com>
> ---
> tests/i915/gem_ctx_isolation.c | 4 ++--
> tests/i915/gem_ctx_persistence.c | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
> index 6aa27133..9435209e 100644
> --- a/tests/i915/gem_ctx_isolation.c
> +++ b/tests/i915/gem_ctx_isolation.c
> @@ -856,6 +856,7 @@ static unsigned int __has_context_isolation(int fd)
>
> igt_main
> {
> + struct intel_execution_engine2 *e;
> unsigned int has_context_isolation = 0;
> int fd = -1;
>
> @@ -876,8 +877,7 @@ igt_main
> igt_skip_on(gen > LAST_KNOWN_GEN);
> }
>
> - for (const struct intel_execution_engine2 *e = intel_execution_engines2;
> - e->name; e++) {
> + __for_each_physical_engine(fd, e) {
> igt_subtest_group {
> igt_fixture {
> igt_require(has_context_isolation & (1 << e->class));
> diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
> index d68431ae..30772159 100644
> --- a/tests/i915/gem_ctx_persistence.c
> +++ b/tests/i915/gem_ctx_persistence.c
> @@ -727,7 +727,7 @@ igt_main
> igt_subtest("hangcheck")
> test_nohangcheck_hostile(i915);
>
> - __for_each_static_engine(e) {
> + __for_each_physical_engine(i915, e) {
> igt_subtest_group {
> igt_fixture {
> gem_require_ring(i915, e->flags);
>

__for_each_static_engine is correct, at least if you don't want CI folks
go look for their pitchforks. :) Same for the first hunk, everything
that enumerates subtests needs to be static.

Option 2, the preferred one - convert the tests to
igt_subtest_with_dynamic and then you can use __for_each_physical_engine.

Regards,

Tvrtko