[igt-dev] [PATCH i-g-t v2 4/9] lib/intel_compute: Add name field for debugging purposes
Francois Dugast
francois.dugast at intel.com
Fri Sep 8 09:05:50 UTC 2023
On Tue, Sep 05, 2023 at 03:33:04PM +0200, Zbigniew Kempczyński wrote:
> Debugging without knowledge about object characteristics is hard and
> time consuming. Simple name field added for printing binded addresses
> and their sizes might speed up development. I experienced this on
> extending to DG2 so I decided to permanently add it. But to avoid
> annoying output this is limited to igt_debug() which will print
> only on user request or on the test failure.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Christoph Manszewski <christoph.manszewski at intel.com>
> Cc: Francois Dugast <francois.dugast at intel.com>
> Cc: Mauro Carvalho Chehab <mchehab at kernel.org>
Reviewed-by: Francois Dugast <francois.dugast at intel.com>
> ---
> lib/intel_compute.c | 33 ++++++++++++++++++++++++++-------
> 1 file changed, 26 insertions(+), 7 deletions(-)
>
> diff --git a/lib/intel_compute.c b/lib/intel_compute.c
> index b42f3eca0e..a1e87ef46f 100644
> --- a/lib/intel_compute.c
> +++ b/lib/intel_compute.c
> @@ -37,6 +37,7 @@ struct bo_dict_entry {
> uint64_t addr;
> uint32_t size;
> void *data;
> + const char *name;
> };
>
> struct bo_execenv {
> @@ -92,6 +93,11 @@ static void bo_execenv_bind(struct bo_execenv *execenv,
> bo_dict[i].addr, bo_dict[i].size, &sync, 1);
> syncobj_wait(fd, &sync.handle, 1, INT64_MAX, 0, NULL);
> memset(bo_dict[i].data, 0, bo_dict[i].size);
> +
> + igt_debug("[i: %2d name: %20s] data: %p, addr: %16llx, size: %llx\n",
> + i, bo_dict[i].name, bo_dict[i].data,
> + (long long)bo_dict[i].addr,
> + (long long)bo_dict[i].size);
> }
>
> syncobj_destroy(fd, sync.handle);
> @@ -480,13 +486,26 @@ static void tgl_compute_exec(int fd, const unsigned char *kernel,
> {
> #define TGL_BO_DICT_ENTRIES 7
> struct bo_dict_entry bo_dict[TGL_BO_DICT_ENTRIES] = {
> - { .addr = ADDR_INDIRECT_OBJECT_BASE + OFFSET_KERNEL}, // kernel
> - { .addr = ADDR_DYNAMIC_STATE_BASE, .size = 0x1000}, // dynamic state
> - { .addr = ADDR_SURFACE_STATE_BASE, .size = 0x1000}, // surface state
> - { .addr = ADDR_INDIRECT_OBJECT_BASE + OFFSET_INDIRECT_DATA_START, .size = 0x10000}, // indirect data
> - { .addr = ADDR_INPUT, .size = SIZE_BUFFER_INPUT }, // input
> - { .addr = ADDR_OUTPUT, .size = SIZE_BUFFER_OUTPUT }, // output
> - { .addr = ADDR_BATCH, .size = SIZE_BATCH }, // batch
> + { .addr = ADDR_INDIRECT_OBJECT_BASE + OFFSET_KERNEL,
> + .name = "kernel" },
> + { .addr = ADDR_DYNAMIC_STATE_BASE,
> + .size = 0x1000,
> + .name = "dynamic state base" },
> + { .addr = ADDR_SURFACE_STATE_BASE,
> + .size = 0x1000,
> + .name = "surface state base" },
> + { .addr = ADDR_INDIRECT_OBJECT_BASE + OFFSET_INDIRECT_DATA_START,
> + .size = 0x10000,
> + .name = "indirect data start" },
> + { .addr = ADDR_INPUT,
> + .size = SIZE_BUFFER_INPUT,
> + .name = "input" },
> + { .addr = ADDR_OUTPUT,
> + .size = SIZE_BUFFER_OUTPUT,
> + .name = "output" },
> + { .addr = ADDR_BATCH,
> + .size = SIZE_BATCH,
> + .name = "batch" },
> };
> struct bo_execenv execenv;
> float *dinput;
> --
> 2.34.1
>
More information about the igt-dev
mailing list