From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 37633E7717F for ; Thu, 12 Dec 2024 16:30:48 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CC30089F63; Thu, 12 Dec 2024 16:30:47 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="ZXhEj8Jc"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) by gabe.freedesktop.org (Postfix) with ESMTPS id 28CAE10E1F8 for ; Thu, 12 Dec 2024 16:30:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1734021047; x=1765557047; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=DS95md1s9r6DDX4ClxBw+Um5OU8uCOIh/w70Z8pu8AM=; b=ZXhEj8JcokpVjypmBSB3gksA0GFJojU9tO5H1tfF/SdwlVXFL5sWZaNc dkYEVmHN+5rYjn01+Fa2fOL95qA4VUTqaBwQU2Y90JTDlb2JIj58m1j9s 483gfGIAp6bXBMrTMZy0eSlS9Ua5NyY8dkjVXZRfEU4MXmWfxGdS2UQfD 3fBgN0oGhbkO3MTewC6ykRrZX3afGec1bBKzMH8znxJCaxMM6E2GLZfz8 CNTHrJeEKfa6VllorIGcEiP4xEJ1jf1PL87bSsyXNCgCZneOOt/iFFTkK P60Z258Yo6XGAIu/TZ+br0V1wlWvHbDlKSP6B1q4lI472fqbXcRkac20K A==; X-CSE-ConnectionGUID: l1c2QKGgR6mZpdrkI5RqJg== X-CSE-MsgGUID: c6YjC/l4TwKlhtcHNGm8JQ== X-IronPort-AV: E=McAfee;i="6700,10204,11282"; a="45859852" X-IronPort-AV: E=Sophos;i="6.12,224,1728975600"; d="scan'208";a="45859852" Received: from fmviesa010.fm.intel.com ([10.60.135.150]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Dec 2024 08:30:47 -0800 X-CSE-ConnectionGUID: 1g82lISXQqGNFFdJ6OKdsw== X-CSE-MsgGUID: FvuTJjBNR++YsqyELLHVAA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,229,1728975600"; d="scan'208";a="96685200" Received: from jkrzyszt-mobl2.ger.corp.intel.com (HELO [10.245.246.105]) ([10.245.246.105]) by fmviesa010-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Dec 2024 08:30:45 -0800 Message-ID: <6133ae28-2c38-4c87-ae5c-879a4e138595@intel.com> Date: Thu, 12 Dec 2024 17:30:43 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH i-g-t 1/4] lib/xe_eudebug: Use igt_container_of instead of (void *) casting To: Dominik Grzegorzek , igt-dev@lists.freedesktop.org Cc: andrzej.hajda@intel.com References: <20241211114044.210562-1-dominik.grzegorzek@intel.com> Content-Language: en-US From: "Manszewski, Christoph" Organization: Intel Technology Poland sp. z o.o. - ul. Slowackiego 173, 80-298 Gdansk - KRS 101882 - NIP 957-07-52-316 In-Reply-To: <20241211114044.210562-1-dominik.grzegorzek@intel.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: igt-dev@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development mailing list for IGT GPU Tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" Hi Dominik, On 11.12.2024 12:40, Dominik Grzegorzek wrote: > Replace all places in which we casted base to specific event via (void > *) casting with igt_container_of, as this is more errorless approach. > > Signed-off-by: Dominik Grzegorzek Reviewed-by: Christoph Manszewski Thanks, Christoph > --- > lib/xe/xe_eudebug.c | 81 ++++++++++++++++++++++++--------------------- > 1 file changed, 43 insertions(+), 38 deletions(-) > > diff --git a/lib/xe/xe_eudebug.c b/lib/xe/xe_eudebug.c > index 8f3bb2f1e..f2483028f 100644 > --- a/lib/xe/xe_eudebug.c > +++ b/lib/xe/xe_eudebug.c > @@ -140,20 +140,20 @@ static const char *event_members_to_str(struct drm_xe_eudebug_event *e, char *bu > { > switch (e->type) { > case DRM_XE_EUDEBUG_EVENT_OPEN: { > - struct drm_xe_eudebug_event_client *ec = (void *)e; > + struct drm_xe_eudebug_event_client *ec = igt_container_of(e, ec, base); > > sprintf(buf, "handle=%llu", ec->client_handle); > break; > } > case DRM_XE_EUDEBUG_EVENT_VM: { > - struct drm_xe_eudebug_event_vm *evm = (void *)e; > + struct drm_xe_eudebug_event_vm *evm = igt_container_of(e, evm, base); > > sprintf(buf, "client_handle=%llu, handle=%llu", > evm->client_handle, evm->vm_handle); > break; > } > case DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE: { > - struct drm_xe_eudebug_event_exec_queue *ee = (void *)e; > + struct drm_xe_eudebug_event_exec_queue *ee = igt_container_of(e, ee, base); > > sprintf(buf, "client_handle=%llu, vm_handle=%llu, " > "exec_queue_handle=%llu, engine_class=%d, exec_queue_width=%d", > @@ -162,7 +162,8 @@ static const char *event_members_to_str(struct drm_xe_eudebug_event *e, char *bu > break; > } > case DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE_PLACEMENTS: { > - struct drm_xe_eudebug_event_exec_queue_placements *ee = (void *)e; > + struct drm_xe_eudebug_event_exec_queue_placements *ee = igt_container_of(e, ee, > + base); > struct drm_xe_engine_class_instance *instances = (void *)(ee->instances); > int i, l; > > @@ -182,7 +183,7 @@ static const char *event_members_to_str(struct drm_xe_eudebug_event *e, char *bu > break; > } > case DRM_XE_EUDEBUG_EVENT_EU_ATTENTION: { > - struct drm_xe_eudebug_event_eu_attention *ea = (void *)e; > + struct drm_xe_eudebug_event_eu_attention *ea = igt_container_of(e, ea, base); > > sprintf(buf, "client_handle=%llu, exec_queue_handle=%llu, " > "lrc_handle=%llu, bitmask_size=%d", > @@ -191,34 +192,34 @@ static const char *event_members_to_str(struct drm_xe_eudebug_event *e, char *bu > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND: { > - struct drm_xe_eudebug_event_vm_bind *evmb = (void *)e; > + struct drm_xe_eudebug_event_vm_bind *evmb = igt_container_of(e, evmb, base); > > sprintf(buf, "client_handle=%llu, vm_handle=%llu, flags=0x%x, num_binds=%u", > evmb->client_handle, evmb->vm_handle, evmb->flags, evmb->num_binds); > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND_OP: { > - struct drm_xe_eudebug_event_vm_bind_op *op = (void *)e; > + struct drm_xe_eudebug_event_vm_bind_op *op = igt_container_of(e, op, base); > > sprintf(buf, "vm_bind_ref_seqno=%lld, addr=%016llx, range=%llu num_extensions=%llu", > op->vm_bind_ref_seqno, op->addr, op->range, op->num_extensions); > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND_UFENCE: { > - struct drm_xe_eudebug_event_vm_bind_ufence *f = (void *)e; > + struct drm_xe_eudebug_event_vm_bind_ufence *f = igt_container_of(e, f, base); > > sprintf(buf, "vm_bind_ref_seqno=%lld", f->vm_bind_ref_seqno); > break; > } > case DRM_XE_EUDEBUG_EVENT_METADATA: { > - struct drm_xe_eudebug_event_metadata *em = (void *)e; > + struct drm_xe_eudebug_event_metadata *em = igt_container_of(e, em, base); > > sprintf(buf, "client_handle=%llu, metadata_handle=%llu, type=%llu, len=%llu", > em->client_handle, em->metadata_handle, em->type, em->len); > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND_OP_METADATA: { > - struct drm_xe_eudebug_event_vm_bind_op_metadata *op = (void *)e; > + struct drm_xe_eudebug_event_vm_bind_op_metadata *op = igt_container_of(e, op, base); > > sprintf(buf, "vm_bind_op_ref_seqno=%lld, metadata_handle=%llu, metadata_cookie=%llu", > op->vm_bind_op_ref_seqno, op->metadata_handle, op->metadata_cookie); > @@ -461,16 +462,18 @@ static int match_fields(struct drm_xe_eudebug_event *a, void *data) > > switch (a->type) { > case DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE: { > - struct drm_xe_eudebug_event_exec_queue *ae = (void *)a; > - struct drm_xe_eudebug_event_exec_queue *be = (void *)b; > + struct drm_xe_eudebug_event_exec_queue *ae = igt_container_of(a, ae, base); > + struct drm_xe_eudebug_event_exec_queue *be = igt_container_of(b, be, base); > > if (ae->engine_class == be->engine_class && ae->width == be->width) > ret = 1; > break; > } > case DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE_PLACEMENTS: { > - struct drm_xe_eudebug_event_exec_queue_placements *ae = (void *)a; > - struct drm_xe_eudebug_event_exec_queue_placements *be = (void *)b; > + struct drm_xe_eudebug_event_exec_queue_placements *ae = igt_container_of(a, ae, > + base); > + struct drm_xe_eudebug_event_exec_queue_placements *be = igt_container_of(b, be, > + base); > > if (ae->num_placements == be->num_placements && > memcmp(ae->instances, be->instances, > @@ -480,16 +483,16 @@ static int match_fields(struct drm_xe_eudebug_event *a, void *data) > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND: { > - struct drm_xe_eudebug_event_vm_bind *ea = (void *)a; > - struct drm_xe_eudebug_event_vm_bind *eb = (void *)b; > + struct drm_xe_eudebug_event_vm_bind *ea = igt_container_of(a, ea, base); > + struct drm_xe_eudebug_event_vm_bind *eb = igt_container_of(b, eb, base); > > if (ea->num_binds == eb->num_binds) > ret = 1; > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND_OP: { > - struct drm_xe_eudebug_event_vm_bind_op *ea = (void *)a; > - struct drm_xe_eudebug_event_vm_bind_op *eb = (void *)b; > + struct drm_xe_eudebug_event_vm_bind_op *ea = igt_container_of(a, ea, base); > + struct drm_xe_eudebug_event_vm_bind_op *eb = igt_container_of(b, eb, base); > > if (ea->addr == eb->addr && ea->range == eb->range && > ea->num_extensions == eb->num_extensions) > @@ -497,8 +500,8 @@ static int match_fields(struct drm_xe_eudebug_event *a, void *data) > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND_OP_METADATA: { > - struct drm_xe_eudebug_event_vm_bind_op_metadata *ea = (void *)a; > - struct drm_xe_eudebug_event_vm_bind_op_metadata *eb = (void *)b; > + struct drm_xe_eudebug_event_vm_bind_op_metadata *ea = igt_container_of(a, ea, base); > + struct drm_xe_eudebug_event_vm_bind_op_metadata *eb = igt_container_of(b, eb, base); > > if (ea->metadata_handle == eb->metadata_handle && > ea->metadata_cookie == eb->metadata_cookie) > @@ -526,35 +529,36 @@ static int match_client_handle(struct drm_xe_eudebug_event *e, void *data) > > switch (e->type) { > case DRM_XE_EUDEBUG_EVENT_OPEN: { > - struct drm_xe_eudebug_event_client *client = (void *)e; > + struct drm_xe_eudebug_event_client *client = igt_container_of(e, client, base); > > if (client->client_handle == h) > return 1; > break; > } > case DRM_XE_EUDEBUG_EVENT_VM: { > - struct drm_xe_eudebug_event_vm *vm = (void *)e; > + struct drm_xe_eudebug_event_vm *vm = igt_container_of(e, vm, base); > > if (vm->client_handle == h) > return 1; > break; > } > case DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE: { > - struct drm_xe_eudebug_event_exec_queue *ee = (void *)e; > + struct drm_xe_eudebug_event_exec_queue *ee = igt_container_of(e, ee, base); > > if (ee->client_handle == h) > return 1; > break; > } > case DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE_PLACEMENTS: { > - struct drm_xe_eudebug_event_exec_queue_placements *ee = (void *)e; > + struct drm_xe_eudebug_event_exec_queue_placements *ee = igt_container_of(e, ee, > + base); > > if (ee->client_handle == h) > return 1; > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND: { > - struct drm_xe_eudebug_event_vm_bind *evmb = (void *)e; > + struct drm_xe_eudebug_event_vm_bind *evmb = igt_container_of(e, evmb, base); > > if (evmb->client_handle == h) { > *bind_seqno = evmb->base.seqno; > @@ -563,7 +567,7 @@ static int match_client_handle(struct drm_xe_eudebug_event *e, void *data) > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND_OP: { > - struct drm_xe_eudebug_event_vm_bind_op *eo = (void *)e; > + struct drm_xe_eudebug_event_vm_bind_op *eo = igt_container_of(e, eo, base); > > if (eo->vm_bind_ref_seqno == *bind_seqno) { > *bind_op_seqno = eo->base.seqno; > @@ -572,7 +576,7 @@ static int match_client_handle(struct drm_xe_eudebug_event *e, void *data) > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND_UFENCE: { > - struct drm_xe_eudebug_event_vm_bind_ufence *ef = (void *)e; > + struct drm_xe_eudebug_event_vm_bind_ufence *ef = igt_container_of(e, ef, base); > > if (ef->vm_bind_ref_seqno == *bind_seqno) > return 1; > @@ -580,14 +584,14 @@ static int match_client_handle(struct drm_xe_eudebug_event *e, void *data) > break; > } > case DRM_XE_EUDEBUG_EVENT_METADATA: { > - struct drm_xe_eudebug_event_metadata *em = (void *)e; > + struct drm_xe_eudebug_event_metadata *em = igt_container_of(e, em, base); > > if (em->client_handle == h) > return 1; > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND_OP_METADATA: { > - struct drm_xe_eudebug_event_vm_bind_op_metadata *eo = (void *)e; > + struct drm_xe_eudebug_event_vm_bind_op_metadata *eo = igt_container_of(e, eo, base); > > if (eo->vm_bind_op_ref_seqno == *bind_op_seqno) > return 1; > @@ -615,7 +619,7 @@ static int match_opposite_resource(struct drm_xe_eudebug_event *e, void *data) > > switch (e->type) { > case DRM_XE_EUDEBUG_EVENT_OPEN: { > - struct drm_xe_eudebug_event_client *client = (void *)e; > + struct drm_xe_eudebug_event_client *client = igt_container_of(e, client, base); > struct drm_xe_eudebug_event_client *filter = data; > > if (client->client_handle == filter->client_handle) > @@ -623,7 +627,7 @@ static int match_opposite_resource(struct drm_xe_eudebug_event *e, void *data) > break; > } > case DRM_XE_EUDEBUG_EVENT_VM: { > - struct drm_xe_eudebug_event_vm *vm = (void *)e; > + struct drm_xe_eudebug_event_vm *vm = igt_container_of(e, vm, base); > struct drm_xe_eudebug_event_vm *filter = data; > > if (vm->vm_handle == filter->vm_handle) > @@ -631,7 +635,7 @@ static int match_opposite_resource(struct drm_xe_eudebug_event *e, void *data) > break; > } > case DRM_XE_EUDEBUG_EVENT_EXEC_QUEUE: { > - struct drm_xe_eudebug_event_exec_queue *ee = (void *)e; > + struct drm_xe_eudebug_event_exec_queue *ee = igt_container_of(e, ee, base); > struct drm_xe_eudebug_event_exec_queue *filter = data; > > if (ee->exec_queue_handle == filter->exec_queue_handle) > @@ -639,7 +643,7 @@ static int match_opposite_resource(struct drm_xe_eudebug_event *e, void *data) > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND: { > - struct drm_xe_eudebug_event_vm_bind *evmb = (void *)e; > + struct drm_xe_eudebug_event_vm_bind *evmb = igt_container_of(e, evmb, base); > struct drm_xe_eudebug_event_vm_bind *filter = data; > > if (evmb->vm_handle == filter->vm_handle && > @@ -648,7 +652,7 @@ static int match_opposite_resource(struct drm_xe_eudebug_event *e, void *data) > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND_OP: { > - struct drm_xe_eudebug_event_vm_bind_op *avmb = (void *)e; > + struct drm_xe_eudebug_event_vm_bind_op *avmb = igt_container_of(e, avmb, base); > struct drm_xe_eudebug_event_vm_bind_op *filter = data; > > if (avmb->addr == filter->addr && > @@ -657,7 +661,7 @@ static int match_opposite_resource(struct drm_xe_eudebug_event *e, void *data) > break; > } > case DRM_XE_EUDEBUG_EVENT_METADATA: { > - struct drm_xe_eudebug_event_metadata *em = (void *)e; > + struct drm_xe_eudebug_event_metadata *em = igt_container_of(e, em, base); > struct drm_xe_eudebug_event_metadata *filter = data; > > if (em->metadata_handle == filter->metadata_handle) > @@ -665,7 +669,8 @@ static int match_opposite_resource(struct drm_xe_eudebug_event *e, void *data) > break; > } > case DRM_XE_EUDEBUG_EVENT_VM_BIND_OP_METADATA: { > - struct drm_xe_eudebug_event_vm_bind_op_metadata *avmb = (void *)e; > + struct drm_xe_eudebug_event_vm_bind_op_metadata *avmb = igt_container_of(e, avmb, > + base); > struct drm_xe_eudebug_event_vm_bind_op_metadata *filter = data; > > if (avmb->metadata_handle == filter->metadata_handle && > @@ -760,8 +765,8 @@ static void compare_client(struct xe_eudebug_event_log *log1, struct drm_xe_eude > struct xe_eudebug_event_log *log2, struct drm_xe_eudebug_event *ev2, > uint32_t filter) > { > - struct drm_xe_eudebug_event_client *ev1_client = (void *)ev1; > - struct drm_xe_eudebug_event_client *ev2_client = (void *)ev2; > + struct drm_xe_eudebug_event_client *ev1_client = igt_container_of(ev1, ev1_client, base); > + struct drm_xe_eudebug_event_client *ev2_client = igt_container_of(ev2, ev2_client, base); > uint64_t cbs = 0, dbs = 0, cbso = 0, dbso = 0; > > struct igt_list_head matched_seqno_list;