From patchwork Thu Oct 5 23:00:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongseok Koh X-Patchwork-Id: 29783 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 225371B1BA; Fri, 6 Oct 2017 01:00:55 +0200 (CEST) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0053.outbound.protection.outlook.com [104.47.1.53]) by dpdk.org (Postfix) with ESMTP id 0A7C51B19E for ; Fri, 6 Oct 2017 01:00:52 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ZY6/E7rrdfzfh+k1T4Rmf5WfhvltBctILeFE8HVOauw=; b=SptVmu8+dlGv87BHtq6YjJuE7aVhJzDcNYlbFWTMlOXIQ2YBeFHC+PbAQSfJrdNu7DyOc1gqMz6hM3vZOPFuKlJ8r2mgK6+WamjZcoFNJTWV9/crQRTnK5vSPxjwi/ZcufdFsGOOQQiBtT+A703ebdHB50gdGi0BNszXrPQr9FM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; Received: from mellanox.com (209.116.155.178) by HE1PR0501MB2041.eurprd05.prod.outlook.com (2603:10a6:3:35::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Thu, 5 Oct 2017 23:00:50 +0000 From: Yongseok Koh To: adrien.mazarguil@6wind.com, nelio.laranjeiro@6wind.com Cc: dev@dpdk.org, Yongseok Koh Date: Thu, 5 Oct 2017 16:00:26 -0700 Message-Id: <20171005230032.7548-2-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171005230032.7548-1-yskoh@mellanox.com> References: <20171005230032.7548-1-yskoh@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [209.116.155.178] X-ClientProxiedBy: DM5PR2001CA0013.namprd20.prod.outlook.com (2603:10b6:4:16::23) To HE1PR0501MB2041.eurprd05.prod.outlook.com (2603:10a6:3:35::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 412590ba-6f62-44d4-5bb4-08d50c44ed10 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(48565401081)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:HE1PR0501MB2041; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 3:XGbLkMrJar9ae6+kd1z7THeGJKnqHlSW4cKidSLcXS7zXtLqQZYUcJ9UyjLlUEKpdKCt/CoCCfS5nfyOWnrVoCbvq5NfaMvqFsUfsXFYjjcMGbctoZLMYPwE/aMzONvN6YrJ71vJboYXVAM2dJrAuLFboJZ66Gi0S1DU4rtOVmUzxRxD4NXgWgpqrdumaW2owrjsSWRGLKkbZ4twRQPbxFmCtx40EQGE77MInajJPc/YOkICwp8BtAuaXKsT/8gf; 25:cMb0kAkOcww4ViA1GrFBTK1u+aIHmZDuO5VLKceDG+A3A0qkskjDCohTTgb8sNVcebzypRprUd3TKFABKRI5cZ0rrzdhcRY3tAaiiI2k21j3QQ8nXyrOk5R/bs5FhuCakYmaBrXevR19ql/iXUaWMCja1QlMKYvqUvJp5VgVzA9QQ6PJO+qlyoyB3D+PU/u3nswRcHWAgaszI6qA/UMDhDX9mj7eyl6NBoNLP3gxpOk6vI6eOYlmec2D/hZ5VgEyy6iQf1G+dGePxAxzxjrsCm1Wis5XDiTWCcUtC5aEoDpB8KJI3xCoNM15wa65OWtOt/88tZtV0McoKPNBiaU/PA==; 31:PG02FtigPgpj9Sdd7xOp+JaAIEW5hQUAJGNq5iz/2yQsvlIfDa75Qp2IRwZPkL4UfxNFyDm9SAqLoFzN6IrFo4AF3OmS9Ma4s8JH0jvmfexR7QOOzhSnqiGpKYQBnMjBCBAmEssZIkgqdBNGUWix9i2EmDxgYwIG7oRA+hn39EEVWwhcwlxZaezhKX26xHcmWjzzibOMGbtSIE006SIEOIVAJI4DK2Nvh1tigjAil7Q= X-MS-TrafficTypeDiagnostic: HE1PR0501MB2041: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 20:PHNoB1sA53cLJ1HT/hcebCGb39YvgR+PEIQz8lupoIplwW7Rh0PIxOQeqv7gQieFB6dmQCoUjKYOYac0q9c/v7oodfqrEcHDvlSpNxAJ27fT+kLr3yj3g1Pv1rCq6XpXiaXQuUgRJ5lLGt+yMn8VcFU7QRFoCGb3KZFCsZuAVuCClWLPPHiFf8Tg5UGlWibTGB56Uy9DAJUAYWXrNoBF04x3IMi18wudsXbcnK1nrj8FApRtvHkGqB3xcmQejS/GQpZLhkLW8zOQyXIvrVovfEyz/dd19SJ93wPQjZoExtfu9Fr5syx41IWu4ZcrSjFFUkZ7r+jQsKZ1KJpywKNdb1Ik/VO5Ou+um4mWJnnpjEekVGArthSeiFuEhqNg3mVOE+jTvIQDF9hxaqFT5p6Q7bakl2v1vq3v5SCtnB8HAOhtWFnG4kwtol7zlbxw4XWxCXpw9qABwSEPK8hHgK1F3DBVgdEt1v4waThPX/hJrpU098vngW7KGTqFdV2JeIcd; 4:y8PD2IgTA9dO6G7KvFCOA0jD8nHCPB6G5NOc4bXmYFP1NUTufATlTtFBZbjqynzWynzKlySFCRlYfLqoGLuEiMPCD2FOwLaRYovs4NRO8MC+3Nx55QSoIPGA43VFW6trz45MV4prS3ajrUaVYCZc/hUJ+HMOErDN3Wp+OOkIbNUe6G7571oKWUvfqf8lsGE/8Z8ByQ1FIjzc8iam4GX1eWGKRQVRIz8m+0x1awnze0LygYRj1kK4jNCNlFCojbTz X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(6055026)(6041248)(20161123562025)(20161123564025)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:HE1PR0501MB2041; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:HE1PR0501MB2041; X-Forefront-PRVS: 04519BA941 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(189002)(199003)(8676002)(50466002)(2950100002)(81166006)(66066001)(81156014)(7736002)(478600001)(47776003)(305945005)(189998001)(16526018)(76176999)(97736004)(50986999)(86362001)(2906002)(101416001)(16586007)(33646002)(5003940100001)(6666003)(1076002)(105586002)(69596002)(316002)(6116002)(3846002)(50226002)(55016002)(25786009)(53936002)(48376002)(36756003)(5660300001)(106356001)(21086003)(4326008)(68736007)(8936002)(107886003); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0501MB2041; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0501MB2041; 23:7EjkIowXu5RRHe32uZh9idClnYlym51zHSHVMqL?= 3YeFM8XO4Xc3zpZuSZu0QUYCZOzsqwl2dxYPr4PfkiSxB5TYP/usFix3p6c2KKKS9VDD08gIIm5cz+vKTOW5mO8xT6qt/v/StWR2prihN77uKW6Rh2hjio6rrQN9vZGVpqdiEDOZ5m0m4ED3TtC3nKVhgC3LWfy66okJ4JGX+J642il/2pWBk58ojxFRyx3IUyf60S3fhJI9KXIuY0dF1wYODvxi6x+yx8+xc1u5eNd0yntR7owUyY2kv2p2jfBfevK3a+tL5ldz05jHny3spMIatdIBnxtSyb3gDGHRMfWEsHMcD+FVyN5ZTDCFKP4sff/1luo7Ioj0XNOeog6UWUHuGjUy+n6N8vZrmJ/+MKjHYrVjmszV1/gI427UWoU9LRad+JKX0RXQ+k9030hVADwY8+uSSy+hxDagm5ohqhHj+ZUqDB3/hjngXf2e5PenU+TUNVYMhuFCPQz7AOUn2fP1EUQH3MJDlp6+uqBMbtcYWgim2nWq34i4c3H0nnZpmZKC2NzXGkpcafupOqhy6v6Nl1ONQ0jqaKSpcib4Yn/yVUKeuV/zZuF9j7Pq0YeKL/+w2bLxBVpzG9PuTRXg2GSmVz/NpxJzfadBXaFiEVZHGE+vBaXQFF/TjL0TlSOQcrBpH2v2KmwE5OdCXloeQwbQ7+NyrHDE7HJDtMoVTC+cdImBsB5fzAY+faGDi3snGN74QJsrUfKEZIVtZxVzaGGH58ZJoixCDXYVtlMcxU6f6aaeT7h4mO6RzvQ/yoV68S/gWfHvv5351N241z/8FUE3hXdI1IZ/OQCFJg7NlSW4Ht/0mli9dGWN5FwRm7Mwdma5LIg2bTsNsgLE092RKAFEO3uh4jWIGPWlgstx6LCS5ccttJcCv2SLp49Gi7uEVI6hirn9oWJkB8VgThjzNprQkGgJf0YhMAcfLURobqbCLyMdCXszyZSq++wqJ/gO6gObuSjYB3IFZaYZPPCzf2oEzaGpFhOfBBTjfIeHs41T6p1cMPSKMoDhPj63cL50qOCHekUI8S0PPmKJ/2V3OPN7816KwgrXAcs4zMSdKDgOo/Q== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2041; 6:6VjooC1qjVF1GVNNquMm0A0jRRqQ9usgSPS1YNzBvRVOTmFTjqeiNxFkCwxmGNY4o0MEaHDVbaygQ9v5NQUId/kujOTNp5IedB+0jpUWJq15hWO2lhS2zmfntrsUnSG8RwWPBIvvGTvdyPyQmQYVu3ory+GA040dAlgm+vIZtA+VPZQ0cVDWCr5o7xUhqrUQb/Bm2+XEbWqXEMiEDBwMChAk8Jdesh6xZ6I170Xu/kiD8uCBJsTZJPlcQcXT9oIU1xfQGfkSMiq8h+ZsveGrJKyyJX/1Qd2zvHpbiod9aYDaoLXgfwua4BJhrpaBbBElRVOzgIfuIcf5t913kQJtcA==; 5:AOebsu+A+MRy+AabeFIwamzYv3aYYAMJlgnFpjvUfr4oWt01ewqWxhh7hduJMTvtia4w9PTqQEI2zlcxd+Qsulxfq/YaQVgotIOsWyWjG0/zEP7WZmJqIt00vP7NY0Ga8oY8Lpht1s/XYYQ8KpZ8jQ==; 24:Dk22GtvamsOROur6vKZWSYxdfBuYDdkb+WwZdYbeyHoDTpcrOnAYqEzmMCsb+jmiFzAAxpHvlrUIHitJcdiu+29aDQ/ugEgOin1RZqEpxbM=; 7:vxhwwNRYpC3ymz0/mtHxJ6XIiv/SBbnjmL2780Ui5qS1WZ3J4iMjV66651+iMF4Qsqm4Jn5EAxU9uNYlEYhSEVuUMgL7IFr+HmTlBO1J4xKSe+FAgOQ9erf4A5C8vgQevvYWGOMjOYF2GNIB59cpGg6+bVePulOtAWWYCHqSg0jF79pvNq1I6XrLzp+AUb6TyQq90v7twM1IWxwiFOALndJZMrFMTdycUsyYwtRqo7Y= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Oct 2017 23:00:50.6124 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2041 Subject: [dpdk-dev] [PATCH v1 1/7] net/mlx5: cleanup memory barriers 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" Updating a consumer index to HW doesn't require a memory barrier in case that there's no updated data to be posted to HW, but a compiler barrier is sufficient. rte_wmb() is replaced with rte_io_wmb() when it makes changes visible to HW, not other core. Signed-off-by: Yongseok Koh Acked-by: Shahaf Shuler Acked-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_rxtx.c | 4 ++-- drivers/net/mlx5/mlx5_rxtx.h | 2 +- drivers/net/mlx5/mlx5_rxtx_vec_sse.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c index 9389383f6..275cd6a4b 100644 --- a/drivers/net/mlx5/mlx5_rxtx.c +++ b/drivers/net/mlx5/mlx5_rxtx.c @@ -1928,9 +1928,9 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n) return 0; /* Update the consumer index. */ rxq->rq_ci = rq_ci >> sges_n; - rte_wmb(); + rte_io_wmb(); *rxq->cq_db = rte_cpu_to_be_32(rxq->cq_ci); - rte_wmb(); + rte_io_wmb(); *rxq->rq_db = rte_cpu_to_be_32(rxq->rq_ci); #ifdef MLX5_PMD_SOFT_COUNTERS /* Increment packets counter. */ diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h index 0bb71aeb0..8470a55ba 100644 --- a/drivers/net/mlx5/mlx5_rxtx.h +++ b/drivers/net/mlx5/mlx5_rxtx.h @@ -504,7 +504,7 @@ mlx5_tx_complete(struct mlx5_txq_data *txq) txq->cq_ci = cq_ci; txq->elts_tail = elts_tail; /* Update the consumer index. */ - rte_wmb(); + rte_compiler_barrier(); *txq->cq_db = rte_cpu_to_be_32(cq_ci); } diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_sse.c b/drivers/net/mlx5/mlx5_rxtx_vec_sse.c index 6d337ecd3..e8f0626a6 100644 --- a/drivers/net/mlx5/mlx5_rxtx_vec_sse.c +++ b/drivers/net/mlx5/mlx5_rxtx_vec_sse.c @@ -567,7 +567,7 @@ rxq_replenish_bulk_mbuf(struct mlx5_rxq_data *rxq, uint16_t n) wq[i].addr = rte_cpu_to_be_64((uintptr_t)elts[i]->buf_addr + RTE_PKTMBUF_HEADROOM); rxq->rq_ci += n; - rte_wmb(); + rte_io_wmb(); *rxq->rq_db = rte_cpu_to_be_32(rxq->rq_ci); } @@ -1259,7 +1259,7 @@ rxq_burst_v(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts, uint16_t pkts_n) rcvd_pkt += n; } } - rte_wmb(); + rte_compiler_barrier(); *rxq->cq_db = rte_cpu_to_be_32(rxq->cq_ci); return rcvd_pkt; }