From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from wes1-so1.wedos.net (wes1-so1.wedos.net [46.28.106.15]) by dpdk.org (Postfix) with ESMTP id 7FAA2E72 for ; Mon, 2 Nov 2015 16:42:24 +0100 (CET) Received: from pcviktorin.fit.vutbr.cz (pcviktorin.fit.vutbr.cz [147.229.13.147]) by wes1-so1.wedos.net (Postfix) with ESMTPSA id 3nqJQm1hxlz4Nb; Mon, 2 Nov 2015 16:42:24 +0100 (CET) Date: Mon, 2 Nov 2015 16:39:37 +0100 From: Jan Viktorin To: Jerin Jacob Message-ID: <20151102163937.296ef169@pcviktorin.fit.vutbr.cz> In-Reply-To: <1446473921-12706-3-git-send-email-jerin.jacob@caviumnetworks.com> References: <1446473921-12706-1-git-send-email-jerin.jacob@caviumnetworks.com> <1446473921-12706-2-git-send-email-jerin.jacob@caviumnetworks.com> <1446473921-12706-3-git-send-email-jerin.jacob@caviumnetworks.com> Organization: RehiveTech MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH 2/3] arm64: acl: add neon based acl implementation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Nov 2015 15:42:24 -0000 On Mon, 2 Nov 2015 19:48:40 +0530 Jerin Jacob wrote: > Signed-off-by: Jerin Jacob > --- > app/test-acl/main.c | 4 + > lib/librte_acl/Makefile | 5 + > lib/librte_acl/acl.h | 4 + > lib/librte_acl/acl_run_neon.c | 46 +++++++ > lib/librte_acl/acl_run_neon.h | 290 ++++++++++++++++++++++++++++++++++++= ++++++ > lib/librte_acl/rte_acl.c | 25 ++++ > lib/librte_acl/rte_acl.h | 1 + > 7 files changed, 375 insertions(+) > create mode 100644 lib/librte_acl/acl_run_neon.c > create mode 100644 lib/librte_acl/acl_run_neon.h >=20 > diff --git a/app/test-acl/main.c b/app/test-acl/main.c > index 72ce83c..0b0c093 100644 > --- a/app/test-acl/main.c > +++ b/app/test-acl/main.c > @@ -101,6 +101,10 @@ static const struct acl_alg acl_alg[] =3D { > .name =3D "avx2", > .alg =3D RTE_ACL_CLASSIFY_AVX2, > }, > + { > + .name =3D "neon", > + .alg =3D RTE_ACL_CLASSIFY_NEON, > + }, > }; > =20 > static struct { > diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile > index 7a1cf8a..27f91d5 100644 > --- a/lib/librte_acl/Makefile > +++ b/lib/librte_acl/Makefile > @@ -48,9 +48,14 @@ SRCS-$(CONFIG_RTE_LIBRTE_ACL) +=3D rte_acl.c > SRCS-$(CONFIG_RTE_LIBRTE_ACL) +=3D acl_bld.c > SRCS-$(CONFIG_RTE_LIBRTE_ACL) +=3D acl_gen.c > SRCS-$(CONFIG_RTE_LIBRTE_ACL) +=3D acl_run_scalar.c > +ifeq ($(CONFIG_RTE_ARCH_ARM64),y) > +SRCS-$(CONFIG_RTE_LIBRTE_ACL) +=3D acl_run_neon.c Are the used NEON instrinsics for ACL ARMv8-specific? If so, the file shoul= d be named something like acl_run_neonv8.c... > +else > SRCS-$(CONFIG_RTE_LIBRTE_ACL) +=3D acl_run_sse.c > +endif > =20 > CFLAGS_acl_run_sse.o +=3D -msse4.1 > +CFLAGS_acl_run_neon.o +=3D -flax-vector-conversions -Wno-maybe-uninitial= ized =46rom man gcc: -flax-vector-conversions Allow implicit conversions between vectors with differing numbers of eleme= nts and/or incompatible element types. This option should not be used for new code. I've already pointed to this in the Dave's ARMv8 patchset. They dropped it = silently. What is the purpose? Is it necessary? Jan > =20 > # > # If the compiler supports AVX2 instructions, > diff --git a/lib/librte_acl/acl.h b/lib/librte_acl/acl.h > index eb4930c..09d6784 100644 > --- a/lib/librte_acl/acl.h > +++ b/lib/librte_acl/acl.h > @@ -230,6 +230,10 @@ int > rte_acl_classify_avx2(const struct rte_acl_ctx *ctx, const uint8_t **dat= a, > uint32_t *results, uint32_t num, uint32_t categories); > =20 --snip-- --=20 Jan Viktorin E-mail: Viktorin@RehiveTech.com System Architect Web: www.RehiveTech.com RehiveTech Brno, Czech Republic