From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5B74E10E04E for ; Fri, 8 Sep 2023 09:06:03 +0000 (UTC) Date: Fri, 8 Sep 2023 11:05:50 +0200 From: Francois Dugast To: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Message-ID: References: <20230905133309.365109-1-zbigniew.kempczynski@intel.com> <20230905133309.365109-5-zbigniew.kempczynski@intel.com> Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20230905133309.365109-5-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v2 4/9] lib/intel_compute: Add name field for debugging purposes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: igt-dev@lists.freedesktop.org Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: 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 > Cc: Christoph Manszewski > Cc: Francois Dugast > Cc: Mauro Carvalho Chehab Reviewed-by: Francois Dugast > --- > 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 >