From patchwork Wed Jan 18 01:21:36 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 19680 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 01B04FA59; Wed, 18 Jan 2017 02:24:01 +0100 (CET) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0086.outbound.protection.outlook.com [104.47.42.86]) by dpdk.org (Postfix) with ESMTP id DBA262C57 for ; Wed, 18 Jan 2017 02:23:44 +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=ei/Vuvy0v3LKo6z3DOLzZlN2jdlZUD2d07lbpjlbmg9PERPajCcTpoVAelPGDUKewmXad1m045mAp5EIn7ONz3ZLlOMz458hG2QDOnHpoWHkxocxVebplf/DBLmmAIBC0MfgJjZdnGSh5gcopL06dKd/bThFOoNr5alWg5rReYs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from jerin.caveonetworks.com (111.93.218.67) by BY1PR0701MB1721.namprd07.prod.outlook.com (10.162.111.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12; Wed, 18 Jan 2017 01:23:40 +0000 From: Jerin Jacob To: CC: , , , , , , Helin Zhang , Jingjing Wu , Satha Rao , Jerin Jacob Date: Wed, 18 Jan 2017 06:51:36 +0530 Message-ID: <1484702502-25451-24-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1484702502-25451-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1484637244-7548-1-git-send-email-jerin.jacob@caviumnetworks.com> <1484702502-25451-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MA1PR01CA0115.INDPRD01.PROD.OUTLOOK.COM (10.174.56.159) To BY1PR0701MB1721.namprd07.prod.outlook.com (10.162.111.140) X-MS-Office365-Filtering-Correlation-Id: fc1f47db-edff-45d9-9cb1-08d43f40a477 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BY1PR0701MB1721; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 3:SaTUk2usxWlBKnoi8SDozkkhnrLTsjD34rlp0x//vFrnzhIh5W/DCVg5QUqJltNN/N2I4aVjtoJBkBeXDj/RFb6DP+HUS6x1g6mqH5Ofnbc5m0cdPP2hJmBCZQXmaXcp/3JN2zlRZwt1ktvSWMOxvjpGMvuW4117H6ld9pzQ9IAg4hpmTaYm5TRIaHSq7SQ/HjFra/zQOFSrnnd6282aYwRr2SAxxGLDKreG0HcolgzMkorUDRFMXeRy+0vyY48gvFc3vzLQefK4pq9ROX5w9Q==; 25:dbA+nqUVh5FkMFG0/V6z9gzfYDqjHy+CiXEsADXILSiV2Xd4wFmvjXX3AyfFoMuRqI4vk0XwottPncivQNHNxaFkFYGft8gv9jyipGQN0edg93NpYts6BfwPtecTIEsPtWRTvn5PLXfqF45DV0V82dbheX9gVp66jmcEYn5++pDxvCHZk+tKnC0l9+/c/CFkGmQwBISdNrkG0mp6n1vEMSG0jPtaupHOnpjXjMvd+6U4P+hHMi5bLBbund0BcxS0H3ZYCNcy2WiWRqpQFlH5drB9hzS88/IA2CLsYjAkVAbHl83rbLVErVZZJ94s05KIbvJvHdWJy9y50h2WMJq34AaKHdzm07V4vwOdJLgJtIQVDZMFNVDejZZz4TuGH/PgU2ZAjYQH1okBqjqgdT9newkkVbikCOTWy3eK8C7JCMe19PFQC3RkMJtv+5wkMGI+Pj57pIgdTEz5pqnnu/a0qQ== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 31:X2MpYk8gViYk1OK9UrfYYOU/vA/vP+eJIG7WqkhL4M0hjkxCoXAxxrj+aIoaxyyJgLLZR7HRCtE+/JN2XedIKKtFWpEhOdT3bBv1tWJNkCaBcGP3rg4mCIZteoSrszgOEpJobeecGaVA0675YPHLW19GNPyB1HEy3ZeiSWiPHSdYdK/RNZIAx86P3zqqeqSEQ7q3Tdya0ujZmoB5V4UUeLgIjNS4rPFb67pl7mwD3fWOHBZbN1wVyb5vqLAO87VVyvYI+xQaTjjfdUZvjJ5d9g==; 20:+lBWTMVpfduaUsJYjnZx7HqZLZIfpVz1lLCvSALdmJyKmJjyBZ9Xf5YEaJ2J4cmfd8xaErM6QKDazcJJhCppokvwkOzDZmn279a7xqJTySt8mZkRZv3L+0autfpjlH6j72UnY0dKY1ptgXcYqEadVqLwO7FtyCa6SelOTF4fXPQTxIjlwQDcKAoe4eKaUw4/2ItOWmNE7Hu0QMCXWjl7MWqDo4LcGRtT4p8wBlmL1HVEr60J48X4XrQNMTucR3aMdRPaxNQc8Qj7ugaSQDuBp7EsavWZrilv/25Wr80Umm8Kxeyx+MCnNHEF8F+4Q+dDR4/l2MX1kwppDkMUsd7ZUhTuQ/c9u38zBBx/Hop0sgr0+1Q2Qp57Hru8b02WzYhNIIWCMqH0xpHQJAvCGWEHI8RVQEM3MTQ5rDVIaL5g1tEeOqpMlbkEbLe2Km5dFRpyYXgekybnsfdPSr3dqjEJZ5q79qCTwVvhG8BbPdNrtRUZbyssguGzxiswZOFrsgIu6yfba6QgQ694IfkjYPMyvLzTe0rRTR1l4oGGR3ECr40SZvRLqJZG41gPpREYtTn7hDaQ/mHMrnc1cmvrq+mqyrLi8WwDhXYbxdwz4WIKuKU= 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)(3002001)(10201501046)(6041248)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(6072148); SRVR:BY1PR0701MB1721; BCL:0; PCL:0; RULEID:; SRVR:BY1PR0701MB1721; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 4:LScoHiiP1/yw3dtmiopOKQizgQ+tFIvLPYsUGjbqFRuMhDpGiA6UutlfrmIrML7syXTrEfHRI11a71c+smFrkZp1POkfJyPQPOqUwJvFviGlHV8exF9vPNFn8PmDbLH12iOYNDxHVvO+DKW3DMTIWBQR6NGtfPp4dbA0ejy7sh+30HfyJH+hSmaunQuOROm3uqgaKMYYJ23Bcr64kEMyIZrT6kKK5VQIY1Dn1MG8Jm5oGJmbe4tkZf29qZ4e3+3npMv7m+W740+ofM2WUNxq+DT6RGF56HtUi1GhNVGGkHjHM1msgnmlOSL52uLirmli0Xk83mteSmUZOFM6boIXRGKUdUVd/slfCn+Ywtv1AlyA+ZQnuLCNv/JwM3DddZUHi9DxamK8yye1qnWqilUCrJsI21Z+H/NMq5ZLNeWtin09T1n3GqMgjOj/Q1qS2Shqk0xu8xzV4srBpVMzn6KzvaRAIZFjb2fcXXNWkc+SdnEcSSBJUR3f3UMEASj/77ZJIYr7v1sRNjdUolLfcBRgJw0FlAON83NLuYf93WPHb7E2XOJ2aqXssOnTWqgMAiFIH3hyhk/rKa44FcRKWVHkVa17b7TayIAO0xsBnPmmGxmB2p+ZIKUqRBh4mWMN6njae5wFb4WsIOMezDWEqx/53Q== X-Forefront-PRVS: 01917B1794 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(199003)(189002)(4326007)(6506006)(50986999)(97736004)(47776003)(107886002)(25786008)(189998001)(54906002)(66066001)(92566002)(101416001)(38730400001)(81156014)(81166006)(6486002)(2906002)(42186005)(53936002)(50226002)(8676002)(2351001)(68736007)(305945005)(53416004)(3846002)(50466002)(6666003)(105586002)(33646002)(6116002)(4001430100002)(5660300001)(6512007)(48376002)(69596002)(76176999)(42882006)(5003940100001)(5009440100003)(36756003)(7736002)(110136003)(6916009)(106356001)(2950100002)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1721; H:jerin.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; BY1PR0701MB1721; 23:89N7K05d0wrRv5UH/xC7gxVuV3ul6KCTaIM4cIE?= JsVENhNJPOYeCEX0yogZVEriGCyK/p5kWOPD9Q517fwBx0YCYY23SxCeZK9p3XcX66maUSe4l83rq1WFHmKGnsiDpJ6ImUm58nSBpUSyYIK/xCGlsbKu0rwzzcsEr97AsCj9Xdv4TLaxDo1eepVZEciNpP/n6vjaNkn+ZQJ0Ra6WaxK7KrxAc5q5wbep4r4/+oQrmi6pJP6fVBQxxrfbtdQ0BFlo823/8Kuvmh7J+cAxtmj5jgY+rMIbKnJ6stSkeB9Ec3MN0gVE1dhykL4u/FDW3s4/iZqDrxnM6qx1eP4Tni99wO+BkfXV86lqh+y+qWJyM6fSPtzfraNEpTLWACembQ39dAiOrYuTiPznGvzUNo5dFXMG5PGj1/xP68nh9YwTRGR6Xul6+hA4C/vv3HcwSR18+oXzQ3uaN69ek+Uf5GyFZYBvnXf753f6e5V8Ecx6djn7m5itoFWViEgmGgJ4mqhAOke9lWyf9sEvWuZQDNXPUBw0WSZL2RkOVTGCeVR58uec8hnIa8NAhowcyg6UuuTgbwGcyWTWwfzu9ckLXc89AHWRN4LoyJnjOyL2DjfUDFJkmBwK+FNlfG7SsbU8EDEdAfYWPxpPCjZN6xv/YvPM3PGyg8bVZvFX9kT6giRHOGNoEH1fTBbaQNceZ8Zv276Pq0jd5dpphAGA7uJtWhaMHLdzkwVwdlX3UBacliqFVWK+R41FU+rq4K8rY/uEAQ8pyqOXHHCbcKjJa+d48x8a8q4kzjZWhGmHSA3apdfK4OfzAng4t27A+BleDUZdO/x6WNb73vSRZFBtu/MDHLGymiZj6tFevxENCRdwL0c3bI5jCWkPqC8XAEfO4JWYuqHiZOahjz13+VpVuL3eAGI3lrPXmOfE2Za7UD+dsP5n9IT8DIzpyZemhGRpLJi9tfM/fbZl0UYrYq+7l+3k4tYo8gfkV57ZHksjejaYwpfWZNno3NOkCrlOO5gyeFj3dBKlv1HqMjPdWew7iLv4FqoHeQu36m+N+P/HgxE46dHXNJyRqjdTZK0xp3D9MGSiLqTEWj66U1k/H85z4vTFFCcJ+/KJsDKf2YTSdB9M7vmqEUOn+Re5DOM0YmhnDcjABM39NuGNaEDe/oT9974krlFpm67Md/8U6d54nZ3+7nqv+D+caiBglJtHNQHR+R1fzOU4ZjiA3ts9R+ClAwnFRtuxNLTlFBc47MgIx64pYTF7jjzGMrW/3nnANhbDpLdf6+Cm3UXu8PVM//wmtHInSfw== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 6:YsRApNUTG6lOXz9KHB6BYQDo6EB0IjSnCWlsOZwUFVMqWNItrcIKTOLlZYrX7HaAN+y1/9dNcwthlRiaGl6a1Mr1inxkn8LJDxh6IWyyt+buHijuUwKNOCgIYjS1hgN8DQ/docOHsvRBtA4OS5eome6pj3juHwK99uTQ6BQ3L1cpl3SNXT+EIrum7q6YwZGkCte2Tl6970pWV5moKw1NBM1DJxJ9tpJokaP/vQluAcfect1QIU+TS95kn07JHQ6WrqLBTETM4O+7+9iPSlXlA3Diw5jQU3Azm4BfFS4Ad5FpMg8AaBeMqAA8HgcuTX3cjniyWh5z086mCLPxqXI4zSQBb8cZSTPquu1REbLKlD/lyf1PZVu/4JZjp/hg1lDX6FQGNEXV5yRHyMDY62ymxLwyVPMAEXP4wNL8kzEm/nE=; 5:IyUmVo5L5Z5CrdKfVOiQMS8Ld+e217TGojlS460DRU5GPfgZ/gKum+IJ8DIay+VpiCuI0GyZUOhKTVpKb6rvmJPksGhX/TkSKAPUmzahrqZC0RfKRxviY9sE72kl72RnYv7godkBwOp5GP38Kxe+E0LQGW8njSfrMPTHOCzqx/k=; 24:Src7OaFHn2ZIRDadT+aQJsx90ot8HfzVEhHoNpfDqali4uSBW2XYjxVB4gIqnRWyJukIj03NuqI30h0ktFX9/77vuX7hTAguaXVVhxQmK2k= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 7:jeFGN/9aJt3GVjyw+oE8ciWOMWLa7QD8x7fh9jXAAFcnUEQXuPTiUz2HnbJfFhXGDbQwE9JfgiUAhJ+urdmMflUy8f4UJJ4v1xy68sAIndpBodwefJRxQbU6nmwuSe/j5voUIP0cWY063Sa3nNOeS4kO0L0ZBF6oRg+hn92PAS907BJj7ScNVVe8r72tzEQkCtceD7MikP3cnBp5f3t3PZMrbrv4d4ZcdnzgzWwVQSCdEZDuFPP23kYUTnb2svsrhQak4KKxsKyPLGhNhBoSYpqaHiegB/F+dogk2djbwufI3y0ATnNrPEDhAVHnbtMswgXoxgDWKFsxCDALGw53wyRcEL7x//klZ+t+5S0e3SiQdjc2VmNw9qn5LwCUkBgvZMv9ZV90tbKLuajGLoXADWZLcc6PEZYD8TGm7MoWxm70Qufhg6alv/ItpYpMV64iW6rIKuC2fiSwMBmrJISDZA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2017 01:23:40.0282 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1721 Subject: [dpdk-dev] [PATCH v5 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; }