* [Intel-gfx] [PATCH i-g-t v2 1/3] test/gem_lmem_swapping: account for object rounding @ 2022-03-25 9:09 Matthew Auld 2022-03-25 9:09 ` [Intel-gfx] [PATCH i-g-t v2 2/3] test/gem_lmem_swapping: fix physical engine usage Matthew Auld 2022-03-25 9:09 ` [Intel-gfx] [PATCH i-g-t v2 3/3] tests/gem_lmem_swapping: reduce the timeout Matthew Auld 0 siblings, 2 replies; 4+ messages in thread From: Matthew Auld @ 2022-03-25 9:09 UTC (permalink / raw) To: igt-dev; +Cc: Thomas Hellström, intel-gfx On DG2 the object size might be rounded when allocating lmem. Make sure we account for any rounding up. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Cc: Nirmoy Das <nirmoy.das@linux.intel.com> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com> --- tests/i915/gem_lmem_swapping.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c index 582111dd..193ff370 100644 --- a/tests/i915/gem_lmem_swapping.c +++ b/tests/i915/gem_lmem_swapping.c @@ -72,7 +72,7 @@ struct object { }; static uint32_t create_bo(int i915, - uint64_t size, + uint64_t *size, struct drm_i915_gem_memory_class_instance *region, bool do_oom_test) { @@ -80,7 +80,7 @@ static uint32_t create_bo(int i915, int ret; retry: - ret = __gem_create_in_memory_region_list(i915, &handle, &size, region, 1); + ret = __gem_create_in_memory_region_list(i915, &handle, size, region, 1); if (do_oom_test && ret == -ENOMEM) goto retry; igt_assert_eq(ret, 0); @@ -172,7 +172,7 @@ static void __do_evict(int i915, __gem_context_set_persistence(i915, 0, false); size = 4096; - batch = create_bo(i915, size, region, params->oom_test); + batch = create_bo(i915, &size, region, params->oom_test); gem_write(i915, batch, 0, &bbe, sizeof(bbe)); @@ -199,7 +199,7 @@ static void __do_evict(int i915, params->count = i; break; } - obj->handle = create_bo(i915, obj->size, region, params->oom_test); + obj->handle = create_bo(i915, &obj->size, region, params->oom_test); move_to_lmem(i915, objects + i, 1, batch, engine, params->oom_test); @@ -270,7 +270,7 @@ static void fill_params(int i915, struct params *params, if (flags & TEST_RANDOM) { params->size.min = 4096; - handle = create_bo(i915, params->size.min, ®ion->region, + handle = create_bo(i915, ¶ms->size.min, ®ion->region, do_oom_test); gem_close(i915, handle); params->size.max = 2 * size + params->size.min; -- 2.34.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Intel-gfx] [PATCH i-g-t v2 2/3] test/gem_lmem_swapping: fix physical engine usage 2022-03-25 9:09 [Intel-gfx] [PATCH i-g-t v2 1/3] test/gem_lmem_swapping: account for object rounding Matthew Auld @ 2022-03-25 9:09 ` Matthew Auld 2022-03-28 9:16 ` Thomas Hellström 2022-03-25 9:09 ` [Intel-gfx] [PATCH i-g-t v2 3/3] tests/gem_lmem_swapping: reduce the timeout Matthew Auld 1 sibling, 1 reply; 4+ messages in thread From: Matthew Auld @ 2022-03-25 9:09 UTC (permalink / raw) To: igt-dev; +Cc: Thomas Hellström, intel-gfx During execbuf DG2 currently just hits: "execbuf with unknown ring: 5" It looks like the fix is to convert the test over to using the non-legacy API where we instead fill the ctx with all the physical engines and then engine/ring becomes the index into this. v2: - Make sure we destroy our newly created contexts(Ashutosh) - Tweak the commit message so that we are talking less nonsense(Tvrtko) - s/i915/fd/ when calling set_persistence Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5192 Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> Cc: Nirmoy Das <nirmoy.das@linux.intel.com> --- tests/i915/gem_lmem_swapping.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c index 193ff370..526835cc 100644 --- a/tests/i915/gem_lmem_swapping.c +++ b/tests/i915/gem_lmem_swapping.c @@ -126,6 +126,7 @@ verify_object(int i915, const struct object *obj, unsigned int flags) } static void move_to_lmem(int i915, + const intel_ctx_t *ctx, struct object *list, unsigned int num, uint32_t batch, @@ -137,6 +138,7 @@ static void move_to_lmem(int i915, .buffers_ptr = to_user_pointer(obj), .buffer_count = 1 + num, .flags = I915_EXEC_NO_RELOC | I915_EXEC_HANDLE_LUT | engine, + .rsvd1 = ctx->id, }; unsigned int i, ret; @@ -156,6 +158,7 @@ retry: } static void __do_evict(int i915, + const intel_ctx_t *ctx, struct drm_i915_gem_memory_class_instance *region, struct params *params, unsigned int seed) @@ -170,7 +173,6 @@ static void __do_evict(int i915, struct timespec t = {}; unsigned int num; - __gem_context_set_persistence(i915, 0, false); size = 4096; batch = create_bo(i915, &size, region, params->oom_test); @@ -201,7 +203,7 @@ static void __do_evict(int i915, } obj->handle = create_bo(i915, &obj->size, region, params->oom_test); - move_to_lmem(i915, objects + i, 1, batch, engine, + move_to_lmem(i915, ctx, objects + i, 1, batch, engine, params->oom_test); if (params->flags & TEST_VERIFY) init_object(i915, obj, rand(), params->flags); @@ -226,7 +228,7 @@ static void __do_evict(int i915, idx = (idx + 1) % params->count; } - move_to_lmem(i915, list, num, batch, engine, params->oom_test); + move_to_lmem(i915, ctx, list, num, batch, engine, params->oom_test); if (params->flags & TEST_ENGINES) engine = (engine + 1) % __num_engines__; @@ -342,6 +344,7 @@ static void fill_params(int i915, struct params *params, } static void test_evict(int i915, + const intel_ctx_t *ctx, struct drm_i915_memory_region_info *region, unsigned int flags) { @@ -353,14 +356,18 @@ static void test_evict(int i915, if (flags & TEST_PARALLEL) { int fd = gem_reopen_driver(i915); + ctx = intel_ctx_create_all_physical(fd); + __gem_context_set_persistence(fd, ctx->id, false); + igt_fork(child, nproc) - __do_evict(fd, ®ion->region, ¶ms, + __do_evict(fd, ctx, ®ion->region, ¶ms, params.seed + child + 1); igt_waitchildren(); + intel_ctx_destroy(fd, ctx); close(fd); } else { - __do_evict(i915, ®ion->region, ¶ms, params.seed); + __do_evict(i915, ctx, ®ion->region, ¶ms, params.seed); } } @@ -399,6 +406,7 @@ static void smem_oom_exit_handler(int sig) } static void test_smem_oom(int i915, + const intel_ctx_t *ctx, struct drm_i915_memory_region_info *region) { const uint64_t smem_size = intel_get_total_ram_mb() + @@ -421,7 +429,7 @@ static void test_smem_oom(int i915, fill_params(i915, ¶ms, region, 0, 1, true); igt_install_exit_handler(smem_oom_exit_handler); - __do_evict(fd, ®ion->region, ¶ms, + __do_evict(fd, ctx, ®ion->region, ¶ms, params.seed + child + 1); close(fd); @@ -513,6 +521,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL) { "parallel-multi", TEST_PARALLEL | TEST_RANDOM | TEST_VERIFY | TEST_ENGINES | TEST_MULTI }, { } }; + const intel_ctx_t *ctx; int i915 = -1; igt_fixture { @@ -528,19 +537,23 @@ igt_main_args("", long_options, help_str, opt_handler, NULL) for_each_physical_engine(i915, e) __num_engines__++; igt_require(__num_engines__); + ctx = intel_ctx_create_all_physical(i915); + __gem_context_set_persistence(i915, ctx->id, false); + } for (test = tests; test->name; test++) { igt_describe("Exercise local memory swapping to system memory"); dynamic_lmem_subtest(region, regions, test->name) - test_evict(i915, region, test->flags); + test_evict(i915, ctx, region, test->flags); } igt_describe("Exercise local memory swapping during exhausting system memory"); dynamic_lmem_subtest(region, regions, "smem-oom") - test_smem_oom(i915, region); + test_smem_oom(i915, ctx, region); igt_fixture { + intel_ctx_destroy(i915, ctx); free(regions); close(i915); } -- 2.34.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Intel-gfx] [PATCH i-g-t v2 2/3] test/gem_lmem_swapping: fix physical engine usage 2022-03-25 9:09 ` [Intel-gfx] [PATCH i-g-t v2 2/3] test/gem_lmem_swapping: fix physical engine usage Matthew Auld @ 2022-03-28 9:16 ` Thomas Hellström 0 siblings, 0 replies; 4+ messages in thread From: Thomas Hellström @ 2022-03-28 9:16 UTC (permalink / raw) To: Matthew Auld, igt-dev; +Cc: Thomas Hellström, intel-gfx On 3/25/22 10:09, Matthew Auld wrote: > During execbuf DG2 currently just hits: > > "execbuf with unknown ring: 5" > > It looks like the fix is to convert the test over to using the > non-legacy API where we instead fill the ctx with all the physical > engines and then engine/ring becomes the index into this. > > v2: > - Make sure we destroy our newly created contexts(Ashutosh) > - Tweak the commit message so that we are talking less nonsense(Tvrtko) > - s/i915/fd/ when calling set_persistence > > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5192 > Signed-off-by: Matthew Auld <matthew.auld@intel.com> > Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> > Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> > Cc: Nirmoy Das <nirmoy.das@linux.intel.com> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> > --- > tests/i915/gem_lmem_swapping.c | 29 +++++++++++++++++++++-------- > 1 file changed, 21 insertions(+), 8 deletions(-) > > diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c > index 193ff370..526835cc 100644 > --- a/tests/i915/gem_lmem_swapping.c > +++ b/tests/i915/gem_lmem_swapping.c > @@ -126,6 +126,7 @@ verify_object(int i915, const struct object *obj, unsigned int flags) > } > > static void move_to_lmem(int i915, > + const intel_ctx_t *ctx, > struct object *list, > unsigned int num, > uint32_t batch, > @@ -137,6 +138,7 @@ static void move_to_lmem(int i915, > .buffers_ptr = to_user_pointer(obj), > .buffer_count = 1 + num, > .flags = I915_EXEC_NO_RELOC | I915_EXEC_HANDLE_LUT | engine, > + .rsvd1 = ctx->id, > }; > unsigned int i, ret; > > @@ -156,6 +158,7 @@ retry: > } > > static void __do_evict(int i915, > + const intel_ctx_t *ctx, > struct drm_i915_gem_memory_class_instance *region, > struct params *params, > unsigned int seed) > @@ -170,7 +173,6 @@ static void __do_evict(int i915, > struct timespec t = {}; > unsigned int num; > > - __gem_context_set_persistence(i915, 0, false); > size = 4096; > batch = create_bo(i915, &size, region, params->oom_test); > > @@ -201,7 +203,7 @@ static void __do_evict(int i915, > } > obj->handle = create_bo(i915, &obj->size, region, params->oom_test); > > - move_to_lmem(i915, objects + i, 1, batch, engine, > + move_to_lmem(i915, ctx, objects + i, 1, batch, engine, > params->oom_test); > if (params->flags & TEST_VERIFY) > init_object(i915, obj, rand(), params->flags); > @@ -226,7 +228,7 @@ static void __do_evict(int i915, > idx = (idx + 1) % params->count; > } > > - move_to_lmem(i915, list, num, batch, engine, params->oom_test); > + move_to_lmem(i915, ctx, list, num, batch, engine, params->oom_test); > > if (params->flags & TEST_ENGINES) > engine = (engine + 1) % __num_engines__; > @@ -342,6 +344,7 @@ static void fill_params(int i915, struct params *params, > } > > static void test_evict(int i915, > + const intel_ctx_t *ctx, > struct drm_i915_memory_region_info *region, > unsigned int flags) > { > @@ -353,14 +356,18 @@ static void test_evict(int i915, > if (flags & TEST_PARALLEL) { > int fd = gem_reopen_driver(i915); > > + ctx = intel_ctx_create_all_physical(fd); > + __gem_context_set_persistence(fd, ctx->id, false); > + > igt_fork(child, nproc) > - __do_evict(fd, ®ion->region, ¶ms, > + __do_evict(fd, ctx, ®ion->region, ¶ms, > params.seed + child + 1); > > igt_waitchildren(); > + intel_ctx_destroy(fd, ctx); > close(fd); > } else { > - __do_evict(i915, ®ion->region, ¶ms, params.seed); > + __do_evict(i915, ctx, ®ion->region, ¶ms, params.seed); > } > } > > @@ -399,6 +406,7 @@ static void smem_oom_exit_handler(int sig) > } > > static void test_smem_oom(int i915, > + const intel_ctx_t *ctx, > struct drm_i915_memory_region_info *region) > { > const uint64_t smem_size = intel_get_total_ram_mb() + > @@ -421,7 +429,7 @@ static void test_smem_oom(int i915, > fill_params(i915, ¶ms, region, 0, 1, true); > > igt_install_exit_handler(smem_oom_exit_handler); > - __do_evict(fd, ®ion->region, ¶ms, > + __do_evict(fd, ctx, ®ion->region, ¶ms, > params.seed + child + 1); > > close(fd); > @@ -513,6 +521,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL) > { "parallel-multi", TEST_PARALLEL | TEST_RANDOM | TEST_VERIFY | TEST_ENGINES | TEST_MULTI }, > { } > }; > + const intel_ctx_t *ctx; > int i915 = -1; > > igt_fixture { > @@ -528,19 +537,23 @@ igt_main_args("", long_options, help_str, opt_handler, NULL) > for_each_physical_engine(i915, e) > __num_engines__++; > igt_require(__num_engines__); > + ctx = intel_ctx_create_all_physical(i915); > + __gem_context_set_persistence(i915, ctx->id, false); > + > } > > for (test = tests; test->name; test++) { > igt_describe("Exercise local memory swapping to system memory"); > dynamic_lmem_subtest(region, regions, test->name) > - test_evict(i915, region, test->flags); > + test_evict(i915, ctx, region, test->flags); > } > > igt_describe("Exercise local memory swapping during exhausting system memory"); > dynamic_lmem_subtest(region, regions, "smem-oom") > - test_smem_oom(i915, region); > + test_smem_oom(i915, ctx, region); > > igt_fixture { > + intel_ctx_destroy(i915, ctx); > free(regions); > close(i915); > } ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Intel-gfx] [PATCH i-g-t v2 3/3] tests/gem_lmem_swapping: reduce the timeout 2022-03-25 9:09 [Intel-gfx] [PATCH i-g-t v2 1/3] test/gem_lmem_swapping: account for object rounding Matthew Auld 2022-03-25 9:09 ` [Intel-gfx] [PATCH i-g-t v2 2/3] test/gem_lmem_swapping: fix physical engine usage Matthew Auld @ 2022-03-25 9:09 ` Matthew Auld 1 sibling, 0 replies; 4+ messages in thread From: Matthew Auld @ 2022-03-25 9:09 UTC (permalink / raw) To: igt-dev; +Cc: Thomas Hellström, intel-gfx 300s is way too much for some BAT test. Drop it down to 45s. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Cc: Nirmoy Das <nirmoy.das@linux.intel.com> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> --- tests/i915/gem_lmem_swapping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c index 526835cc..31644bcd 100644 --- a/tests/i915/gem_lmem_swapping.c +++ b/tests/i915/gem_lmem_swapping.c @@ -219,7 +219,7 @@ static void __do_evict(int i915, * For TEST_MULTI runs, make each object counts a loop to * avoid excessive run times. */ - for (l = 0; l < params->loops && igt_seconds_elapsed(&t) < 300; l += num) { + for (l = 0; l < params->loops && igt_seconds_elapsed(&t) < 45; l += num) { unsigned int idx = rand() % params->count; num = params->flags & TEST_MULTI ? rand() % max_swap_in + 1 : 1; -- 2.34.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-03-28 9:17 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-03-25 9:09 [Intel-gfx] [PATCH i-g-t v2 1/3] test/gem_lmem_swapping: account for object rounding Matthew Auld 2022-03-25 9:09 ` [Intel-gfx] [PATCH i-g-t v2 2/3] test/gem_lmem_swapping: fix physical engine usage Matthew Auld 2022-03-28 9:16 ` Thomas Hellström 2022-03-25 9:09 ` [Intel-gfx] [PATCH i-g-t v2 3/3] tests/gem_lmem_swapping: reduce the timeout Matthew Auld
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox