From patchwork Wed Dec 6 17:57:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matan Azrad X-Patchwork-Id: 31956 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 D25B97D04; Wed, 6 Dec 2017 18:58:13 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0053.outbound.protection.outlook.com [104.47.0.53]) by dpdk.org (Postfix) with ESMTP id 98534293B for ; Wed, 6 Dec 2017 18:58:10 +0100 (CET) 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=wcKX3CjZHPeRx5Eci9F2YmRRhBPHK4LLHHQ9EiCZrR4=; b=RoNp0ceOfhWGKZGSBE+GqrurGYiuQk4wa3+msRFWp7ZuWk2GqYl0Hs56QEfd6yiqATq3NrvAuKOjXATWLuQrpml5dE+rm925hjFt3Bqs9nNli5qsScP5Gr4RC+lvDcX7MbjOvwKdtWLrNIsEG9/G75IBOndIQg5w28d8oFEx/nY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM0PR0502MB3650.eurprd05.prod.outlook.com (2603:10a6:208:1d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.282.5; Wed, 6 Dec 2017 17:58:09 +0000 From: Matan Azrad To: Adrien Mazarguil Cc: dev@dpdk.org Date: Wed, 6 Dec 2017 17:57:50 +0000 Message-Id: <1512583076-5592-3-git-send-email-matan@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1512583076-5592-1-git-send-email-matan@mellanox.com> References: <1512571693-15338-1-git-send-email-matan@mellanox.com> <1512583076-5592-1-git-send-email-matan@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: AM5PR0701CA0023.eurprd07.prod.outlook.com (2603:10a6:203:51::33) To AM0PR0502MB3650.eurprd05.prod.outlook.com (2603:10a6:208:1d::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: af914bc4-3b38-435b-b65b-08d53cd2e946 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603286); SRVR:AM0PR0502MB3650; X-Microsoft-Exchange-Diagnostics: 1; AM0PR0502MB3650; 3:KSCjeeKgDUse8mg1gJybb2DUqVf75EUK4CjNvXw4MWMbCxmiNPNYU6UcFgmiUylK/aRTdWkcdJr7gCrkD0niWIIACsiaWLwoDP25cNGe+jUq6O1qE6gtJQNznQbE+gTkOW5cNgYGW5uMSA5DGsAST6bFKfNkMypvDY2R/XGGQ/JYy73/lA5HxFQJ0ZMbQWnxByC/UQ344mxK6ao6sMknzEPsQyyGPZQkAWggSeM+nFUfOCfZqdJO6Jc7suSsLGkn; 25:1VtCHHHrvYvfGJgY2UgtmUpMkmcI3UNxp3E6H86UZ0qbsC06jPX99RIcIwQ0RXwjD4/Lva4A+a5AGsZ5y+x7yeU1qIjBTgyyD1qEyjDaJaf/7jhz83nmxMzOQRzpWoowpXgkC4C+kw2AOw2bjxA8j+sdCHbSbAk+c2LkFw/A1e6V5qp21TfOObtIGnqrwEnMD8aesaRy2BYtKhbwDtBf+bMLvYbADi1MFLPXrPn/Ew393pPM/KCUUt1GGlcp9HqUYiFsePZOOuM+44pj1ONf4vWb3DAqZXdOt7skFbAXn7jCuclLezdcmoZCpZm+9h4Q8fiwSFR8OVaIZG75/QXRRg==; 31:buI4kECIHDdFRG8TmCf4bvmK8GMcEdGdI4cW6unU+TTaBzryD342emmHxfuRii3HqVaB5enVG8FJrDGCjh4CuQS0DQvz/P90LiMjBBH+T24fAzGIOp3yCTg8gLiZqwWAP+1Rm12pIEEjjoLgMY3fkpvvmIfsEPuMshZktwT1MenTQ+xCtpHZj8U/oASMn3a2d9W7/uywHg3ldga5j/nHX49hUpO6YP4whCOjbHjo2vQ= X-MS-TrafficTypeDiagnostic: AM0PR0502MB3650: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; AM0PR0502MB3650; 20:SRbWNlLFLu+YaB++LsbO9tue/AO8qA2CFgsRS/Ezz+foTORUi87hWXrPuzTat/MxlH5sOUn4pvGq3jLngfddnyc1ZWgnJj3CKcO5VMFpJ+Hl0hvPyeMgWiVE2zJyJQ6Y7A7AwMFNo814b7j/60uMoFSodASnoXtT4oBKP3nLy2pGmvgKcQqauai/oFMzNwnKMQE/xc/7slHT/zvyEkuq2A0ZvAkn1OoojN0Cu65yl0Rdwg4yA9jxwzfq+eW/AZBVi+6acCPP6GHpdumRyPfNJFNZngAh48gb1/aKhIUHUxdmp4lHYpXWnP80R2lXAz+e/GHKDZhO/L4YebQb0mwH+gTSjTQTT6dHLqFJMWmUuPPn6OwEu3k3hAb4P8TAQazJBU83ZmDRdrQU3AG6mDV+2HCfGK6pG/Jq8wK1xnfIELyY7Ptc67oDWcuMkXW4qmKMtiQoNvrE4V5zLZAussdmm6BtDgeFsEAJret6+KaUJTnadaAsCSAcw8IeoGK9DEDD; 4:YIPrjwBVe6yBb1rdYIVBPrne6tyaDMM3rceh26mEQ75uZxpqk74lDQbKT8YMKbk1DBy3y86RPAmgJBI0672r+AzaGZqldt1SV42LBqc980o9Cz83zTnVIgBlzcOPwJ1EPdzYYqZn9wq0GVo6p9sKt95dkiGUy7626HHuyNBFJUAQ4FcJ347ZsPTUJB1Ic9J0BfB4UQXR7YYBTvqfUL2nkGzEKl5eB/xe0CTkCy6GYs097ulcSgeGlIbLFQIJahESmu+9Vc7QPLXXkBI04+Jstg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(3231022)(10201501046)(6055026)(6041248)(20161123562025)(20161123555025)(20161123560025)(201703131423075)(201703011903075)(201702281528075)(201703061421075)(20161123564025)(20161123558100)(6072148)(201708071742011); SRVR:AM0PR0502MB3650; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM0PR0502MB3650; X-Forefront-PRVS: 05134F8B4F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7966004)(366004)(39860400002)(376002)(346002)(199004)(189003)(25786009)(4720700003)(4326008)(2906002)(51416003)(5660300001)(106356001)(76176011)(8936002)(53936002)(7696005)(105586002)(16526018)(68736007)(33646002)(55016002)(3846002)(101416001)(6116002)(86362001)(305945005)(21086003)(48376002)(66066001)(6666003)(81156014)(47776003)(316002)(8676002)(508600001)(7736002)(97736004)(81166006)(69596002)(36756003)(50226002)(52116002)(6916009)(2950100002)(33026002)(16586007)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3650; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; AM0PR0502MB3650; 23:CPKd1PCaYUPJ26ssasdyHynyCTFc6fq0r5ffIyT?= eP39dlaX97TbsGSYSNpeZScUjkerjxQTzie4WGyeBgiW07RhpJRIx/lyqa3E3wMERVEBIx7qCDLCclMpIXWzYzHGqKtUYLnPubB2c3Rlk8eWlwN/O8v/RRA4dZDZLSpRk7VDlq7b4kxzC9nfPcJNUGEx5ytoEFg3GmmBaBq1MjPwFo2PWOL8Na7fVNLzjmbWoHIdwhOxDw+95E8QORxjuPCOuGnTCIo+lzz4f8BZtA87Be+4eTaNapzRZR/hTF7n3mY5sFa+sLs/rpB1O5ibHyqLHfyMXV9HNfuSYPwQyfKJEko4r2BTYKJkVFn4zz5rC/P7ptoeQgflpuohur3WqLQn1fWjEi0W4dMzskJZJNGibP1O1kW5EM0uoYyq0kG98NGb3K9d0OvEAIGgeC3hTQs3YQWonyWX2ccxj1rGXA6RKVnwsceU8uDD8EKnifQLdEPtrWoqceH5PfDRJ1Z0kECTU2LFTKaQEVIxcRPJOgerQFohWuWQVoKocsVf1xYy9+uCNtLiecgHo+K8o8tbrup49DKl3zDHtWfPHkfYWhCx4HGSYRvTdt/iv6Oxp7rARXcsoGHv7yOVXUztlqA3+kiHD70UFqEWZTZdievHOR6udLB8Vc3M4UWGOFvplutMmhpym1iRGTidUq+n5yej6JmB09ClcRRFWZTOUG+Ia0DPsu7jKg3YrTZQ56XrqFlbsNCCtyLu7Sh7cx4G1a09ViA5Tk6ohaydLh+3vtZvVgsZ2d8jus1VpzQN83nWBb4wFfs3nFo/hhiN6MA50oavSW4+Y2LsLGeObsxk5XoYqqBAMw9ftXVCSk2E6IO2sLjCAe1yQGQlH+e2ixRP+k8FcyeRi/D6c2YY6h8sv/ELE+QeELrvNRMrXOpfu6M2ZIu7a9XTErXH9tiusbGpLbST2j88IKwxDjQ43Rr4MDYHdyXkqqlpavevxEdo8HYxtQQnO7cFlgIInt3R570xq9fenNUrrPCj3vex9N5dzV1Jof1xB8+6v2piOeCVnGbm9Qm7tQInr2vUy7g/yy1nIKI6mcEJxNByxMiq6DQg5rojyO/eIdONnIp7CTBMsJ9OtctJozVMkTxQK5NoRlBqbZsFfKXcm X-Microsoft-Exchange-Diagnostics: 1; AM0PR0502MB3650; 6:2twpRYcv7QVZgmTBOrcoIS0kYfwOKVPIgId74IPnfMm+cY64VVWdO2JMoeXWuV23g/3RbRqPIk8jKfwcX00rRSDXndCGNCNHUSp9c5gMvTEfrCH971etMCdMtFVjNylFk1k3AjrXpHU9PH/ClLm4D2RIoZBWhHiyjPpjc5LC4OemJz9Tt1K3kaRtI6mCNBOYJ9MVDUYF66U3YmLKWzp5Jlrwiw2VKi52FFSFG/UxzLmEjywQ23ufb4v99Y6LHQBG2Ekn24HTsOTFYp1KlpkNLJaKcXy4MSh/f1iWK9MhUW+yz9kD8vdF/QabXxrmeYW2n7vxzpGmbJSts30jkyQLxK3+1s4wJdMS+UnLR4Apme4=; 5:T5PkOyTzsSYf7+CvJeO246gyYt0SJo/0veYbnGtoagybSSQtqvNS1XD2/il5gETORQZz4QC7U9Z92mvDRLpiVZ8Dl8GbilqBz14pshUYZpHK8ZJbpVYcqmh9fP146+guGHuZvTr8tDJUIUOSEYewuzLodzkvfJQnKzWRaIU1wAQ=; 24:2ZE2HPN4ZbrxQ7EqnGd2uw9Vt4uVUefaxQwOkQhwl791rDXEzQQ9vKcHU/vbl/Ydx2J7Jr0sGHkvFfN3NobxAIC8tN8nEHdZ4SsvtWr/1jQ=; 7:V0FtFZkSG1xfzSUOy/6nEpT3zbe+19Udaj5DNVOCk3n296Hr9POxTxmuAEKrB4x7KgTbcMvMUkWl4z0NDDZGygeYIYHo72V95xOGncAfHDHHz0/jXj9EXiElbZl6VkL6ieDR7iZQr0TVzaGIYQ+fdof9bgdnI3JonRVkT2xrauJdprCcSO3SkuTj3Y2rLV5tkPgcREU18nyuqoBsd21SKwOcPSuYysRsr49cij/3Tf1vlDyQzEdy2cRQrI+93w0f SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2017 17:58:09.2942 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: af914bc4-3b38-435b-b65b-08d53cd2e946 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3650 Subject: [dpdk-dev] [PATCH v3 2/8] net/mlx4: remove unnecessary Tx wraparound checks 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" There is no need to check Tx queue wraparound for segments which are not at the beginning of a Tx block. Especially relevant in a single segment case. Remove unnecessary aforementioned checks from Tx path. Signed-off-by: Matan Azrad Acked-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4_rxtx.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/net/mlx4/mlx4_rxtx.c b/drivers/net/mlx4/mlx4_rxtx.c index 0d008ed..9a32b3f 100644 --- a/drivers/net/mlx4/mlx4_rxtx.c +++ b/drivers/net/mlx4/mlx4_rxtx.c @@ -461,15 +461,11 @@ struct pv { for (sbuf = buf; sbuf != NULL; sbuf = sbuf->next, dseg++) { addr = rte_pktmbuf_mtod(sbuf, uintptr_t); rte_prefetch0((volatile void *)addr); - /* Handle WQE wraparound. */ - if (dseg >= (volatile struct mlx4_wqe_data_seg *)sq->eob) - dseg = (volatile struct mlx4_wqe_data_seg *)sq->buf; - dseg->addr = rte_cpu_to_be_64(addr); /* Memory region key (big endian) for this memory pool. */ lkey = mlx4_txq_mp2mr(txq, mlx4_txq_mb2mp(sbuf)); dseg->lkey = rte_cpu_to_be_32(lkey); /* Calculate the needed work queue entry size for this packet */ - if (unlikely(dseg->lkey == rte_cpu_to_be_32((uint32_t)-1))) { + if (unlikely(lkey == rte_cpu_to_be_32((uint32_t)-1))) { /* MR does not exist. */ DEBUG("%p: unable to get MP <-> MR association", (void *)txq); @@ -501,6 +497,8 @@ struct pv { * control segment. */ if ((uintptr_t)dseg & (uintptr_t)(MLX4_TXBB_SIZE - 1)) { + dseg->addr = rte_cpu_to_be_64(addr); + dseg->lkey = rte_cpu_to_be_32(lkey); #if RTE_CACHE_LINE_SIZE < 64 /* * Need a barrier here before writing the byte_count @@ -520,6 +518,13 @@ struct pv { * TXBB, so we need to postpone its byte_count writing * for later. */ + /* Handle WQE wraparound. */ + if (dseg >= + (volatile struct mlx4_wqe_data_seg *)sq->eob) + dseg = (volatile struct mlx4_wqe_data_seg *) + sq->buf; + dseg->addr = rte_cpu_to_be_64(addr); + dseg->lkey = rte_cpu_to_be_32(lkey); pv[pv_counter].dseg = dseg; pv[pv_counter++].val = byte_count; } @@ -625,11 +630,6 @@ struct pv { sizeof(struct mlx4_wqe_ctrl_seg)); addr = rte_pktmbuf_mtod(buf, uintptr_t); rte_prefetch0((volatile void *)addr); - /* Handle WQE wraparound. */ - if (dseg >= - (volatile struct mlx4_wqe_data_seg *)sq->eob) - dseg = (volatile struct mlx4_wqe_data_seg *) - sq->buf; dseg->addr = rte_cpu_to_be_64(addr); /* Memory region key (big endian). */ lkey = mlx4_txq_mp2mr(txq, mlx4_txq_mb2mp(buf));