* [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support.
@ 2021-12-31 5:55 sai.gowtham.ch
2022-01-03 8:09 ` Zbigniew Kempczyński
0 siblings, 1 reply; 10+ messages in thread
From: sai.gowtham.ch @ 2021-12-31 5:55 UTC (permalink / raw)
To: igt-dev, sai.gowtham.ch, zbigniew.kempczynski
From: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
Adding local memory support to many-4K-zero subtest.
Signed-off-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
tests/i915/gem_exec_capture.c | 35 +++++++++++++++++++++--------------
1 file changed, 21 insertions(+), 14 deletions(-)
diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
index 9beb36fc..19cfa53d 100644
--- a/tests/i915/gem_exec_capture.c
+++ b/tests/i915/gem_exec_capture.c
@@ -406,7 +406,7 @@ static struct offset *
__captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
const struct intel_execution_engine2 *e,
unsigned int size, int count,
- unsigned int flags, int *_fence_out)
+ unsigned int flags, int *_fence_out, uint32_t region)
#define INCREMENTAL 0x1
#define ASYNC 0x2
{
@@ -426,7 +426,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
obj = calloc(count + 2, sizeof(*obj));
igt_assert(obj);
- obj[0].handle = gem_create(fd, 4096);
+ obj[0].handle = gem_create_in_memory_regions(fd, 4096, region);
obj[0].offset = get_offset(ahnd, obj[0].handle, 4096, 0);
obj[0].flags = EXEC_OBJECT_WRITE | (ahnd ? EXEC_OBJECT_PINNED : 0);
@@ -449,7 +449,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
}
}
- obj[count + 1].handle = gem_create(fd, 4096);
+ obj[count + 1].handle = gem_create_in_memory_regions(fd, 4096, region);
obj[count + 1].relocs_ptr = (uintptr_t)reloc;
obj[count + 1].relocation_count = !ahnd ? ARRAY_SIZE(reloc) : 0;
obj[count + 1].offset = get_offset(ahnd, obj[count + 1].handle, 4096, 0);
@@ -573,7 +573,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
configure_hangs(fd, e, ctx->id); \
} while(0)
-static void many(int fd, int dir, uint64_t size, unsigned int flags)
+static void many(int fd, int dir, uint64_t size, unsigned int flags, uint32_t region)
{
const struct intel_execution_engine2 *e;
const intel_ctx_t *ctx;
@@ -594,7 +594,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
intel_require_memory(count, size, CHECK_RAM);
ahnd = get_reloc_ahnd(fd, ctx->id);
- offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL);
+ offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL, region);
blobs = check_error_state(dir, offsets, count, size, !!(flags & INCREMENTAL));
igt_info("Captured %lu %"PRId64"-blobs out of a total of %lu\n",
@@ -605,7 +605,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
}
static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
- const struct intel_execution_engine2 *e)
+ const struct intel_execution_engine2 *e, uint32_t system_region)
{
const uint32_t bbe = MI_BATCH_BUFFER_END;
struct drm_i915_gem_exec_object2 obj = {
@@ -659,7 +659,7 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
/* Reopen the allocator in the new process. */
ahnd = get_reloc_ahnd(fd, ctx2->id);
- free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out));
+ free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out, system_region));
put_ahnd(ahnd);
write(link[1], &fd, sizeof(fd)); /* wake the parent up */
@@ -744,6 +744,7 @@ igt_main
struct igt_collection *regions, *set;
char *sub_name;
uint32_t region;
+ uint32_t system_region = INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0);
igt_fixture {
int gen;
@@ -780,29 +781,35 @@ igt_main
}
}
- igt_subtest_f("many-4K-zero") {
+ igt_subtest_with_dynamic("many-4K-zero") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 1<<12, 0);
+ for_each_combination(regions, 1, set) {
+ sub_name = memregion_dynamic_subtest_name(regions);
+ region = igt_collection_get_value(regions, 0);
+ igt_dynamic_f("%s", sub_name)
+ many(fd, dir, 1<<12, 0, region);
+ free(sub_name);
+ }
}
igt_subtest_f("many-4K-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 1<<12, INCREMENTAL);
+ many(fd, dir, 1<<12, INCREMENTAL, system_region);
}
igt_subtest_f("many-2M-zero") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 2<<20, 0);
+ many(fd, dir, 2<<20, 0, system_region);
}
igt_subtest_f("many-2M-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 2<<20, INCREMENTAL);
+ many(fd, dir, 2<<20, INCREMENTAL, system_region);
}
igt_subtest_f("many-256M-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 256<<20, INCREMENTAL);
+ many(fd, dir, 256<<20, INCREMENTAL, system_region);
}
/* And check we can read from different types of objects */
@@ -814,7 +821,7 @@ igt_main
test_each_engine("pi", fd, ctx, e)
igt_dynamic_f("%s", (e)->name)
- prioinv(fd, dir, ctx, e);
+ prioinv(fd, dir, ctx, e, system_region);
igt_fixture {
close(dir);
--
2.32.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support.
2021-12-31 5:55 sai.gowtham.ch
@ 2022-01-03 8:09 ` Zbigniew Kempczyński
0 siblings, 0 replies; 10+ messages in thread
From: Zbigniew Kempczyński @ 2022-01-03 8:09 UTC (permalink / raw)
To: sai.gowtham.ch; +Cc: igt-dev
On Fri, Dec 31, 2021 at 11:25:26AM +0530, sai.gowtham.ch@intel.com wrote:
> From: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
>
> Adding local memory support to many-4K-zero subtest.
>
> Signed-off-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> ---
> tests/i915/gem_exec_capture.c | 35 +++++++++++++++++++++--------------
> 1 file changed, 21 insertions(+), 14 deletions(-)
>
> diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
> index 9beb36fc..19cfa53d 100644
> --- a/tests/i915/gem_exec_capture.c
> +++ b/tests/i915/gem_exec_capture.c
> @@ -406,7 +406,7 @@ static struct offset *
> __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> const struct intel_execution_engine2 *e,
> unsigned int size, int count,
> - unsigned int flags, int *_fence_out)
> + unsigned int flags, int *_fence_out, uint32_t region)
> #define INCREMENTAL 0x1
> #define ASYNC 0x2
> {
> @@ -426,7 +426,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> obj = calloc(count + 2, sizeof(*obj));
> igt_assert(obj);
>
> - obj[0].handle = gem_create(fd, 4096);
> + obj[0].handle = gem_create_in_memory_regions(fd, 4096, region);
> obj[0].offset = get_offset(ahnd, obj[0].handle, 4096, 0);
> obj[0].flags = EXEC_OBJECT_WRITE | (ahnd ? EXEC_OBJECT_PINNED : 0);
>
> @@ -449,7 +449,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> }
> }
>
> - obj[count + 1].handle = gem_create(fd, 4096);
> + obj[count + 1].handle = gem_create_in_memory_regions(fd, 4096, region);
> obj[count + 1].relocs_ptr = (uintptr_t)reloc;
> obj[count + 1].relocation_count = !ahnd ? ARRAY_SIZE(reloc) : 0;
> obj[count + 1].offset = get_offset(ahnd, obj[count + 1].handle, 4096, 0);
> @@ -573,7 +573,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> configure_hangs(fd, e, ctx->id); \
> } while(0)
>
> -static void many(int fd, int dir, uint64_t size, unsigned int flags)
> +static void many(int fd, int dir, uint64_t size, unsigned int flags, uint32_t region)
> {
> const struct intel_execution_engine2 *e;
> const intel_ctx_t *ctx;
> @@ -594,7 +594,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
> intel_require_memory(count, size, CHECK_RAM);
> ahnd = get_reloc_ahnd(fd, ctx->id);
>
> - offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL);
> + offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL, region);
>
> blobs = check_error_state(dir, offsets, count, size, !!(flags & INCREMENTAL));
> igt_info("Captured %lu %"PRId64"-blobs out of a total of %lu\n",
> @@ -605,7 +605,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
> }
>
> static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
> - const struct intel_execution_engine2 *e)
> + const struct intel_execution_engine2 *e, uint32_t system_region)
Change system_region -> region, caller is passing this so suggesting name
here is not good idea and can be confusing.
> {
> const uint32_t bbe = MI_BATCH_BUFFER_END;
> struct drm_i915_gem_exec_object2 obj = {
> @@ -659,7 +659,7 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
> /* Reopen the allocator in the new process. */
> ahnd = get_reloc_ahnd(fd, ctx2->id);
>
> - free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out));
> + free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out, system_region));
Avoid long lines, here I would break before &fence_out.
With above fixed:
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
--
Zbigniew
> put_ahnd(ahnd);
>
> write(link[1], &fd, sizeof(fd)); /* wake the parent up */
> @@ -744,6 +744,7 @@ igt_main
> struct igt_collection *regions, *set;
> char *sub_name;
> uint32_t region;
> + uint32_t system_region = INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0);
>
> igt_fixture {
> int gen;
> @@ -780,29 +781,35 @@ igt_main
> }
> }
>
> - igt_subtest_f("many-4K-zero") {
> + igt_subtest_with_dynamic("many-4K-zero") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 1<<12, 0);
> + for_each_combination(regions, 1, set) {
> + sub_name = memregion_dynamic_subtest_name(regions);
> + region = igt_collection_get_value(regions, 0);
> + igt_dynamic_f("%s", sub_name)
> + many(fd, dir, 1<<12, 0, region);
> + free(sub_name);
> + }
> }
>
> igt_subtest_f("many-4K-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 1<<12, INCREMENTAL);
> + many(fd, dir, 1<<12, INCREMENTAL, system_region);
> }
>
> igt_subtest_f("many-2M-zero") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 2<<20, 0);
> + many(fd, dir, 2<<20, 0, system_region);
> }
>
> igt_subtest_f("many-2M-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 2<<20, INCREMENTAL);
> + many(fd, dir, 2<<20, INCREMENTAL, system_region);
> }
>
> igt_subtest_f("many-256M-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 256<<20, INCREMENTAL);
> + many(fd, dir, 256<<20, INCREMENTAL, system_region);
> }
>
> /* And check we can read from different types of objects */
> @@ -814,7 +821,7 @@ igt_main
>
> test_each_engine("pi", fd, ctx, e)
> igt_dynamic_f("%s", (e)->name)
> - prioinv(fd, dir, ctx, e);
> + prioinv(fd, dir, ctx, e, system_region);
>
> igt_fixture {
> close(dir);
> --
> 2.32.0
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support
@ 2022-01-03 8:21 sai.gowtham.ch
0 siblings, 0 replies; 10+ messages in thread
From: sai.gowtham.ch @ 2022-01-03 8:21 UTC (permalink / raw)
To: igt-dev, sai.gowtham.ch, zbigniew.kempczynski
From: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
Adding local memory support to many-4K-zero subtest.
Signed-off-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
tests/i915/gem_exec_capture.c | 36 +++++++++++++++++++++--------------
1 file changed, 22 insertions(+), 14 deletions(-)
diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
index 9beb36fc..35cd9aa1 100644
--- a/tests/i915/gem_exec_capture.c
+++ b/tests/i915/gem_exec_capture.c
@@ -406,7 +406,7 @@ static struct offset *
__captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
const struct intel_execution_engine2 *e,
unsigned int size, int count,
- unsigned int flags, int *_fence_out)
+ unsigned int flags, int *_fence_out, uint32_t region)
#define INCREMENTAL 0x1
#define ASYNC 0x2
{
@@ -426,7 +426,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
obj = calloc(count + 2, sizeof(*obj));
igt_assert(obj);
- obj[0].handle = gem_create(fd, 4096);
+ obj[0].handle = gem_create_in_memory_regions(fd, 4096, region);
obj[0].offset = get_offset(ahnd, obj[0].handle, 4096, 0);
obj[0].flags = EXEC_OBJECT_WRITE | (ahnd ? EXEC_OBJECT_PINNED : 0);
@@ -449,7 +449,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
}
}
- obj[count + 1].handle = gem_create(fd, 4096);
+ obj[count + 1].handle = gem_create_in_memory_regions(fd, 4096, region);
obj[count + 1].relocs_ptr = (uintptr_t)reloc;
obj[count + 1].relocation_count = !ahnd ? ARRAY_SIZE(reloc) : 0;
obj[count + 1].offset = get_offset(ahnd, obj[count + 1].handle, 4096, 0);
@@ -573,7 +573,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
configure_hangs(fd, e, ctx->id); \
} while(0)
-static void many(int fd, int dir, uint64_t size, unsigned int flags)
+static void many(int fd, int dir, uint64_t size, unsigned int flags, uint32_t region)
{
const struct intel_execution_engine2 *e;
const intel_ctx_t *ctx;
@@ -594,7 +594,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
intel_require_memory(count, size, CHECK_RAM);
ahnd = get_reloc_ahnd(fd, ctx->id);
- offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL);
+ offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL, region);
blobs = check_error_state(dir, offsets, count, size, !!(flags & INCREMENTAL));
igt_info("Captured %lu %"PRId64"-blobs out of a total of %lu\n",
@@ -605,7 +605,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
}
static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
- const struct intel_execution_engine2 *e)
+ const struct intel_execution_engine2 *e, uint32_t system_region)
{
const uint32_t bbe = MI_BATCH_BUFFER_END;
struct drm_i915_gem_exec_object2 obj = {
@@ -659,7 +659,8 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
/* Reopen the allocator in the new process. */
ahnd = get_reloc_ahnd(fd, ctx2->id);
- free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out));
+ free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC,
+ &fence_out, system_region));
put_ahnd(ahnd);
write(link[1], &fd, sizeof(fd)); /* wake the parent up */
@@ -744,6 +745,7 @@ igt_main
struct igt_collection *regions, *set;
char *sub_name;
uint32_t region;
+ uint32_t system_region = INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0);
igt_fixture {
int gen;
@@ -780,29 +782,35 @@ igt_main
}
}
- igt_subtest_f("many-4K-zero") {
+ igt_subtest_with_dynamic("many-4K-zero") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 1<<12, 0);
+ for_each_combination(regions, 1, set) {
+ sub_name = memregion_dynamic_subtest_name(regions);
+ region = igt_collection_get_value(regions, 0);
+ igt_dynamic_f("%s", sub_name)
+ many(fd, dir, 1<<12, 0, region);
+ free(sub_name);
+ }
}
igt_subtest_f("many-4K-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 1<<12, INCREMENTAL);
+ many(fd, dir, 1<<12, INCREMENTAL, system_region);
}
igt_subtest_f("many-2M-zero") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 2<<20, 0);
+ many(fd, dir, 2<<20, 0, system_region);
}
igt_subtest_f("many-2M-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 2<<20, INCREMENTAL);
+ many(fd, dir, 2<<20, INCREMENTAL, system_region);
}
igt_subtest_f("many-256M-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 256<<20, INCREMENTAL);
+ many(fd, dir, 256<<20, INCREMENTAL, system_region);
}
/* And check we can read from different types of objects */
@@ -814,7 +822,7 @@ igt_main
test_each_engine("pi", fd, ctx, e)
igt_dynamic_f("%s", (e)->name)
- prioinv(fd, dir, ctx, e);
+ prioinv(fd, dir, ctx, e, system_region);
igt_fixture {
close(dir);
--
2.32.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support
@ 2022-01-03 8:54 sai.gowtham.ch
2022-01-03 9:40 ` Zbigniew Kempczyński
0 siblings, 1 reply; 10+ messages in thread
From: sai.gowtham.ch @ 2022-01-03 8:54 UTC (permalink / raw)
To: igt-dev, sai.gowtham.ch, zbigniew.kempczynski
From: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
Adding local memory support to many-4K-zero subtest
Signed-off-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
tests/i915/gem_exec_capture.c | 36 +++++++++++++++++++++--------------
1 file changed, 22 insertions(+), 14 deletions(-)
diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
index 9beb36fc..26d8eb77 100644
--- a/tests/i915/gem_exec_capture.c
+++ b/tests/i915/gem_exec_capture.c
@@ -406,7 +406,7 @@ static struct offset *
__captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
const struct intel_execution_engine2 *e,
unsigned int size, int count,
- unsigned int flags, int *_fence_out)
+ unsigned int flags, int *_fence_out, uint32_t region)
#define INCREMENTAL 0x1
#define ASYNC 0x2
{
@@ -426,7 +426,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
obj = calloc(count + 2, sizeof(*obj));
igt_assert(obj);
- obj[0].handle = gem_create(fd, 4096);
+ obj[0].handle = gem_create_in_memory_regions(fd, 4096, region);
obj[0].offset = get_offset(ahnd, obj[0].handle, 4096, 0);
obj[0].flags = EXEC_OBJECT_WRITE | (ahnd ? EXEC_OBJECT_PINNED : 0);
@@ -449,7 +449,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
}
}
- obj[count + 1].handle = gem_create(fd, 4096);
+ obj[count + 1].handle = gem_create_in_memory_regions(fd, 4096, region);
obj[count + 1].relocs_ptr = (uintptr_t)reloc;
obj[count + 1].relocation_count = !ahnd ? ARRAY_SIZE(reloc) : 0;
obj[count + 1].offset = get_offset(ahnd, obj[count + 1].handle, 4096, 0);
@@ -573,7 +573,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
configure_hangs(fd, e, ctx->id); \
} while(0)
-static void many(int fd, int dir, uint64_t size, unsigned int flags)
+static void many(int fd, int dir, uint64_t size, unsigned int flags, uint32_t region)
{
const struct intel_execution_engine2 *e;
const intel_ctx_t *ctx;
@@ -594,7 +594,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
intel_require_memory(count, size, CHECK_RAM);
ahnd = get_reloc_ahnd(fd, ctx->id);
- offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL);
+ offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL, region);
blobs = check_error_state(dir, offsets, count, size, !!(flags & INCREMENTAL));
igt_info("Captured %lu %"PRId64"-blobs out of a total of %lu\n",
@@ -605,7 +605,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
}
static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
- const struct intel_execution_engine2 *e)
+ const struct intel_execution_engine2 *e, uint32_t region)
{
const uint32_t bbe = MI_BATCH_BUFFER_END;
struct drm_i915_gem_exec_object2 obj = {
@@ -659,7 +659,8 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
/* Reopen the allocator in the new process. */
ahnd = get_reloc_ahnd(fd, ctx2->id);
- free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out));
+ free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC,
+ &fence_out, region));
put_ahnd(ahnd);
write(link[1], &fd, sizeof(fd)); /* wake the parent up */
@@ -744,6 +745,7 @@ igt_main
struct igt_collection *regions, *set;
char *sub_name;
uint32_t region;
+ uint32_t system_region = INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0);
igt_fixture {
int gen;
@@ -780,29 +782,35 @@ igt_main
}
}
- igt_subtest_f("many-4K-zero") {
+ igt_subtest_with_dynamic("many-4K-zero") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 1<<12, 0);
+ for_each_combination(regions, 1, set) {
+ sub_name = memregion_dynamic_subtest_name(regions);
+ region = igt_collection_get_value(regions, 0);
+ igt_dynamic_f("%s", sub_name)
+ many(fd, dir, 1<<12, 0, region);
+ free(sub_name);
+ }
}
igt_subtest_f("many-4K-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 1<<12, INCREMENTAL);
+ many(fd, dir, 1<<12, INCREMENTAL, system_region);
}
igt_subtest_f("many-2M-zero") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 2<<20, 0);
+ many(fd, dir, 2<<20, 0, system_region);
}
igt_subtest_f("many-2M-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 2<<20, INCREMENTAL);
+ many(fd, dir, 2<<20, INCREMENTAL, system_region);
}
igt_subtest_f("many-256M-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 256<<20, INCREMENTAL);
+ many(fd, dir, 256<<20, INCREMENTAL, system_region);
}
/* And check we can read from different types of objects */
@@ -814,7 +822,7 @@ igt_main
test_each_engine("pi", fd, ctx, e)
igt_dynamic_f("%s", (e)->name)
- prioinv(fd, dir, ctx, e);
+ prioinv(fd, dir, ctx, e, system_region);
igt_fixture {
close(dir);
--
2.32.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support
2022-01-03 8:54 sai.gowtham.ch
@ 2022-01-03 9:40 ` Zbigniew Kempczyński
0 siblings, 0 replies; 10+ messages in thread
From: Zbigniew Kempczyński @ 2022-01-03 9:40 UTC (permalink / raw)
To: sai.gowtham.ch; +Cc: igt-dev
On Mon, Jan 03, 2022 at 02:24:42PM +0530, sai.gowtham.ch@intel.com wrote:
> From: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
>
> Adding local memory support to many-4K-zero subtest
>
> Signed-off-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Looks good for me:
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
--
Zbigniew
> ---
> tests/i915/gem_exec_capture.c | 36 +++++++++++++++++++++--------------
> 1 file changed, 22 insertions(+), 14 deletions(-)
>
> diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
> index 9beb36fc..26d8eb77 100644
> --- a/tests/i915/gem_exec_capture.c
> +++ b/tests/i915/gem_exec_capture.c
> @@ -406,7 +406,7 @@ static struct offset *
> __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> const struct intel_execution_engine2 *e,
> unsigned int size, int count,
> - unsigned int flags, int *_fence_out)
> + unsigned int flags, int *_fence_out, uint32_t region)
> #define INCREMENTAL 0x1
> #define ASYNC 0x2
> {
> @@ -426,7 +426,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> obj = calloc(count + 2, sizeof(*obj));
> igt_assert(obj);
>
> - obj[0].handle = gem_create(fd, 4096);
> + obj[0].handle = gem_create_in_memory_regions(fd, 4096, region);
> obj[0].offset = get_offset(ahnd, obj[0].handle, 4096, 0);
> obj[0].flags = EXEC_OBJECT_WRITE | (ahnd ? EXEC_OBJECT_PINNED : 0);
>
> @@ -449,7 +449,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> }
> }
>
> - obj[count + 1].handle = gem_create(fd, 4096);
> + obj[count + 1].handle = gem_create_in_memory_regions(fd, 4096, region);
> obj[count + 1].relocs_ptr = (uintptr_t)reloc;
> obj[count + 1].relocation_count = !ahnd ? ARRAY_SIZE(reloc) : 0;
> obj[count + 1].offset = get_offset(ahnd, obj[count + 1].handle, 4096, 0);
> @@ -573,7 +573,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> configure_hangs(fd, e, ctx->id); \
> } while(0)
>
> -static void many(int fd, int dir, uint64_t size, unsigned int flags)
> +static void many(int fd, int dir, uint64_t size, unsigned int flags, uint32_t region)
> {
> const struct intel_execution_engine2 *e;
> const intel_ctx_t *ctx;
> @@ -594,7 +594,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
> intel_require_memory(count, size, CHECK_RAM);
> ahnd = get_reloc_ahnd(fd, ctx->id);
>
> - offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL);
> + offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL, region);
>
> blobs = check_error_state(dir, offsets, count, size, !!(flags & INCREMENTAL));
> igt_info("Captured %lu %"PRId64"-blobs out of a total of %lu\n",
> @@ -605,7 +605,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
> }
>
> static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
> - const struct intel_execution_engine2 *e)
> + const struct intel_execution_engine2 *e, uint32_t region)
> {
> const uint32_t bbe = MI_BATCH_BUFFER_END;
> struct drm_i915_gem_exec_object2 obj = {
> @@ -659,7 +659,8 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
> /* Reopen the allocator in the new process. */
> ahnd = get_reloc_ahnd(fd, ctx2->id);
>
> - free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out));
> + free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC,
> + &fence_out, region));
> put_ahnd(ahnd);
>
> write(link[1], &fd, sizeof(fd)); /* wake the parent up */
> @@ -744,6 +745,7 @@ igt_main
> struct igt_collection *regions, *set;
> char *sub_name;
> uint32_t region;
> + uint32_t system_region = INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0);
>
> igt_fixture {
> int gen;
> @@ -780,29 +782,35 @@ igt_main
> }
> }
>
> - igt_subtest_f("many-4K-zero") {
> + igt_subtest_with_dynamic("many-4K-zero") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 1<<12, 0);
> + for_each_combination(regions, 1, set) {
> + sub_name = memregion_dynamic_subtest_name(regions);
> + region = igt_collection_get_value(regions, 0);
> + igt_dynamic_f("%s", sub_name)
> + many(fd, dir, 1<<12, 0, region);
> + free(sub_name);
> + }
> }
>
> igt_subtest_f("many-4K-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 1<<12, INCREMENTAL);
> + many(fd, dir, 1<<12, INCREMENTAL, system_region);
> }
>
> igt_subtest_f("many-2M-zero") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 2<<20, 0);
> + many(fd, dir, 2<<20, 0, system_region);
> }
>
> igt_subtest_f("many-2M-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 2<<20, INCREMENTAL);
> + many(fd, dir, 2<<20, INCREMENTAL, system_region);
> }
>
> igt_subtest_f("many-256M-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 256<<20, INCREMENTAL);
> + many(fd, dir, 256<<20, INCREMENTAL, system_region);
> }
>
> /* And check we can read from different types of objects */
> @@ -814,7 +822,7 @@ igt_main
>
> test_each_engine("pi", fd, ctx, e)
> igt_dynamic_f("%s", (e)->name)
> - prioinv(fd, dir, ctx, e);
> + prioinv(fd, dir, ctx, e, system_region);
>
> igt_fixture {
> close(dir);
> --
> 2.32.0
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support
@ 2022-02-24 5:20 sai.gowtham.ch
2022-02-24 7:23 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/i915/gem_exec_capture: Adding Local memory support (rev4) Patchwork
2022-03-11 8:44 ` [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support Zbigniew Kempczyński
0 siblings, 2 replies; 10+ messages in thread
From: sai.gowtham.ch @ 2022-02-24 5:20 UTC (permalink / raw)
To: igt-dev, sai.gowtham.ch, zbigniew.kempczynski
From: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
Adding local memory support to many-4K-zero subtest
Signed-off-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
tests/i915/gem_exec_capture.c | 36 +++++++++++++++++++++--------------
1 file changed, 22 insertions(+), 14 deletions(-)
diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
index 60f8df04..3eb516e7 100644
--- a/tests/i915/gem_exec_capture.c
+++ b/tests/i915/gem_exec_capture.c
@@ -415,7 +415,7 @@ static struct offset *
__captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
const struct intel_execution_engine2 *e,
unsigned int size, int count,
- unsigned int flags, int *_fence_out)
+ unsigned int flags, int *_fence_out, uint32_t region)
#define INCREMENTAL 0x1
#define ASYNC 0x2
{
@@ -436,7 +436,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
obj = calloc(count + 2, sizeof(*obj));
igt_assert(obj);
- obj[0].handle = gem_create(fd, 4096);
+ obj[0].handle = gem_create_in_memory_regions(fd, 4096, region);
obj[0].offset = get_offset(ahnd, obj[0].handle, 4096, 0);
obj[0].flags = EXEC_OBJECT_WRITE | (ahnd ? EXEC_OBJECT_PINNED : 0);
@@ -459,7 +459,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
}
}
- obj[count + 1].handle = gem_create(fd, 4096);
+ obj[count + 1].handle = gem_create_in_memory_regions(fd, 4096, region);
obj[count + 1].relocs_ptr = (uintptr_t)reloc;
obj[count + 1].relocation_count = !ahnd ? ARRAY_SIZE(reloc) : 0;
obj[count + 1].offset = get_offset(ahnd, obj[count + 1].handle, 4096, 0);
@@ -585,7 +585,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
saved = configure_hangs(fd, e, ctx->id); \
} while(0)
-static void many(int fd, int dir, uint64_t size, unsigned int flags)
+static void many(int fd, int dir, uint64_t size, unsigned int flags, uint32_t region)
{
const struct intel_execution_engine2 *e;
const intel_ctx_t *ctx;
@@ -607,7 +607,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
intel_require_memory(count, size, CHECK_RAM);
ahnd = get_reloc_ahnd(fd, ctx->id);
- offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL);
+ offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL, region);
blobs = check_error_state(dir, offsets, count, size, !!(flags & INCREMENTAL));
igt_info("Captured %lu %"PRId64"-blobs out of a total of %lu\n",
@@ -620,7 +620,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
}
static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
- const struct intel_execution_engine2 *e)
+ const struct intel_execution_engine2 *e, uint32_t region)
{
const uint32_t bbe = MI_BATCH_BUFFER_END;
struct drm_i915_gem_exec_object2 obj = {
@@ -677,7 +677,7 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
/* Reopen the allocator in the new process. */
ahnd = get_reloc_ahnd(fd, ctx2->id);
- free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out));
+ free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out, region));
put_ahnd(ahnd);
write(link[1], &fd, sizeof(fd)); /* wake the parent up */
@@ -767,6 +767,7 @@ igt_main
struct igt_collection *regions, *set;
char *sub_name;
uint32_t region;
+ uint32_t system_region = INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0);
igt_fixture {
int gen;
@@ -803,29 +804,36 @@ igt_main
}
}
- igt_subtest_f("many-4K-zero") {
+
+ igt_subtest_with_dynamic("many-4K-zero") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 1<<12, 0);
+ for_each_combination(regions, 1, set) {
+ sub_name = memregion_dynamic_subtest_name(regions);
+ region = igt_collection_get_value(regions, 0);
+ igt_dynamic_f("%s", sub_name)
+ many(fd, dir, 1<<12, 0, region);
+ free(sub_name);
+ }
}
igt_subtest_f("many-4K-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 1<<12, INCREMENTAL);
+ many(fd, dir, 1<<12, INCREMENTAL, system_region);
}
igt_subtest_f("many-2M-zero") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 2<<20, 0);
+ many(fd, dir, 2<<20, 0, system_region);
}
igt_subtest_f("many-2M-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 2<<20, INCREMENTAL);
+ many(fd, dir, 2<<20, INCREMENTAL, system_region);
}
igt_subtest_f("many-256M-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 256<<20, INCREMENTAL);
+ many(fd, dir, 256<<20, INCREMENTAL, system_region);
}
/* And check we can read from different types of objects */
@@ -837,7 +845,7 @@ igt_main
test_each_engine("pi", fd, ctx, e)
igt_dynamic_f("%s", (e)->name)
- prioinv(fd, dir, ctx, e);
+ prioinv(fd, dir, ctx, e, system_region);
igt_fixture {
close(dir);
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for tests/i915/gem_exec_capture: Adding Local memory support (rev4)
2022-02-24 5:20 [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support sai.gowtham.ch
@ 2022-02-24 7:23 ` Patchwork
2022-03-11 8:44 ` [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support Zbigniew Kempczyński
1 sibling, 0 replies; 10+ messages in thread
From: Patchwork @ 2022-02-24 7:23 UTC (permalink / raw)
To: sai.gowtham.ch; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 7510 bytes --]
== Series Details ==
Series: tests/i915/gem_exec_capture: Adding Local memory support (rev4)
URL : https://patchwork.freedesktop.org/series/98446/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_11277 -> IGTPW_6695
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_6695 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_6695, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/index.html
Participating hosts (45 -> 42)
------------------------------
Additional (1): bat-adlp-4
Missing (4): fi-kbl-soraka fi-bsw-cyan fi-icl-u2 fi-bdw-samus
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_6695:
### IGT changes ###
#### Possible regressions ####
* igt@i915_selftest@live@gt_engines:
- fi-rkl-guc: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11277/fi-rkl-guc/igt@i915_selftest@live@gt_engines.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/fi-rkl-guc/igt@i915_selftest@live@gt_engines.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@i915_selftest@live:
- {bat-dg2-8}: NOTRUN -> [FAIL][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/bat-dg2-8/igt@i915_selftest@live.html
Known issues
------------
Here are the changes found in IGTPW_6695 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@amdgpu/amd_cs_nop@fork-compute0:
- fi-ivb-3770: NOTRUN -> [SKIP][4] ([fdo#109271]) +17 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/fi-ivb-3770/igt@amdgpu/amd_cs_nop@fork-compute0.html
* igt@gem_exec_suspend@basic-s3@smem:
- fi-skl-6600u: [PASS][5] -> [INCOMPLETE][6] ([i915#4547])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11277/fi-skl-6600u/igt@gem_exec_suspend@basic-s3@smem.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/fi-skl-6600u/igt@gem_exec_suspend@basic-s3@smem.html
* igt@gem_lmem_swapping@basic:
- bat-adlp-4: NOTRUN -> [SKIP][7] ([i915#4613]) +3 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/bat-adlp-4/igt@gem_lmem_swapping@basic.html
* igt@gem_tiled_pread_basic:
- bat-adlp-4: NOTRUN -> [SKIP][8] ([i915#3282])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/bat-adlp-4/igt@gem_tiled_pread_basic.html
* igt@i915_selftest@live@hangcheck:
- fi-snb-2600: [PASS][9] -> [INCOMPLETE][10] ([i915#3921])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11277/fi-snb-2600/igt@i915_selftest@live@hangcheck.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/fi-snb-2600/igt@i915_selftest@live@hangcheck.html
* igt@kms_busy@basic@modeset:
- bat-adlp-4: NOTRUN -> [DMESG-WARN][11] ([i915#3576]) +1 similar issue
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/bat-adlp-4/igt@kms_busy@basic@modeset.html
* igt@kms_chamelium@dp-crc-fast:
- bat-adlp-4: NOTRUN -> [SKIP][12] ([fdo#111827]) +8 similar issues
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/bat-adlp-4/igt@kms_chamelium@dp-crc-fast.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-adlp-4: NOTRUN -> [SKIP][13] ([i915#4103]) +1 similar issue
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/bat-adlp-4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-adlp-4: NOTRUN -> [SKIP][14] ([fdo#109285])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/bat-adlp-4/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b:
- fi-cfl-8109u: [PASS][15] -> [DMESG-WARN][16] ([i915#295]) +12 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11277/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html
* igt@prime_vgem@basic-fence-read:
- bat-adlp-4: NOTRUN -> [SKIP][17] ([i915#3291] / [i915#3708]) +2 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/bat-adlp-4/igt@prime_vgem@basic-fence-read.html
* igt@prime_vgem@basic-userptr:
- bat-adlp-4: NOTRUN -> [SKIP][18] ([i915#3301] / [i915#3708])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/bat-adlp-4/igt@prime_vgem@basic-userptr.html
* igt@runner@aborted:
- fi-rkl-guc: NOTRUN -> [FAIL][19] ([i915#4312])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/fi-rkl-guc/igt@runner@aborted.html
#### Possible fixes ####
* igt@i915_selftest@live@hangcheck:
- fi-ivb-3770: [INCOMPLETE][20] ([i915#3303]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11277/fi-ivb-3770/igt@i915_selftest@live@hangcheck.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/fi-ivb-3770/igt@i915_selftest@live@hangcheck.html
* igt@kms_busy@basic@modeset:
- {bat-adlp-6}: [DMESG-WARN][22] ([i915#3576]) -> [PASS][23]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11277/bat-adlp-6/igt@kms_busy@basic@modeset.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/bat-adlp-6/igt@kms_busy@basic@modeset.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#295]: https://gitlab.freedesktop.org/drm/intel/issues/295
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303
[i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4547]: https://gitlab.freedesktop.org/drm/intel/issues/4547
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_6355 -> IGTPW_6695
CI-20190529: 20190529
CI_DRM_11277: a9d1ffee8dbe2c5506cccf9077eab8fe439eea46 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_6695: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/index.html
IGT_6355: 83ec34916bd8268bc331105cf77c4d3d3cd352be @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6695/index.html
[-- Attachment #2: Type: text/html, Size: 8701 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support
2022-02-24 5:20 [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support sai.gowtham.ch
2022-02-24 7:23 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/i915/gem_exec_capture: Adding Local memory support (rev4) Patchwork
@ 2022-03-11 8:44 ` Zbigniew Kempczyński
1 sibling, 0 replies; 10+ messages in thread
From: Zbigniew Kempczyński @ 2022-03-11 8:44 UTC (permalink / raw)
To: sai.gowtham.ch; +Cc: igt-dev
On Thu, Feb 24, 2022 at 10:50:02AM +0530, sai.gowtham.ch@intel.com wrote:
> From: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
>
> Adding local memory support to many-4K-zero subtest
>
> Signed-off-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> ---
> tests/i915/gem_exec_capture.c | 36 +++++++++++++++++++++--------------
> 1 file changed, 22 insertions(+), 14 deletions(-)
>
> diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
> index 60f8df04..3eb516e7 100644
> --- a/tests/i915/gem_exec_capture.c
> +++ b/tests/i915/gem_exec_capture.c
> @@ -415,7 +415,7 @@ static struct offset *
> __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> const struct intel_execution_engine2 *e,
> unsigned int size, int count,
> - unsigned int flags, int *_fence_out)
> + unsigned int flags, int *_fence_out, uint32_t region)
> #define INCREMENTAL 0x1
> #define ASYNC 0x2
> {
> @@ -436,7 +436,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> obj = calloc(count + 2, sizeof(*obj));
> igt_assert(obj);
>
> - obj[0].handle = gem_create(fd, 4096);
> + obj[0].handle = gem_create_in_memory_regions(fd, 4096, region);
> obj[0].offset = get_offset(ahnd, obj[0].handle, 4096, 0);
> obj[0].flags = EXEC_OBJECT_WRITE | (ahnd ? EXEC_OBJECT_PINNED : 0);
>
> @@ -459,7 +459,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> }
> }
>
> - obj[count + 1].handle = gem_create(fd, 4096);
> + obj[count + 1].handle = gem_create_in_memory_regions(fd, 4096, region);
> obj[count + 1].relocs_ptr = (uintptr_t)reloc;
> obj[count + 1].relocation_count = !ahnd ? ARRAY_SIZE(reloc) : 0;
> obj[count + 1].offset = get_offset(ahnd, obj[count + 1].handle, 4096, 0);
> @@ -585,7 +585,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> saved = configure_hangs(fd, e, ctx->id); \
> } while(0)
>
> -static void many(int fd, int dir, uint64_t size, unsigned int flags)
> +static void many(int fd, int dir, uint64_t size, unsigned int flags, uint32_t region)
> {
> const struct intel_execution_engine2 *e;
> const intel_ctx_t *ctx;
> @@ -607,7 +607,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
> intel_require_memory(count, size, CHECK_RAM);
> ahnd = get_reloc_ahnd(fd, ctx->id);
>
> - offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL);
> + offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL, region);
I'm sorry you had wait so long for the review.
Number of object is too big for lmem because count is calculated looking at min(gtt,ram),
not min(gtt,lmem) when region is lmem.
I mean:
gtt = gem_aperture_size(fd) / size;
ram = (intel_get_avail_ram_mb() << 20) / size;
igt_debug("Available objects in GTT:%"PRIu64", RAM:%"PRIu64"\n",
gtt, ram);
count = min(gtt, ram) / 4; <----- should depend on region size
With limited count it works for me. I'm little bit surprised for DG2 with relocs enabled
I observe hang (we got such igt-enablement patch on core-for-CI branch). But softpin
version works fine.
--
Zbigniew
>
> blobs = check_error_state(dir, offsets, count, size, !!(flags & INCREMENTAL));
> igt_info("Captured %lu %"PRId64"-blobs out of a total of %lu\n",
> @@ -620,7 +620,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
> }
>
> static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
> - const struct intel_execution_engine2 *e)
> + const struct intel_execution_engine2 *e, uint32_t region)
> {
> const uint32_t bbe = MI_BATCH_BUFFER_END;
> struct drm_i915_gem_exec_object2 obj = {
> @@ -677,7 +677,7 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
> /* Reopen the allocator in the new process. */
> ahnd = get_reloc_ahnd(fd, ctx2->id);
>
> - free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out));
> + free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out, region));
> put_ahnd(ahnd);
>
> write(link[1], &fd, sizeof(fd)); /* wake the parent up */
> @@ -767,6 +767,7 @@ igt_main
> struct igt_collection *regions, *set;
> char *sub_name;
> uint32_t region;
> + uint32_t system_region = INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0);
>
> igt_fixture {
> int gen;
> @@ -803,29 +804,36 @@ igt_main
> }
> }
>
> - igt_subtest_f("many-4K-zero") {
> +
> + igt_subtest_with_dynamic("many-4K-zero") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 1<<12, 0);
> + for_each_combination(regions, 1, set) {
> + sub_name = memregion_dynamic_subtest_name(regions);
> + region = igt_collection_get_value(regions, 0);
> + igt_dynamic_f("%s", sub_name)
> + many(fd, dir, 1<<12, 0, region);
> + free(sub_name);
> + }
> }
>
> igt_subtest_f("many-4K-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 1<<12, INCREMENTAL);
> + many(fd, dir, 1<<12, INCREMENTAL, system_region);
> }
>
> igt_subtest_f("many-2M-zero") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 2<<20, 0);
> + many(fd, dir, 2<<20, 0, system_region);
> }
>
> igt_subtest_f("many-2M-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 2<<20, INCREMENTAL);
> + many(fd, dir, 2<<20, INCREMENTAL, system_region);
> }
>
> igt_subtest_f("many-256M-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 256<<20, INCREMENTAL);
> + many(fd, dir, 256<<20, INCREMENTAL, system_region);
> }
>
> /* And check we can read from different types of objects */
> @@ -837,7 +845,7 @@ igt_main
>
> test_each_engine("pi", fd, ctx, e)
> igt_dynamic_f("%s", (e)->name)
> - prioinv(fd, dir, ctx, e);
> + prioinv(fd, dir, ctx, e, system_region);
>
> igt_fixture {
> close(dir);
> --
> 2.35.1
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support
@ 2022-03-22 4:54 sai.gowtham.ch
2022-03-23 13:39 ` Zbigniew Kempczyński
0 siblings, 1 reply; 10+ messages in thread
From: sai.gowtham.ch @ 2022-03-22 4:54 UTC (permalink / raw)
To: igt-dev, sai.gowtham.ch, zbigniew.kempczynski
From: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
Adding local memory support to many-4K-zero subtest
Signed-off-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
---
tests/i915/gem_exec_capture.c | 48 +++++++++++++++++++++++------------
1 file changed, 32 insertions(+), 16 deletions(-)
diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
index 60f8df04..f00faf85 100644
--- a/tests/i915/gem_exec_capture.c
+++ b/tests/i915/gem_exec_capture.c
@@ -415,7 +415,7 @@ static struct offset *
__captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
const struct intel_execution_engine2 *e,
unsigned int size, int count,
- unsigned int flags, int *_fence_out)
+ unsigned int flags, int *_fence_out, uint32_t region)
#define INCREMENTAL 0x1
#define ASYNC 0x2
{
@@ -436,7 +436,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
obj = calloc(count + 2, sizeof(*obj));
igt_assert(obj);
- obj[0].handle = gem_create(fd, 4096);
+ obj[0].handle = gem_create_in_memory_regions(fd, 4096, region);
obj[0].offset = get_offset(ahnd, obj[0].handle, 4096, 0);
obj[0].flags = EXEC_OBJECT_WRITE | (ahnd ? EXEC_OBJECT_PINNED : 0);
@@ -459,7 +459,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
}
}
- obj[count + 1].handle = gem_create(fd, 4096);
+ obj[count + 1].handle = gem_create_in_memory_regions(fd, 4096, region);
obj[count + 1].relocs_ptr = (uintptr_t)reloc;
obj[count + 1].relocation_count = !ahnd ? ARRAY_SIZE(reloc) : 0;
obj[count + 1].offset = get_offset(ahnd, obj[count + 1].handle, 4096, 0);
@@ -585,14 +585,15 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
saved = configure_hangs(fd, e, ctx->id); \
} while(0)
-static void many(int fd, int dir, uint64_t size, unsigned int flags)
+static void many(int fd, int dir, uint64_t size, unsigned int flags, uint32_t region)
{
const struct intel_execution_engine2 *e;
const intel_ctx_t *ctx;
- uint64_t ram, gtt, ahnd;
+ uint64_t ram, gtt, ahnd, lmem_size;
unsigned long count, blobs;
struct offset *offsets;
struct gem_engine_properties saved_engine;
+ struct drm_i915_query_memory_regions *info;
find_first_available_engine(fd, ctx, e, saved_engine);
@@ -601,13 +602,20 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
igt_debug("Available objects in GTT:%"PRIu64", RAM:%"PRIu64"\n",
gtt, ram);
- count = min(gtt, ram) / 4;
+ info = gem_get_query_memory_regions(fd);
+ lmem_size = gpu_meminfo_region_total_size(info, I915_MEMORY_CLASS_DEVICE);
+
+ if (region == 0)
+ count = min(gtt, ram) / 4;
+ else
+ count = min(gtt, lmem_size) / 4;
+
igt_require(count > 1);
intel_require_memory(count, size, CHECK_RAM);
ahnd = get_reloc_ahnd(fd, ctx->id);
- offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL);
+ offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL, region);
blobs = check_error_state(dir, offsets, count, size, !!(flags & INCREMENTAL));
igt_info("Captured %lu %"PRId64"-blobs out of a total of %lu\n",
@@ -620,7 +628,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
}
static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
- const struct intel_execution_engine2 *e)
+ const struct intel_execution_engine2 *e, uint32_t region)
{
const uint32_t bbe = MI_BATCH_BUFFER_END;
struct drm_i915_gem_exec_object2 obj = {
@@ -677,7 +685,7 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
/* Reopen the allocator in the new process. */
ahnd = get_reloc_ahnd(fd, ctx2->id);
- free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out));
+ free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out, region));
put_ahnd(ahnd);
write(link[1], &fd, sizeof(fd)); /* wake the parent up */
@@ -767,6 +775,7 @@ igt_main
struct igt_collection *regions, *set;
char *sub_name;
uint32_t region;
+ uint32_t system_region = INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0);
igt_fixture {
int gen;
@@ -803,29 +812,36 @@ igt_main
}
}
- igt_subtest_f("many-4K-zero") {
+
+ igt_subtest_with_dynamic("many-4K-zero") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 1<<12, 0);
+ for_each_combination(regions, 1, set) {
+ sub_name = memregion_dynamic_subtest_name(regions);
+ region = igt_collection_get_value(regions, 0);
+ igt_dynamic_f("%s", sub_name)
+ many(fd, dir, 1<<12, 0, region);
+ free(sub_name);
+ }
}
igt_subtest_f("many-4K-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 1<<12, INCREMENTAL);
+ many(fd, dir, 1<<12, INCREMENTAL, system_region);
}
igt_subtest_f("many-2M-zero") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 2<<20, 0);
+ many(fd, dir, 2<<20, 0, system_region);
}
igt_subtest_f("many-2M-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 2<<20, INCREMENTAL);
+ many(fd, dir, 2<<20, INCREMENTAL, system_region);
}
igt_subtest_f("many-256M-incremental") {
igt_require(gem_can_store_dword(fd, 0));
- many(fd, dir, 256<<20, INCREMENTAL);
+ many(fd, dir, 256<<20, INCREMENTAL, system_region);
}
/* And check we can read from different types of objects */
@@ -837,7 +853,7 @@ igt_main
test_each_engine("pi", fd, ctx, e)
igt_dynamic_f("%s", (e)->name)
- prioinv(fd, dir, ctx, e);
+ prioinv(fd, dir, ctx, e, system_region);
igt_fixture {
close(dir);
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support
2022-03-22 4:54 sai.gowtham.ch
@ 2022-03-23 13:39 ` Zbigniew Kempczyński
0 siblings, 0 replies; 10+ messages in thread
From: Zbigniew Kempczyński @ 2022-03-23 13:39 UTC (permalink / raw)
To: sai.gowtham.ch; +Cc: igt-dev
On Tue, Mar 22, 2022 at 10:24:29AM +0530, sai.gowtham.ch@intel.com wrote:
> From: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
>
> Adding local memory support to many-4K-zero subtest
>
> Signed-off-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> ---
> tests/i915/gem_exec_capture.c | 48 +++++++++++++++++++++++------------
> 1 file changed, 32 insertions(+), 16 deletions(-)
>
> diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
> index 60f8df04..f00faf85 100644
> --- a/tests/i915/gem_exec_capture.c
> +++ b/tests/i915/gem_exec_capture.c
> @@ -415,7 +415,7 @@ static struct offset *
> __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> const struct intel_execution_engine2 *e,
> unsigned int size, int count,
> - unsigned int flags, int *_fence_out)
> + unsigned int flags, int *_fence_out, uint32_t region)
> #define INCREMENTAL 0x1
> #define ASYNC 0x2
> {
> @@ -436,7 +436,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> obj = calloc(count + 2, sizeof(*obj));
> igt_assert(obj);
>
> - obj[0].handle = gem_create(fd, 4096);
> + obj[0].handle = gem_create_in_memory_regions(fd, 4096, region);
> obj[0].offset = get_offset(ahnd, obj[0].handle, 4096, 0);
> obj[0].flags = EXEC_OBJECT_WRITE | (ahnd ? EXEC_OBJECT_PINNED : 0);
Add EXEC_OBJECT_SUPPORTS_48B_ADDRESS for each of obj[]. On dg2 where safe alignment
is much bigger we can exceed 2^32 vm space.
>
> @@ -459,7 +459,7 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> }
> }
>
> - obj[count + 1].handle = gem_create(fd, 4096);
> + obj[count + 1].handle = gem_create_in_memory_regions(fd, 4096, region);
> obj[count + 1].relocs_ptr = (uintptr_t)reloc;
> obj[count + 1].relocation_count = !ahnd ? ARRAY_SIZE(reloc) : 0;
> obj[count + 1].offset = get_offset(ahnd, obj[count + 1].handle, 4096, 0);
> @@ -585,14 +585,15 @@ __captureN(int fd, int dir, uint64_t ahnd, const intel_ctx_t *ctx,
> saved = configure_hangs(fd, e, ctx->id); \
> } while(0)
>
> -static void many(int fd, int dir, uint64_t size, unsigned int flags)
> +static void many(int fd, int dir, uint64_t size, unsigned int flags, uint32_t region)
> {
> const struct intel_execution_engine2 *e;
> const intel_ctx_t *ctx;
> - uint64_t ram, gtt, ahnd;
> + uint64_t ram, gtt, ahnd, lmem_size;
> unsigned long count, blobs;
> struct offset *offsets;
> struct gem_engine_properties saved_engine;
> + struct drm_i915_query_memory_regions *info;
>
> find_first_available_engine(fd, ctx, e, saved_engine);
>
> @@ -601,13 +602,20 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
> igt_debug("Available objects in GTT:%"PRIu64", RAM:%"PRIu64"\n",
> gtt, ram);
>
> - count = min(gtt, ram) / 4;
> + info = gem_get_query_memory_regions(fd);
> + lmem_size = gpu_meminfo_region_total_size(info, I915_MEMORY_CLASS_DEVICE);
> +
> + if (region == 0)
> + count = min(gtt, ram) / 4;
> + else
> + count = min(gtt, lmem_size) / 4;
This one is not correct, count is too big (check how you calculate gtt and ram).
> +
> igt_require(count > 1);
>
> intel_require_memory(count, size, CHECK_RAM);
> ahnd = get_reloc_ahnd(fd, ctx->id);
>
> - offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL);
> + offsets = __captureN(fd, dir, ahnd, ctx, e, size, count, flags, NULL, region);
>
> blobs = check_error_state(dir, offsets, count, size, !!(flags & INCREMENTAL));
> igt_info("Captured %lu %"PRId64"-blobs out of a total of %lu\n",
> @@ -620,7 +628,7 @@ static void many(int fd, int dir, uint64_t size, unsigned int flags)
> }
>
> static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
> - const struct intel_execution_engine2 *e)
> + const struct intel_execution_engine2 *e, uint32_t region)
> {
> const uint32_t bbe = MI_BATCH_BUFFER_END;
> struct drm_i915_gem_exec_object2 obj = {
> @@ -677,7 +685,7 @@ static void prioinv(int fd, int dir, const intel_ctx_t *ctx,
> /* Reopen the allocator in the new process. */
> ahnd = get_reloc_ahnd(fd, ctx2->id);
>
> - free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out));
> + free(__captureN(fd, dir, ahnd, ctx2, e, size, count, ASYNC, &fence_out, region));
> put_ahnd(ahnd);
>
> write(link[1], &fd, sizeof(fd)); /* wake the parent up */
> @@ -767,6 +775,7 @@ igt_main
> struct igt_collection *regions, *set;
> char *sub_name;
> uint32_t region;
> + uint32_t system_region = INTEL_MEMORY_REGION_ID(I915_SYSTEM_MEMORY, 0);
>
> igt_fixture {
> int gen;
> @@ -803,29 +812,36 @@ igt_main
> }
> }
>
> - igt_subtest_f("many-4K-zero") {
> +
> + igt_subtest_with_dynamic("many-4K-zero") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 1<<12, 0);
> + for_each_combination(regions, 1, set) {
> + sub_name = memregion_dynamic_subtest_name(regions);
> + region = igt_collection_get_value(regions, 0);
> + igt_dynamic_f("%s", sub_name)
> + many(fd, dir, 1<<12, 0, region);
> + free(sub_name);
Chris proposed very nice macro: for_each_memory_region() which shrinks above
to single line. Please use it here.
--
Zbigniew
> + }
> }
>
> igt_subtest_f("many-4K-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 1<<12, INCREMENTAL);
> + many(fd, dir, 1<<12, INCREMENTAL, system_region);
> }
>
> igt_subtest_f("many-2M-zero") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 2<<20, 0);
> + many(fd, dir, 2<<20, 0, system_region);
> }
>
> igt_subtest_f("many-2M-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 2<<20, INCREMENTAL);
> + many(fd, dir, 2<<20, INCREMENTAL, system_region);
> }
>
> igt_subtest_f("many-256M-incremental") {
> igt_require(gem_can_store_dword(fd, 0));
> - many(fd, dir, 256<<20, INCREMENTAL);
> + many(fd, dir, 256<<20, INCREMENTAL, system_region);
> }
>
> /* And check we can read from different types of objects */
> @@ -837,7 +853,7 @@ igt_main
>
> test_each_engine("pi", fd, ctx, e)
> igt_dynamic_f("%s", (e)->name)
> - prioinv(fd, dir, ctx, e);
> + prioinv(fd, dir, ctx, e, system_region);
>
> igt_fixture {
> close(dir);
> --
> 2.35.1
>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-03-23 13:39 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-24 5:20 [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support sai.gowtham.ch
2022-02-24 7:23 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/i915/gem_exec_capture: Adding Local memory support (rev4) Patchwork
2022-03-11 8:44 ` [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_capture: Adding Local memory support Zbigniew Kempczyński
-- strict thread matches above, loose matches on Subject: below --
2022-03-22 4:54 sai.gowtham.ch
2022-03-23 13:39 ` Zbigniew Kempczyński
2022-01-03 8:54 sai.gowtham.ch
2022-01-03 9:40 ` Zbigniew Kempczyński
2022-01-03 8:21 sai.gowtham.ch
2021-12-31 5:55 sai.gowtham.ch
2022-01-03 8:09 ` Zbigniew Kempczyński
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox