[dpdk-dev] [PATCH 00/11] add armv8 architecture support
Jan Viktorin
viktorin at rehivetech.com
Mon Oct 26 17:21:53 CET 2015
Hello David,
thanks for this series. I'am sending few comments to the code as well.
Soon, I will have an ARMv8 board available so I will be able to test it.
Probably, we can just reinclude some headers from arm/ directory for
ARMv8 as they are not different.
Jan
On Fri, 23 Oct 2015 15:17:02 +0100
David Hunt <david.hunt at intel.com> wrote:
> This patch provides support for the ARMv8 architecture. We hope that this will
> encourage the ARM community to contribute PMDs for their SoCs to DPDK.
>
> For now, we've added Intel engineers to the MAINTAINERS file. We would like to
> encourage the ARM community to take over maintenance of this area in future,
> and to further improve it.
>
> ACL and LPM libraries have been disabled in the config due to their reliance
> on SSE.
>
> This patch was tested on an Applied Micro X-Gene Mustang board (pcap only)
>
> This patch was also tested with an Intel 82599 NIC on a Gigabyte MP30-AR0
> passing traffic between the two NIC ports using testpmd.
>
> Notes on DPDK configuration:
>
> Did not use igb_uio or kni so the following optionse were disabled in
> config/common_linuxapp
>
> CONFIG_RTE_EAL_IGB_UIO=n
> CONFIG_RTE_LIBRTE_KNI=n
> CONFIG_RTE_KNI_KMOD=n
>
> make config T=arm64-native-linuxapp-gcc
> make install T=arm64-native-linuxapp-gcc
>
> Notes on arm64 kernel configuration:
>
> Using Ubuntu 14.04 LTS with a 4.3.0-rc6 kernel (with modified PCI drivers),
> and uio_pci_generic.
> ARM64 kernels do not seem to 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. Earlier
> kernels (3.13.x) had these files present, but mmap'ping resulted in a
> "Bus Error" when the NIC memory was accessed.
> However, during limited testing with a modified 4.3.0-rc6 kernel, we were
> able to mmap the NIC memory, and pass traffic between the two ports on a
> 82599 NIC connected via fibre cable.
> We have no plans to upstream a kernel patch for this and hope that
> someone more familiar with the arm architecture can create a proper patch
> and enable this functionality.
>
> Benjamin Boren (11):
> lib: add armv8 rte_atomic.h
> lib: add armv8 rte_byteorder.h
> lib: add armv8 rte_cpuflags.h
> lib: add armv8 rte_cycles.h
> lib: add armv8 rte_memcpy.h
> lib: add armv8 rte_prefetch.h
> lib: add armv8 rte_rwlock.h
> lib: add armv8 rte_spinlock.h
> lib: add armv8 rte_vect.h
> mk: add makefile and config changes for armv8 architecture
> app: add armv8 cpuflags check to test_cpuflags application
>
> MAINTAINERS | 6 +
> app/test/test_cpuflags.c | 17 ++
> config/defconfig_arm64-native-linuxapp-gcc | 55 +++++
> .../common/include/arch/arm64/rte_atomic.h | 269 +++++++++++++++++++++
> .../common/include/arch/arm64/rte_byteorder.h | 157 ++++++++++++
> .../common/include/arch/arm64/rte_cpuflags.h | 137 +++++++++++
> .../common/include/arch/arm64/rte_cycles.h | 77 ++++++
> .../common/include/arch/arm64/rte_memcpy.h | 266 ++++++++++++++++++++
> .../common/include/arch/arm64/rte_prefetch.h | 61 +++++
> .../common/include/arch/arm64/rte_rwlock.h | 70 ++++++
> .../common/include/arch/arm64/rte_spinlock.h | 114 +++++++++
> .../common/include/arch/arm64/rte_vect.h | 102 ++++++++
> mk/arch/arm64/rte.vars.mk | 58 +++++
> mk/machine/armv8-a/rte.vars.mk | 57 +++++
> mk/rte.cpuflags.mk | 9 +
> 15 files changed, 1455 insertions(+)
> create mode 100644 config/defconfig_arm64-native-linuxapp-gcc
> create mode 100644 lib/librte_eal/common/include/arch/arm64/rte_atomic.h
> create mode 100644 lib/librte_eal/common/include/arch/arm64/rte_byteorder.h
> create mode 100644 lib/librte_eal/common/include/arch/arm64/rte_cpuflags.h
> create mode 100644 lib/librte_eal/common/include/arch/arm64/rte_cycles.h
> create mode 100644 lib/librte_eal/common/include/arch/arm64/rte_memcpy.h
> create mode 100644 lib/librte_eal/common/include/arch/arm64/rte_prefetch.h
> create mode 100644 lib/librte_eal/common/include/arch/arm64/rte_rwlock.h
> create mode 100644 lib/librte_eal/common/include/arch/arm64/rte_spinlock.h
> create mode 100644 lib/librte_eal/common/include/arch/arm64/rte_vect.h
> create mode 100644 mk/arch/arm64/rte.vars.mk
> create mode 100644 mk/machine/armv8-a/rte.vars.mk
>
--
Jan Viktorin E-mail: Viktorin at RehiveTech.com
System Architect Web: www.RehiveTech.com
RehiveTech
Brno, Czech Republic
More information about the dev
mailing list