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 <jerin.jacob at caviumnetworks.com> 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 at RehiveTech.com System Architect Web: www.RehiveTech.com RehiveTech Brno, Czech Republic