From patchwork Thu Jan 12 09:17:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 19234 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 A756EF944; Thu, 12 Jan 2017 10:20:26 +0100 (CET) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0045.outbound.protection.outlook.com [104.47.33.45]) by dpdk.org (Postfix) with ESMTP id 7357BF92F for ; Thu, 12 Jan 2017 10:20:25 +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=y12OUhTUTV6VJRVvLj6XViWvoV47pJUf2YGtBrPLAXY=; b=WWXCmhfOJxfuYmUQZqvCHad7h2ne97f0VnOyUuJRgwRuukRzmFX4W+oU4sDj8a+L915DLXpeY+5ETurXPsjfvmRy6hwo8wGvFDDD1RQ1JylVmOnz/lxOsthCRFp0d8EqS/+uV9gON6RqQH3GNrvTkWIcwrEni98YQX/D27dU+g8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.caveonetworks.com (111.93.218.67) by BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12; Thu, 12 Jan 2017 09:20:19 +0000 From: Jerin Jacob To: CC: , , , , , , Helin Zhang , Jingjing Wu , Satha Rao , Jerin Jacob Date: Thu, 12 Jan 2017 14:47:20 +0530 Message-ID: <1484212646-10338-24-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1484212646-10338-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com> <1484212646-10338-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BY2PR06CA0007.namprd06.prod.outlook.com (10.166.106.145) To BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) X-MS-Office365-Filtering-Correlation-Id: f58d334f-f8c3-4cc6-f3e1-08d43acc3d09 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 3:9CYnsyr2lsvob3187+t8kiFpGGVTBg8enPRiWQyRyJs9D40ilq4Bk9ccHf27sr/r6BGePXeUSS+1N7ZdPr3OEYh3dx5VitdLHTKve830sLnLfX9Oz5iYKOgvz18BWhuuwDQwhX/T/rsXlHIu3UNjzyX/CWnns/xWmnJcv3DTZkwj5My+rTpXI3CEInvSg7mZfN8xKdrcFDrsPe09+zJqtgmHwtePrvXDAOccCqXyuQEjiO7yh6O/cW/QEpWVuz6IwsM4LVn3JbXyLvXU0f4nbg==; 25:3h7aqjbbKibbKToQqO1Rwq+gBVWyf+A2Z7t2DusMobBWNpkcbfhEmiAz6DqO49r2eRplH1z3NjUfAIOianZTQ8Y5f+btGTWMkFuDUjKo6wZDq1C27xisF9VDlcZUw3ie8j7fVHTayegd5Sg7UzKHoflV8F9FgziRE6FKoxn/7rYETnuFNh11L3fcVGetq0EGbHp9CvHj39uGMZinfQXpMy0/bdu2ZY11v0OL5WWXa+TA8y1ZeyhgVIKeqd8Mt2d7vsIoXhG3GvDLD89297OtUKYmlAoTtSu0X8Jh6YAWVDtyfIMRMSQ3ANiiM5GgASVD2FyqN+U0H+6CHZ6517zWyB78FpqaEDsp8sfEX9jgWI/GQ+GGZfkDh3lFD2B0G7AmY4WfqnN+peaF06mLooDTBPkW33Vmd6greWsV2gwlBmj7b1vgDjOHmwOSqzqwbtQXGxJ6aaFrSOnhfhU2x1gZMg== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 31:MPr7HP9+I51qYB1XhuFfSDUyGIq3tHiUvXpc0NYFZ70GYGvedJ3eUVDkyfbvj2ejwAOO8IFueaS/QAp6KpVUQYtPrLllUvzIOZcveE8BtGW6nSBW0x6EiZwsGZjRNthPr0xpXJaNVBsYIkSY3N/BbP7+FiAGHNuMX4mzdbqxADCvKM3S13zTjCZOJPPKsON4Wi0JNIL6C9157fu4Fibb+UYCczsuwwMeT4TldVydUZeSbvrqT/OuL0perBZGa0rM; 20:GfB8xkkUmHIIFxPRO8hV/RLlpqmmmB09+gQUh/dl11e3Imz9Th0o7a9He/Bv8J6mXdGPBNOBSFxXdH700dY/HWbLQXFdNDrSgn1m4rpoPVBJs4ZmGC6+2JV06PzAmJw5WqCaNnTioviZEosmXSYK3mTP03r254KQSZCSKnyxZzc8yV5VPHpuQrFwYRg9hNfIp26jPCzBzl5+ZJatA4WFU5X2SWLj7+9CgIIhgPM5oQWdew2NDagqPvoESY/coSWYc2Z65kD9c18SC3eRq4dqzGt4LiQktjh6cLFMyEJF6eh7mLWQHEJy7kYxfWXMYCaBxC7QEIgDMolSyCQtg4F7gyoMJ0c63dHXZvCjc1CwmYVz6jWsPnxNhuLrruE209laMoTrYMEvD0jJVbVL3cjouihj/MKvVYzKN/+apGNAGaabD47t72AtWc2u0bMo9qG3ytJSLzO29SgWS6zsAYZR3k8n9rGGjWOkbE0k8K9WxwRGLQ1Z+ceQ1wxKwe3kdEzmW+m3cuKso5P48/4MYRDSv063n7znQRy54KLBo4I+JtwgsOIEm+2IWa6urdRGkIi0+nJQR3blQ3TF8auo9sK3R/YdofNYBjAAOkHhwwknINI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123555025)(20161123562025)(20161123560025)(20161123564025)(6072148); SRVR:BLUPR0701MB1714; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 4:hcC/JtrDJG1nojsbKnfafZcoOzvz+sIeY5yJM5Wh5v+7n3mnnNqEqdjq8oNLko/OwUM4lHhMmf+vW2j/dsed9UXCmECQNQoxYwLU0bbIzIw3Pr77D7huTTCm557FwvPW/ZgotBwBluY7hoWXtZxFEMuZxdErAjB2l8r8OMn4+bxLw0D2XDJ8O+nJu9pYQnr5TTW/kjnpVpERfF6vdHILTsWE11wfopTopHN7LcwIGagCq9aCFCfszbGVr/rF/g8hgLbEBGnmq2ifaYOuVxpQro8mfYC5CI7k3y5EE8dyBsHPAzyAGddWjQJGKQBJNZXJv5gozLqbKHuGWC7DGkoJxD6GLnJLk4SFb8q33XqM0aVJVnMgtEBrhwm/ZMOjU5vlnjg8KiTy3Cgb4xR+LP/U25Ox05bRIGckA2F3JUD1M2SuF8ap7CxBEqSSuR/Y2wHpdnx+UXhZ0vB7waRq8yw3Ihy2iDrOF7xjTZ05sQ842gfSHuzH6x+1a323zQ1Mc8fAlN2anLNVaI1Gc1sZV3SikBL4RYPoVvwU3dbgluIt/dDZFss65+tqJYG8urDI8cVdjEkPYo11a8sN6RD3vI5gA67L0xRuxtEthrN9xbhr2FPyjTsjssV5Rfw6UU9orfFScP1PiMyoFmU4EB3LWSvuNw== X-Forefront-PRVS: 018577E36E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(39450400003)(189002)(199003)(2950100002)(53416004)(76506005)(92566002)(105586002)(69596002)(2351001)(42186005)(68736007)(106356001)(42882006)(6916009)(305945005)(2906002)(7736002)(50466002)(48376002)(36756003)(5660300001)(110136003)(4326007)(97736004)(107886002)(189998001)(50226002)(6666003)(6506006)(38730400001)(101416001)(54906002)(33646002)(5009440100003)(4001430100002)(6486002)(66066001)(5003940100001)(6116002)(3846002)(47776003)(25786008)(81166006)(6512007)(81156014)(76176999)(50986999)(8676002)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1714; H:localhost.caveonetworks.com; 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; BLUPR0701MB1714; 23:k7CEhMWdF5U0B8qPYrVrAD6HVy6ezDol0bOgJlJ?= mqUO3g/ob0HXS2QsRnSdbOfLh2wP8oFfte9TdiUnk99rC1Ffkn0zsgXpEu/KZWvfvTiOIRLRWKk3Cp8+qxeXbs2j/k+8raVInlf8kthpu1EyMgiB1DZ/poUBFhvyX8g3SzaZAhvLXZMgP+Wi+eh9sEb8PK0zLCgSdcui/8lC9xKeyGJ+/0aiao8Zg4TV3/lrS5FIRJhY9zrESV1WjbGUigRb04RQ1ZtZfUY5Fhnj94ShKqLCB5ezu2QGtypF5TggguJ5pmkE+1SqQO4r4AK/e9EDnH3fuw/sxqzpWAXVR2PoU7YktVHHBPH2WCSrdVCQ9Mor5zhAJZKMT2ZdnNUFieuoPop07GVE2WJWEESR4igkS2Nu+a7NjDJNUgrjSIyf6UUtSiD23vHHgkNPbyCzL4C1w+R+M2d/whODGp6BlvlA3tv0JutP7ST/sqUlkxuLDl2X3ECwTQud4YE4cvzG204Dv14Y1DtdWjiNuEcNeOKPiIdF6hedsHjMnPB4ibOXSBhDaaEfjdVwVI76lHMl9FIrocCXftM4Giem3wEezChFVoU7PszlDS9d+ET8v8//6x5CjBmg6fhm5ICd6GEELUWdki3C5xYWCAKq71C4UyowKffjL+Db7NTZZRLNJu8yzyisMIagJ6kYJ1mdqpbCrYgrD2Ubt92oGsajwHicqL42YV+++2/QH/oGkrrm334ur3AbwULLIY0pFvjcCUPG6Mi9lJhHezPpGdgLZ42vQse92WrDAW/hz5AMWpfZu7ja4Lyi8H9/1gfUN/dCtz9EP+1l+6TeIgV5Tspw9+qiCvuj6m1bvGLXMDIreW0S4hkZiTfeIFogOOdtQjMdUpa82BP4T+31q1YYVMkeYrbYjRTgDiZ3INSrkGX6/oKEE0fQ8tS3Y2/qfl1Yz+36wRSre/b+a9SXfp4MPsJzdDADq22IeBCqhm3XmQSEZ/2YBR+eTtf9uo65ZapnBeM+6RlEJCq8zW5sCtIXx6jf4abo1/gtW9d2BBxR7QzIlbc0gKbxRF4yQ134b/i/yHrhutxZQ1CWjZbibl8OgYw0c3X1MTvw4FIt9h9nrOF8elfIAGNZMIGaZQrwIXuT2Fh3xFC400BOc/atWNKXV886FUgf7A2OoP/bVI3tzYq+WuSdvWVCu11OiwilECvVSmxs4gu9pTV1GvErg7NWDdQyCS0Vrzben71qG8vGOTt2FlM+4jZKa2TEzp6h3n2G9t/KRNccPCOFe/UyWTw4Hc/b71YS5wHLHUvY9pJIwp5qS8+7Y6xHtYUQ= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 6:Akyr4YUNxVE0B4g9NS3IoFlStQ3CEZjfYxR/hbQy72fUYpGvo7r/4GcVHMn/LoiLjmRO1wuTHb6yhbcDB5jf/XHOTEtHfQ+9QCod4obmSpIgJKHZgEslLmbMKg0bhJGXoSubJDahFrekAnBZ5SUAOso5dE+XJnoVo5xwK3hMmZIUv8knLm+f4x5HZAWQIuan4m/TdlponGPgaIwsbXfWD7OYBKf/+UWAe8aySu14Kab6VtBp4SGvn4jBmmfCNKk60UgDFgZGuane/ch2ebvi8ltgUxXuCP9ALFceWCheXYaile13NYThxafI1cu4nZmkc/IcYcA7m8LCNwcCr+AHYEsnh5yqk++KriR8fGFh+nJOfLojs0r+oRQG6inTglYZahjC/mrQwVKjPL+HHxWnMUm8ZpxyeVc+4AdP9ihlJrg=; 5:M9OlCHfTMvRvR1Q9ao6ot2ZgtCenEEJawcTVXMSEyINf2rknwtPVgSQNBfo71r/DnctDP1p/anLJQX4ZGsVVbt1HGrleSAnUUHQPWgSZSyprOWvzyjuHLzTRwb+TYcmaTpG5YxSvsDYzCHAv5B9GpA==; 24:nOeVY1SUsoX0LEKHP5UE7csu8fngAKewCBOfP3x/gsxkOMbkEPaVUwQ4fNoFaVVCMXPoB+sKumcq6rjzCyXHAtNdnL7hfyBZoOo/je8mpVY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 7:2ZEpcncIrAltJK2LJ7/SqS7b/MptZ9h5Vx2GDIdyp+vCecOydONFWzls91zElKC5KmZkbQul2vJHc2Y86ohtPxNSexOZxRlbWZLkm460RqwpiPb4qO/o9pjRViuiT+PJWop8g1NCIb/V0fnNaH4fDzfh3IPfGuIBvaUuO1w5NG3rpieRMaW4mLhpiSLcsGC8OCLeH6bdmooXcelmUlTAWTR6UxuqWHi6lZlmacCNJfGg3w2bVvZFikLpZeI2N3nPKMEAJhhYSUaNKw4cOV9HMtc6vYvGyvHICZPDBymsRSegd/OxbTz0CB2+LZMM5RZY3CdT0RPWR/voX1BgSuJVB/S1Y96NxWDEtc+i+ysBMWKbXNuQLixBNzWt+k4VpAbkZTbTxNsSxX12udm9xMelzAmD1RMWJvVL7yY/yKak1xoC8AqMxL7KjPDUCxoh0twH9qEVkUvL0uesU0n9xqVoiQ== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2017 09:20:19.3150 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Subject: [dpdk-dev] [PATCH v3 23/29] net/i40e: 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: Helin Zhang CC: Jingjing Wu Signed-off-by: Santosh Shukla Signed-off-by: Satha Rao Signed-off-by: Jerin Jacob --- drivers/net/i40e/base/i40e_osdep.h | 10 +++++++--- drivers/net/i40e/i40e_rxtx.c | 6 +++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/net/i40e/base/i40e_osdep.h b/drivers/net/i40e/base/i40e_osdep.h index 38e7ba5..c57ecde 100644 --- a/drivers/net/i40e/base/i40e_osdep.h +++ b/drivers/net/i40e/base/i40e_osdep.h @@ -44,6 +44,7 @@ #include #include #include +#include #include "../i40e_logs.h" @@ -153,15 +154,18 @@ do { \ * I40E_PRTQF_FD_MSK */ -#define I40E_PCI_REG(reg) (*((volatile uint32_t *)(reg))) +#define I40E_PCI_REG(reg) rte_read32(reg) #define I40E_PCI_REG_ADDR(a, reg) \ ((volatile uint32_t *)((char *)(a)->hw_addr + (reg))) static inline uint32_t i40e_read_addr(volatile void *addr) { return rte_le_to_cpu_32(I40E_PCI_REG(addr)); } -#define I40E_PCI_REG_WRITE(reg, value) \ - do { I40E_PCI_REG((reg)) = rte_cpu_to_le_32(value); } while (0) + +#define I40E_PCI_REG_WRITE(reg, value) \ + rte_write32((rte_cpu_to_le_32(value)), reg) +#define I40E_PCI_REG_WRITE_RELAXED(reg, value) \ + rte_write32_relaxed((rte_cpu_to_le_32(value)), reg) #define I40E_WRITE_FLUSH(a) I40E_READ_REG(a, I40E_GLGEN_STAT) #define I40EVF_WRITE_FLUSH(a) I40E_READ_REG(a, I40E_VFGEN_RSTAT) diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index 1c9a6c8..f1e223a 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -594,7 +594,7 @@ i40e_rx_alloc_bufs(struct i40e_rx_queue *rxq) /* Update rx tail regsiter */ rte_wmb(); - I40E_PCI_REG_WRITE(rxq->qrx_tail, rxq->rx_free_trigger); + I40E_PCI_REG_WRITE_RELAXED(rxq->qrx_tail, rxq->rx_free_trigger); rxq->rx_free_trigger = (uint16_t)(rxq->rx_free_trigger + rxq->rx_free_thresh); @@ -1241,7 +1241,7 @@ i40e_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) (unsigned) txq->port_id, (unsigned) txq->queue_id, (unsigned) tx_id, (unsigned) nb_tx); - I40E_PCI_REG_WRITE(txq->qtx_tail, tx_id); + I40E_PCI_REG_WRITE_RELAXED(txq->qtx_tail, tx_id); txq->tx_tail = tx_id; return nb_tx; @@ -1393,7 +1393,7 @@ tx_xmit_pkts(struct i40e_tx_queue *txq, /* Update the tx tail register */ rte_wmb(); - I40E_PCI_REG_WRITE(txq->qtx_tail, txq->tx_tail); + I40E_PCI_REG_WRITE_RELAXED(txq->qtx_tail, txq->tx_tail); return nb_pkts; }