From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from wes1-so2.wedos.net (wes1-so2.wedos.net [46.28.106.16]) by dpdk.org (Postfix) with ESMTP id 0909E8DA4 for ; Thu, 5 Nov 2015 18:35:09 +0100 (CET) Received: from pcviktorin.fit.vutbr.cz (pcviktorin.fit.vutbr.cz [147.229.13.147]) by wes1-so2.wedos.net (Postfix) with ESMTPSA id 3nsBnR6919z2H; Thu, 5 Nov 2015 18:35:07 +0100 (CET) Date: Thu, 5 Nov 2015 18:32:21 +0100 From: Jan Viktorin To: Jerin Jacob Message-ID: <20151105183221.476daf8d@pcviktorin.fit.vutbr.cz> In-Reply-To: <1446741498-3096-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1446741498-3096-1-git-send-email-jerin.jacob@caviumnetworks.com> Organization: RehiveTech MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v2 00/15] DPDK armv8-a support 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: Thu, 05 Nov 2015 17:35:09 -0000 Hello Jerin, I'm sorry, I am quite busy last days so I could not check the code yet. By the way, I am about to provide an automatic build + autotest check in qemu for both armv7 and armv8, however, I got stuck with some strange behaviour of qemu. However, I've got a note about the form of the v1, v2 patch sets. It is recommended to send patch series with --thread --no-chain-reply-to [1] so the actual patches 0001..00015 should be all a reply-to the 0000 commit and not every single commit a reply to the previous one [2]. In my opinion (however, I don't always do it myself :)), the 0000 patch of v2 should be a reply-to the 0000 patch of v1... (as described in [2] for the --no-chain-reply-to option). Regards Jan [1] http://dpdk.org/dev [2] https://kernel.org/pub/software/scm/git/docs/git-send-email.html On Thu, 5 Nov 2015 22:08:03 +0530 Jerin Jacob wrote: > This is the v2 patchset for ARMv8 that now sits on top of the v6 patch > (based on upstream 82fb702077f67585d64a07de0080e5cb6a924a72) > of the ARMv7 code by RehiveTech. It adds code into the same arm include > directory, reducing code duplication. > > Tested on an ThunderX arm 64-bit arm server board, with PCI slots. Passes traffic > between two physical ports on an Intel 82599 dual-port 10Gig NIC. Should > work with many other NICS as long as there is no unaligned access to > device memory but not yet untested. > > Compiles igb_uio, kni and all the physical device PMDs. > > An entry has been added to the Release notes. > > v1..v2 > > 1) included "Introduce rte_smp_*mb() for memory barriers to use between lcores" > patch ACK by Konstantin in v2 as "eal: introduce rte_smp_*mb() for memory barriers to use between lcores" > please superseded the original one > > 2) defined rte_smp_mb(), rte_smp_wmb(), rte_smp_rmb() for arm > (1) and (2) fixes "Mbuf autotest" stress failure found in version 1 > > 3) fixed white space issues with patch 8,9,10 > 4) disabled CONFIG_RTE_LIBRTE_FM10K_PMD, CONFIG_RTE_LIBRTE_I40E_PMD > due to tmmintrin.h depenency or ARM > > > NOTE: > Part of the work has been taken from David Hunt's v3 patch who was > initiated the armv8 port. > > > Notes on arm64 kernel configuration: > > Tested on using Ubuntu 14.04 LTS with a 3.18 kernel and igb_uio. > ARM64 kernels does not have functional resource mapping of PCI memory > (PCI_MMAP), so the pci driver needs to be patched to enable this. The > symptom of this is when /sys/bus/pci/devices/0000:0X:00.Y directory is > missing the resource0...N files for mmapping the device memory. > > Following patch fixes the PCI resource mapping issue om armv8. > Its not yet up streamed.We are in the process of up streaming it. > > http://lists.infradead.org/pipermail/linux-arm-kernel/2015-July/358906.html > > > Jerin Jacob (15): > eal: arm64: add armv8-a version of rte_atomic_64.h > eal: arm64: add armv8-a version of rte_cpuflags_64.h > eal: arm64: add armv8-a version of rte_prefetch_64.h > eal: arm64: add armv8-a version of rte_cycles_64.h > eal: arm64: rte_memcpy_64.h version based on libc memcpy > eal: arm: ret_vector.h improvements > app: test_cpuflags: test the new cpu flags added for arm64 > acl: arm64: acl implementation using NEON gcc intrinsic > mk: add support for armv8 on top of armv7 > mk: add support for thunderx machine target based on armv8-a > updated release note for armv8 support for DPDK 2.2 > maintainers: claim responsibility for ARMv8 > eal: introduce rte_smp_*mb() for memory barriers to use between lcores > eal: arm: define rte_smp_mb(), rte_smp_wmb(), rte_smp_rmb() for arm > armv8: config file update > > MAINTAINERS | 5 + > app/test-acl/main.c | 4 + > app/test/test_cpuflags.c | 26 ++ > config/defconfig_arm64-armv8a-linuxapp-gcc | 56 ++++ > config/defconfig_arm64-thunderx-linuxapp-gcc | 56 ++++ > doc/guides/rel_notes/release_2_2.rst | 7 +- > drivers/net/virtio/virtqueue.h | 8 +- > drivers/net/xenvirt/rte_eth_xenvirt.c | 4 +- > drivers/net/xenvirt/virtqueue.h | 2 +- > 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 | 289 +++++++++++++++++++++ > lib/librte_acl/rte_acl.c | 25 ++ > lib/librte_acl/rte_acl.h | 1 + > .../common/include/arch/arm/rte_atomic.h | 10 + > .../common/include/arch/arm/rte_atomic_64.h | 88 +++++++ > .../common/include/arch/arm/rte_cpuflags.h | 4 + > .../common/include/arch/arm/rte_cpuflags_64.h | 152 +++++++++++ > .../common/include/arch/arm/rte_cycles.h | 4 + > .../common/include/arch/arm/rte_cycles_64.h | 71 +++++ > .../common/include/arch/arm/rte_memcpy.h | 4 + > .../common/include/arch/arm/rte_memcpy_64.h | 93 +++++++ > .../common/include/arch/arm/rte_prefetch.h | 4 + > .../common/include/arch/arm/rte_prefetch_64.h | 61 +++++ > lib/librte_eal/common/include/arch/arm/rte_vect.h | 54 ++-- > .../common/include/arch/ppc_64/rte_atomic.h | 6 + > .../common/include/arch/tile/rte_atomic.h | 6 + > .../common/include/arch/x86/rte_atomic.h | 6 + > lib/librte_eal/common/include/generic/rte_atomic.h | 27 ++ > lib/librte_ring/rte_ring.h | 8 +- > mk/arch/arm64/rte.vars.mk | 58 +++++ > mk/machine/armv8a/rte.vars.mk | 58 +++++ > mk/machine/thunderx/rte.vars.mk | 58 +++++ > 34 files changed, 1256 insertions(+), 54 deletions(-) > create mode 100644 config/defconfig_arm64-armv8a-linuxapp-gcc > create mode 100644 config/defconfig_arm64-thunderx-linuxapp-gcc > create mode 100644 lib/librte_acl/acl_run_neon.c > create mode 100644 lib/librte_acl/acl_run_neon.h > create mode 100644 lib/librte_eal/common/include/arch/arm/rte_atomic_64.h > create mode 100644 lib/librte_eal/common/include/arch/arm/rte_cpuflags_64.h > create mode 100644 lib/librte_eal/common/include/arch/arm/rte_cycles_64.h > create mode 100644 lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h > create mode 100644 lib/librte_eal/common/include/arch/arm/rte_prefetch_64.h > create mode 100644 mk/arch/arm64/rte.vars.mk > create mode 100644 mk/machine/armv8a/rte.vars.mk > create mode 100644 mk/machine/thunderx/rte.vars.mk > -- Jan Viktorin E-mail: Viktorin@RehiveTech.com System Architect Web: www.RehiveTech.com RehiveTech Brno, Czech Republic