From patchwork Tue Dec 27 09:49:27 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 18582 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 0BB76F95F; Tue, 27 Dec 2016 10:52:21 +0100 (CET) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0088.outbound.protection.outlook.com [104.47.33.88]) by dpdk.org (Postfix) with ESMTP id A945A689B for ; Tue, 27 Dec 2016 10:52:16 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=l3cCEPwxjJ4rRT+xPvIuxXWtyo1IoknHs3eylvpQeLY=; b=J1tEKDIf6d2ug85p0bIeWd3Jq0hoTJEqc0uPrUsPstBESVIyNk4/BUoVJ8SP2jT6Uk7KGA4nUNfBt7dccShCIF/vgR7qRvsOhBR13mCKgTyrzS+8JHxkMVhIW9pAm7Q9g5KyTQVmm5akJlfusrBTBxEjrDkpCZaWW8pwFrAZya8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.localdomain.localdomain (202.83.56.97) by BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.803.11; Tue, 27 Dec 2016 09:52:11 +0000 From: Jerin Jacob To: CC: , , , , , , John Daley , Nelson Escobar , Jerin Jacob Date: Tue, 27 Dec 2016 15:19:27 +0530 Message-ID: <1482832175-27199-22-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1481680558-4003-1-git-send-email-jerin.jacob@caviumnetworks.com> <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [202.83.56.97] X-ClientProxiedBy: PN1PR01CA0001.INDPRD01.PROD.OUTLOOK.COM (10.164.137.8) To BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) X-MS-Office365-Filtering-Correlation-Id: b7342bd7-b427-4b7a-ca86-08d42e3e0976 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB1713; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 3:xqRhU0J3xS7YDJ6qRC1KJDMqsjKfysbBPLgVJR76KKs9dsul4zScW14wi2TxrzbDwNwYl4UpjuJu+629jg3+r7Lu6OIGV+GncMd5m1T69kOPit7IQ2UanaMGOVdqE8QgmWQKg54ttayIWaPPLZGQzzr6P01W2usMgxbezcgLfatprgMleWSJSvdhtex73Cp1nihRx6xUINhgQgwMjNfISXoZ7aAcQSs62XfAy1KTCnPEGYhM+VoS6c0qS1GECJMSqc3q+xzSgR+cYhq/Hni7iw==; 25:QhyJPcaeXjutgXA5Fm1wjf7IwTeKuzKFsuEKgQHau49/0/XTcW7RII46Q5+AEAd1Ofqfpo4Kh9TXi3dZF5+gUxMKzVbkYuqpY6gsl8eJEyIDN50Z1Xd4YsbybZnXOHVmLa2RUKXm1FkCvhuDqbdwPhj8Wx/ArakcIe5spBvqMQ15CnI08/Hr6GfKvZ4F6T0Bn6/2MiU3KMO2RyQKJxwD4ocYmp8xfCwuq0oie0ErtajMiteFR+eSIGW5XLaQUNLy9EPxmOaagecInw330sacmtduyQeB19slxUW/YhnVXIWwGW3e3heXUOmJKKRDS7G2ejIlTIkG/ejpY+bNVaWd8RRGn3NZfUL3CelP8eNnERdjCzevArdDV+dx6+ITa1RebxZOpNULFWj5zMpieemwzh1Nc++tizuVhve9E9KBgym53CX7DTJM3VJ9CBJ+bk+bwIUs6BE5uusKzohNgxr09g== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 31:5YKJi9bNbsQbWrFWJ9Nwvu61cm23nC10ctSpFerxceBEttjOA57xskrdSfosYTF66hT9e3BOB7HXtgKmmK+eaQ8vSqyra9+1XYAP5cAkkl1qWNxknYxz1O8cSclhhbfO1wJeW4JWV9sqMerHoc2+jyLuOX/ph8Vur7YYbmEL5i+YY+qQvVgBAurkY2Qnh9FhZxj0rlQu3zSgHsdT1GbrAh3ahVsAf79B6vHVMS85zSc98qNa1wNDyGdbnA/COzz6; 20:fHCGzvqzrh5xdy+mwRlgzAJZ7znYu1w9ZuramzmhCSR+iz1zluH1hfuq3laairIalT4qA3rvpdYHS90svoG72RN75NlG331H/5ICbRWMrygBIflZ6pCBaInob8o+i4I9ySzFDriRm7KTZZTPVLUY81Cxzuo2ryiNiMceThHNcRf/JDGq+yKcVG2q/chGMcxz070VB0R2ESMfNI7RnUzCmPrQuFvVXxu1uv6aOnQhSkNDSx4qfXzRqB9G6hfwg2xrxD64GjS/feK/ZJsSgPgfs98DE7gVP28vVLpm9lYka/8sfVdk82ux4Z2uDMHYeKBbiwH3F/O8NLn7qO29B6R/acaCe6/0OtUa/rlZkVyglmS3uvRPov/ldW3gEX+IF9k/zhyIjdtbpVfhQQTPT8NCK45d3cQzNp8T8snWrQWrYJvyG6cAkaXBaUIXzIro78nbXyBm6NbPPeX6lUrpi3dzDfOgMe1LEJxWf/br5wASGEuCCKwTdSw0jThe0o2YNY/IL/LaY8zNCjXCCM4oJdhYFdXOIqxWoNLGJNZYi2nKkNA6p1zltmxlXOrGtcuEG2yVC9SbIlQ3lryDy0frAG545ygtM7h+A8in1FKEfDq/m7g= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(95692535739014); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123555025)(20161123560025)(20161123558021)(20161123564025)(20161123562025)(6072148); SRVR:BLUPR0701MB1713; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1713; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 4:JISnCjbo5cxSJjv+hIlPSD3vnLfN+d2UJAoRMPE9Ji4E3zPxx/ANOzIRbIyDttFaT/gHsJ6X5ZUkmJG69VFFLSKx0SdXvzXgVcibJAGYpspo+qDWJYJEt7zHNGgJiOGCMOpuaBoFHtNXH6y7cXPkbBxdkMqUvwGG/7qTLzJp3Q9+VEgU/KtIfttS7zaCkGhQ3z3blGtLcDco4K+fuv+VP/ZwrNX1p14VhElug9sY8AFu95UH/0Z8OsfoP6/U4fe1Y8yPxUdy97rg2m9rwtK6eenXy6eXMcmcbIXoEtSHZf4MSQjF4KCxkF82jznMUmmGvIJ4/BBfYvQl1hGvYgPVIm8i/S7O1+rifIO3RIuISPnWnesnGRy1VpoHmb3yKu/KhY+//JXrTWO/ZvTG6wJqci1uHR3xE/4Ce9Rzus+7XB2SfqyroHc51r3VCet/157mE6+17F6T1n8X5r7TFwQoloJ+00OXe3Bs5CTC0mOR5c2hEL8xvKn8gXw5422yDLyR8oOgU1cGOduTFS2EUDrhXf3i+nsqaLB3y4UfoC/PtUvG9eeDoshCnJ9LW7w6lZl3imCcF5+YTDpug/eOthLqV8alnXND8BDgchzG31UCREdB1P+8fDTXbkGKGoksHwIRE0O5GJD5bNdOJEV2etZwkfRPsM2gyNcZp/osB8eMRiyctIph/wc0zN700lr7R/rm X-Forefront-PRVS: 0169092318 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(39450400003)(189002)(199003)(36756003)(68736007)(106356001)(97736004)(50226002)(5660300001)(6916009)(47776003)(42882006)(2950100002)(6666003)(189998001)(25786008)(105586002)(33646002)(107886002)(48376002)(38730400001)(7736002)(92566002)(6486002)(6506006)(6512006)(110136003)(50466002)(305945005)(2351001)(50986999)(76176999)(4001430100002)(3846002)(4326007)(6116002)(5003940100001)(42186005)(81156014)(81166006)(101416001)(8676002)(2906002)(66066001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1713; H:localhost.localdomain.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1713; 23:nLOxNMKqS6PXlk8TtPyVbYz21wopCnogpaYcUBg?= 71N7J9lk4j0LtlVCQhiAa0JCM0A/bINrqewYPG4azK6cbkKrc7J9R44eFZUGmhZpmhbOY0z71zDTZS8zcrO1349E/JGLtROcqWeK7k0jh5UViQ/2JVjh3dY29WgZwMewphaP3t6We7SBCdBF+zfJRH2uMhsGJAOaYLX0nR86VoxRIOJ6TdTjYLEjY9BrR6MDN7JCMdwSU/KSLp9gP1Qd4PXCmLtkEY8ykxmXkRGZfYGxMs+fNvlsxMnllQq4BYTLwyXitKC8v5q7LdDzHcNJzr8V7o0o1i7nQ/X7jjqwc1B+STHsDo+Df7YXnmaFvHFJegijGSvHnJNeky6Wgj4+j0JliqNIOeD/jU4oE1elsr9aD3jCcxFRE6MNw3z7yAIdr42xmCQZt+8GlvedGYl3GQwn6hPzhUy+9E35oZ49mr5PehgI8gw873HVfv/Mn/IS7I9dxgNkWKjcYeyqvcGk70AkoSRyKUOFIJF6pacL5jf826gqBWP1NjIW4OhboIYCdnvFp44UcvJOqnARLaG3UoZZrU8SUs4mjqwMMVddpBX6mcz8+OGCGpBp2kzyG4wKlEaWSTBDL8FmBI9BNEQq5/NtNfhAD1nBIDcgauOdUzvIDUDVIlP7JO+7FAMX/HleY1EpXoK+WSqaGYYJpDJGE8X0lcFh4jgThoyBgTtL0pa8YJRc2M4B6OJM0kkspbnmyb7m2rfwdqJ/V5QbjtrM0wN2hmNuEEPJZwHk0q3m9tRqUcuvb5XNaQjZ4pqEWEp+Oozl2ovC4Y/04XzBRKXhpaUvWxwUa9Wwh2fpTPHhebA5vVVAiHXHzDZHyw8dqAbnRW7P2JJ3Yl3AjSZZ75D5nSvsG4q6Wm20kHozXk+1JgDx1TbCDVewtPuIzEVGeZAVE5s4zdzlnw4ENpfOnzZ2G4b4W8R6C3SQ3Ysc1xzJ0bT2ApZIMf5cL9ZGCfJ86Cv+wWC/go0NEzopbs//Us2JqJSRrcQZEgZ5aY3S8zmF9wPb2IU43GB7fyOj2aPsBWjxuM5xPGUp5ddE02wtrQI1cGJtw5SyoWlRgHOkLjzWUpe5iUWkLr+kq8xg2TVgezJfP6TLZJa3e8cdlRvEYLU/vKcykg45eTLYE9w72JhQgTMZadA== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 6:yfpHVDelMs+Oc7uoATRacz1cYHuLzGwuER+JT+9o+G0joFgRkYktFIo5vGepXmiRT+Dl+pHARkbuusvVLwrOWXD/hIwsuvp5g1KsJD/yuFDhYWvVm/77YGY3+a4MfmepFsKC4zntYPw0tNFd54Tmz6HF/0mFdFiKEHu2autyvu9UWme1RYCGMlCvQBWJw1A88ocEBj7JnJwbAotxF9iiFWceN7o5nYSlMRsQe4YCRhgNYK3u8yGDz7aDY3V8J8FS7KdgHdidmkpYyA3KWfTg2DVVP/b3nPRYef76caLTLwQwbLhTZ2kLN4GdjXqDk3/JnzqCHGRWrXJS0t728D8d3XPbl1hBeAYp0MgbUlqbSt/MtVtVmccBICBlsOhQrgIofrsYuRp5WjorJ/uUGteN3cMztnaDxfzeMFMDwid8+6E=; 5:6rbLoxVDaY/H/VRz8Xdo2U57j71Uy+99hueDyrJstXfZ4Wodbb7eShsfj3dEdSPAIqqbsaii6YTcn6yZxU3rSvW4HlHZTYgODwnDPkZ/Jx2AQ0loOz2qfN8NYkIMDqU48xEPVfUbqf1c6jcavggykg==; 24:aJl+YZIRAA0ndBkgb0Ynf1fjGmx0XyimLh9YLNiRdPf128rSKguuJgV/O2KG/79gu3AnBCa6jDcQfFOaX+znRABxQ4C5hX3T2OETAYju9eY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 7:+6oCuOHG9sWDmv/Tl2hDuvpz2pSSuUlXDHlbWVbaam/spEK/n7NuMgPwbxVNMDGO12wqWpC26W5B5qNMtLFmA85xcE52jMBGAMa+ElkZUmIBX8tJ2W9MA6/d4+q8veVEOdzHq6tsTUiuNRdK6QcQz8+KVedUfMbjYl93xh5OeEe3e/zNfd5aK+lR3DgrdMKqCxnIuq5jOu16HIRNnBtG/an7wn5wbp7O2fslugNtykLj+/t5z9PsZCIxwfEcFaFRkgZoGkodjZnBxB9Z99L4xNrUmtUGvH/X69fkkeBjOdrGSsJ+W79GkW5ZMryeekrCaBMgdZEl7uHY+qrNNPFYi3xhYK98HoQ5FdxtF75ikB4dLgTqHW3Lr7vKadP6WxoW358QvoWsuXDxKJjlcwD7MQuG+e5J2uvOeymlpcqm3wprdIaqnrviYpAPPGczGAp3LxKcTV8psifeynD0dXDBDg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2016 09:52:11.5092 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1713 Subject: [dpdk-dev] [PATCH v2 21/29] net/enic: use eal I/O device memory read/write API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Santosh Shukla Replace the raw I/O device memory read/write access with eal abstraction for I/O device memory read/write access to fix portability issues across different architectures. CC: John Daley CC: Nelson Escobar Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- drivers/net/enic/enic_compat.h | 27 +++++++++++++++++++-------- drivers/net/enic/enic_rxtx.c | 9 +++++---- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/drivers/net/enic/enic_compat.h b/drivers/net/enic/enic_compat.h index 5dbd983..fc58bb4 100644 --- a/drivers/net/enic/enic_compat.h +++ b/drivers/net/enic/enic_compat.h @@ -41,6 +41,7 @@ #include #include #include +#include #define ENIC_PAGE_ALIGN 4096UL #define ENIC_ALIGN ENIC_PAGE_ALIGN @@ -95,42 +96,52 @@ typedef unsigned long long dma_addr_t; static inline uint32_t ioread32(volatile void *addr) { - return *(volatile uint32_t *)addr; + return rte_read32(addr); } static inline uint16_t ioread16(volatile void *addr) { - return *(volatile uint16_t *)addr; + return rte_read16(addr); } static inline uint8_t ioread8(volatile void *addr) { - return *(volatile uint8_t *)addr; + return rte_read8(addr); } static inline void iowrite32(uint32_t val, volatile void *addr) { - *(volatile uint32_t *)addr = val; + rte_write32(val, addr); +} + +static inline void iowrite32_relaxed(uint32_t val, volatile void *addr) +{ + rte_write32_relaxed(val, addr); } static inline void iowrite16(uint16_t val, volatile void *addr) { - *(volatile uint16_t *)addr = val; + rte_write16(val, addr); } static inline void iowrite8(uint8_t val, volatile void *addr) { - *(volatile uint8_t *)addr = val; + rte_write8(val, addr); } static inline unsigned int readl(volatile void __iomem *addr) { - return *(volatile unsigned int *)addr; + return rte_read32(addr); +} + +static inline unsigned int readl_relaxed(volatile void __iomem *addr) +{ + return rte_read32_relaxed(addr); } static inline void writel(unsigned int val, volatile void __iomem *addr) { - *(volatile unsigned int *)addr = val; + rte_write32(val, addr); } #define min_t(type, x, y) ({ \ diff --git a/drivers/net/enic/enic_rxtx.c b/drivers/net/enic/enic_rxtx.c index f762a26..382d1ab 100644 --- a/drivers/net/enic/enic_rxtx.c +++ b/drivers/net/enic/enic_rxtx.c @@ -380,10 +380,11 @@ enic_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, rte_mb(); if (data_rq->in_use) - iowrite32(data_rq->posted_index, - &data_rq->ctrl->posted_index); + iowrite32_relaxed(data_rq->posted_index, + &data_rq->ctrl->posted_index); rte_compiler_barrier(); - iowrite32(sop_rq->posted_index, &sop_rq->ctrl->posted_index); + iowrite32_relaxed(sop_rq->posted_index, + &sop_rq->ctrl->posted_index); } @@ -550,7 +551,7 @@ uint16_t enic_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, } post: rte_wmb(); - iowrite32(head_idx, &wq->ctrl->posted_index); + iowrite32_relaxed(head_idx, &wq->ctrl->posted_index); done: wq->ring.desc_avail = wq_desc_avail; wq->head_idx = head_idx;