From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0053.outbound.protection.outlook.com [157.56.110.53]) by dpdk.org (Postfix) with ESMTP id DB0B68E7B for ; Thu, 5 Nov 2015 17:39:13 +0100 (CET) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@caviumnetworks.com; Received: from jerin.caveonetworks.com (111.93.218.67) by CY1PR0701MB1977.namprd07.prod.outlook.com (10.163.141.19) with Microsoft SMTP Server (TLS) id 15.1.312.18; Thu, 5 Nov 2015 16:39:09 +0000 From: Jerin Jacob To: Date: Thu, 5 Nov 2015 22:08:03 +0530 Message-ID: <1446741498-3096-1-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 1.9.3 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MA1PR01CA0067.INDPRD01.PROD.OUTLOOK.COM (25.164.116.167) To CY1PR0701MB1977.namprd07.prod.outlook.com (25.163.141.19) X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1977; 2:QAUSLF22IAKfPMOuFf+cjmYkh3bJunshTmfAHljzW3lOKmwonMWv0yBRQv5LQii9cCUUiDixMhiEyOHWlaPpXcCSqBRY8kIzqI3AbvG2uyhbwPDelG4sQJ+PVXNYdx6Lc7IkN92K8sjZM5r22DDjL0pj8fuk0StaUBII880mrUI=; 3:Mgk2/ZgUM1OXMMjGITgUFHS861NxRwmne0MhMTEXgJCa608lB3n8CCQaxg8dq+5qzt174cQewCyU6Zwea7GTfF7KGAt8REjs9PSUU0w6jPGBBI1BRT0C1vJGj9Z74smVwleK4n0azc4PhqSKul/w8g==; 25:vm9P3jh5C5Pdhn3Wy2WsHeKGb3W3lXh5sa/AbVC0lnneBDiZKgsEsPKjvvK2mgje246Aq8uFPtlHMu+UohaT3rCGyS01QHy3hhgUCZsrX0T4UTwAz8u+0J5Gchhqv9BZdZy9wr2M0eTYIy8PKSEFGFaq7pAAengBCX6ASGxK/0mD/rYEc8Mqo6WWl0tqoVQEApVcjDOBSyzQq4gTf4k9TpongQCUDrKyYBXrl4pAzx97lvbQ/JGpyeRSpQg4tuQ2 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0701MB1977; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1977; 20:ON5T80hUWxUEddM8FBoN/C4E5tCXiKtYNBPSZHVZ/0LmBhBMLhTl7otkH8gizEil9wucmUlO7Ul9zlPVnOs9ARWwGOomZN/WZQoFiBxl4QDZZuVYvKcimm5J2ZBpEhHD9YS9ecCROKdiIp481XkI695kElJIzVVDzDXDXVkp6xMN9aqkH2GyVVXfnYJioIhMDJzerZLcCxNEvIikvz809Ol+i1axdmrfoWdZ5ndQ31nj70GByWvgtAg1bvDbPJP+RJLaaIzHGEKbEPb8VQrXJ4ZjsQknfakfyQ15bq6YtUGs8on84PTcvfZ9MR4kCYl+yWyPnNZoG3ykkD5HIJEEcbehy2z7ozIZqGFXwnu6/4Ool5yNIRlNUnpp/81gbOMfWTqkdSmSyQrOJeCUl4zKqBc3yHsx0WDA08JitDc0NH+K/qawd7s6a51D95eeAtsD249oElCZLKjUYnuQAs+aZ6g7fuL+/JlrNGs9i/EzCpZgD389+7H3xafxtUaXCDnlH1iLR4SNgar1fS5pI62LvQhpVrBl8cqko/dn3DLtuqCCFwVfrh2aWUudJFNHswBBWMJxEnsED+DXoK8pp4clMtcozu4RRNTa6+dkuJlJHfs= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(3002001)(10201501046); SRVR:CY1PR0701MB1977; BCL:0; PCL:0; RULEID:; SRVR:CY1PR0701MB1977; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1977; 4:UfGc5aZP386qECc8KhiCsOKHs91/fC8v0BNVuX2HmsKmG90VkE/lN64pVSUNklEkXWFeB08n7prpiuGdsXxOyWnncrUp19T3EtqrqGhrqpO7XrTAMOrj9hVmWWC4fT7yOgEYVavApolTL7RVvzvSjIpoU8COZWkPZwbb+vC+g9xb4V7atVq2o+2xYf3QbXJeCMF5pkrXtaTlNxD+Ff5LyKjKyMQFmIlO5XNr4yfPWRMzvXyE61k0iEOAyXyWKZ5d5fU2N4PMycucLxBLagmAdKpo12roS5s8uXpYBE0AYy1nJ5Ox1nKNZSofF3bxiUZhJ42nhCAjf1L83zV7/RGqKV+FRiTVgbiZdqRFDhYU6EUl+BlEwyYNlYSyFnMfolKc X-Forefront-PRVS: 0751474A44 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(189002)(199003)(2351001)(81156007)(5004730100002)(5003940100001)(50986999)(50226001)(106356001)(105586002)(77096005)(50466002)(15975445007)(53416004)(47776003)(229853001)(48376002)(33646002)(19580395003)(69596002)(36756003)(107886002)(189998001)(42186005)(5008740100001)(40100003)(122386002)(5007970100001)(5001920100001)(5001960100002)(86362001)(5009440100003)(92566002)(4001430100002)(110136002)(87976001)(97736004)(101416001)(66066001)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB1977; H:jerin.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0701MB1977; 23:dqmCfCVlZs1M916eUIygp9H785yDnPY8hUUbP7b?= =?us-ascii?Q?HJqutlYA7gNeXnw1VgHU1b/xHKRqieHZz47nLt+UGrvVlhcU0JAos/SFBa96?= =?us-ascii?Q?uCgHgfZZpyghRaVsnM3D+uSDjCfJ+VBgUe9r1W4X8bkcVh8WhzMNMmsOTHaK?= =?us-ascii?Q?HM0qsJ4Xjm/YJnxs9p1zMRvox4PYZGhuRHaLyISzFthOI8Ne+YckAnIdXTbz?= =?us-ascii?Q?sdQUjMCz5mZY1nVJP70FyCfpRQBZw0zpEr18IiDTir4nzo8KyXUWCs3cQbGP?= =?us-ascii?Q?ZXcbo32ilCA3DIyQ9MROx7lzEPp6SCMmII7MRARSAsCyR72amlix9TJhBSvx?= =?us-ascii?Q?X8Ix4Az3bxHHmaxHRrAof5gFusP1YkwcHqgfg8u9OdOvBqOmCPkSd4pnlKDH?= =?us-ascii?Q?45KkJpuK4MM0lMHM5Jb6BNpDxvWW6IKaX7V4AyAAit0oufF7a5ovk0MT8kIZ?= =?us-ascii?Q?K3BFpAlJZ5vClt1PwGEy1yV6+TI3Sskd+lAcMwxmWvCJ8M6maCnZldumZd6S?= =?us-ascii?Q?ryrlvGQo8ioUR3EuDAgWRjKBOjnOvVvWZHzaYM53m5wlF6f5u9qNmZ5IzrrO?= =?us-ascii?Q?R/t5OxIXV4VIx4mwnJbIUCS2gSlYF9si62WhZj53m6G0Cxo9dttER4srHNp4?= =?us-ascii?Q?mbFt3hY6UB24C/mDs1Z4YsTfnXl7SlHsHP56WwbShxuTLs/OrapzQLdE3rnV?= =?us-ascii?Q?vR2lvPqgsW4zNFwVzdD2QGaFzGGcMaSlDPzGKPUIFQeLVNO4SAHlPByxcqSy?= =?us-ascii?Q?5YTAX8MRbZRMA4J4vFrhqpK2iZJ8mZw/JkVSuitTJi1t+2DV3+vu33ajdqEC?= =?us-ascii?Q?1scWeHz6ZreoDmkeSXoWIREi+PYpVcmGlfrzEv1WHilPbcm2h6UFC+S20JJ7?= =?us-ascii?Q?uG3E9QtGUKL13v++8Cv6TUj5epEL7vPrbuJLf5VNNNzmfwzL62MBUCoaycOO?= =?us-ascii?Q?OuPj7qambnAptq6XmsFXGiO2ES9VEbpUj6/lRmQhFaW75l4UOkVXpci+24my?= =?us-ascii?Q?sYh6Xe6rYuY9LdlShNJZh4BjNHTD8b9ya0rw9IbymGUdWi3Wg4P5VwIIyJXb?= =?us-ascii?Q?4AVRLziOxAK316b7WzcnbV/AZ/6wXJAV4UZOjWT8tIZLKf+wdvdVKQoaFs7L?= =?us-ascii?Q?/myuMfiRyX+JeKevb4sSi3Chk2apadYTR?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1977; 5:C5tfAgFAjvhEidtyqsbII3vWQlFtdX7KLTUILfH1YQe9DCReVZoCvM1i5fe+08XgrFFiaxPD5l3h24MIxOu9vXBVnZOQizRVszbjBFUBy4ZNa3VLAXUIzpj2R/wzcfFE7bGS8D3IOsAJyROJ/KPEwA==; 24:eiRDI95Wl7KtqoRkF4UaBNVZWQwqWGd36ONl9AzGlkCFZGyGwFjHPSmlPCaLOyQDX4itOCQ5nbybuBjp6NDZfxpfi1We+R+2qDRSqCbZppo=; 20:sns2qcVe6iGNzFJOqDR5l6vKsrGSbxN1an4GgFI35ffXOrCm1yxojpeMtn4cv4LiQPUUcoVDMUy7ODXIDYk1ZQ== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2015 16:39:09.8032 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0701MB1977 Subject: [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 16:39:14 -0000 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 -- 1.9.3