From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7EE616E8A2 for ; Thu, 14 Oct 2021 02:54:55 +0000 (UTC) Date: Wed, 13 Oct 2021 19:37:22 -0700 Message-ID: <87a6jcib6l.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" In-Reply-To: <20211008065432.15482-3-zbigniew.kempczynski@intel.com> References: <20211008065432.15482-1-zbigniew.kempczynski@intel.com> <20211008065432.15482-3-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: quoted-printable Subject: Re: [igt-dev] [PATCH i-g-t 2/7] lib/intel_batchbuffer: Detect and use kernel alignment capability List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Zbigniew =?ISO-8859-2?Q?Kempczy=F1ski?= Cc: igt-dev@lists.freedesktop.org, Petri Latvala List-ID: On Thu, 07 Oct 2021 23:54:27 -0700, Zbigniew Kempczy=F1ski wrote: > > diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c > index 9c26fe207..ed7c25015 100644 > --- a/lib/intel_batchbuffer.c > +++ b/lib/intel_batchbuffer.c > @@ -1335,6 +1335,7 @@ __intel_bb_create(int i915, uint32_t ctx, uint32_t = size, bool do_relocs, > > igt_assert(ibb); > > + ibb->allows_passing_alignment =3D gem_allows_passing_alignment(i915); > ibb->uses_full_ppgtt =3D gem_uses_full_ppgtt(i915); > ibb->devid =3D intel_get_drm_devid(i915); > ibb->gen =3D intel_gen(ibb->devid); > @@ -1783,6 +1784,7 @@ __add_to_cache(struct intel_bb *ibb, uint32_t handl= e) > igt_assert(object); > > object->handle =3D handle; > + object->alignment =3D 0; > found =3D tsearch((void *) object, &ibb->root, __compare_objects); > > if (*found =3D=3D object) { > @@ -1905,7 +1907,7 @@ intel_bb_add_object(struct intel_bb *ibb, uint32_t = handle, uint64_t size, > || ALIGN(offset, alignment) =3D=3D offset); > > object =3D __add_to_cache(ibb, handle); > - object->alignment =3D alignment ?: 4096; > + alignment =3D alignment ?: 4096; Can't we do: if (ibb->allows_passing_alignment) object->alignment =3D alignment ?: 4096; So we don't need further changes in this function? Or it breaks something? > __add_to_objects(ibb, object); > > /* > @@ -1917,7 +1919,7 @@ intel_bb_add_object(struct intel_bb *ibb, uint32_t = handle, uint64_t size, > if (INVALID_ADDR(object->offset)) { > if (INVALID_ADDR(offset)) { > offset =3D __intel_bb_get_offset(ibb, handle, size, > - object->alignment); > + alignment); > } else { > offset =3D offset & (ibb->gtt_size - 1); > > @@ -1962,6 +1964,9 @@ intel_bb_add_object(struct intel_bb *ibb, uint32_t = handle, uint64_t size, > if (ibb->uses_full_ppgtt && !ibb->enforce_relocs) > object->flags |=3D EXEC_OBJECT_PINNED; > > + if (ibb->allows_passing_alignment) > + object->alignment =3D alignment; > + > return object; > }