From patchwork Wed Jan 18 00:51:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongseok Koh X-Patchwork-Id: 19657 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 [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 4BD1811DE; Wed, 18 Jan 2017 01:52:17 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0084.outbound.protection.outlook.com [104.47.0.84]) by dpdk.org (Postfix) with ESMTP id A8F55108F; Wed, 18 Jan 2017 01:52:15 +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=SonoYqh5qApWL2L9e3fBQ7J/me3IT9sy9RcpB4G2fAM=; b=YXSTRe9zS4/KcqjlI3LUf7KnbTPz7SnDZcUVBfWkli0M0edrub0ooKOnfKus5zMyc0jXz4RqrnvD0PoATjwunhIapNL/RxzPlxrB4yZY4hwwC2KQ2KXOu0OTRI//tBPnthL2DS6qP5iErBNZQ9BWGwyJ7Ey9leKPHLUIVLsRSJs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; Received: from mellanox.com (12.250.235.110) by HE1PR0501MB2460.eurprd05.prod.outlook.com (10.168.126.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.817.10; Wed, 18 Jan 2017 00:52:10 +0000 From: Yongseok Koh To: CC: , , Yongseok Koh , Date: Tue, 17 Jan 2017 16:51:55 -0800 Message-ID: <20170118005155.20192-1-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 X-Originating-IP: [12.250.235.110] X-ClientProxiedBy: CY1PR1201CA0008.namprd12.prod.outlook.com (10.169.17.146) To HE1PR0501MB2460.eurprd05.prod.outlook.com (10.168.126.16) X-MS-Office365-Filtering-Correlation-Id: d7f69027-2e1f-4654-11df-08d43f3c3d39 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:HE1PR0501MB2460; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2460; 3:JhMlV0PC7sjmXyk5HDusNNSnmWfBynhK9Oy4ObrTtRST+0ADPEZY+sBg+SK3Pe3EV67clc8D7GrZJ5saK29Pke6MCWb98PYj63+rvFt06IhCInehGUSAgXKF1qXUMNo3Olau2ihAl0xyRacPG3qIsgW7Y9sCJtGEV9Mz5Chvss3F65tebw1hA1XLTv8C8JYyLiF3hoh2n+VRzynzceH3oCLnPvJektyJrqev7KhJbHxJjtIMW2616YxHOqeWZEl1s3BSUghXxICeu8S+Dw+tYg== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2460; 25:Hfcy6IpONNs56wjTZujImvFNnO1X/LRU8ra4hyvMCYgzaLJpHprUuFSPepBSYgrxT1nwc/HxDli0vrN1a8Dj0z06gkqt37wlCmuaDRDh6xxH6KP9My91ORux5GU//gchpJE9QvaaNj+31o7GrxUfDXUkoF6QX20/N9EU+VJLmd55S6/o+lhY4FNQDH0zxt6vA2N6QcqZUOppAWwr7odqqTBb2bZs/lujZsP9Xxuq1tOx/kLRN8bdfmJzwKVOw4VfwZThB9VxRJRzaxvSWANo6y695U1lNUf7zdhVfqP6gnNqfJDyNoYCEn9V5GHvtM4RrRgXW1Uiz4JSrnRzVJIKUerI4F1O3JrGA6w6CrCw1j1OoZfwUXQpwwLEaXMYub9sTlxna/CWu8Oda+/6pkzuJjgZZSsnuDhKz6UikeGHWbFSJs8mZmRAtkXC0mzVEcE+TkhVZ7H+gXJ/ZlVL2AiyiLoGI/VKzZM7j+8X96jGtduyUmWhgtJytd6S5uftTE34IwkI8VBw2BdJOc+okB5IOhb+jnJP6AvTG+JowMGEaqgcM1BPhWdPLh/DAd1ha45bhFHC8unmeWx5BMZSpsk93e6GlP3iMchRtAyhi0SZGbCv0bI9BhRbYUj0E9R3nzvYzP/JGZVz60Myropyr5eq1LKVod3DwBU91f5Tg50Y5KB1MfDehrcSXqw7L5zXg9zjAf2HmeQazzKWdUSE9l654PHdcrHOyLJcJTRd3go0Yz0m5uz/1lR6MpSpXs3GNhr+ObNKW8dvbMebVUr61AKZvQ== X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2460; 31:ZK2NhZ+Bky/5TBv7bRToo3BxWlvQAxc2nuR6FuG9jpHiqtI2U1cfQb/Vk1Zamv+3lLLAi1Jrr8GiZBShzATW4PgALyrq4/IEyNPlkze6vWyr0+ZEnc9XnMKCfSSlMYRsv+fWkD6LhQ5jV0E5335g7OtOfmBA9hjitG/HHO+jUHegi6mM+cptwfUjNTCqT2Z7RrFalOV3jRwhmNr5JjMPal9TQBLZr+NS+IzYtBaGvMe1rO+0+85dWWBy6MJ/JAO/; 20:BSYkd+T7yY9fgzoau6AgvwtMgVGush3lZfjqCRPF/cnAhFxpwQBkKQVyYVknOgmPi6zb4l6qL/U1jAcgN1GKE7WOUlb2sHgcxAGA0oCU4EZFKrlAioF36+zjGnbH3yMnCe9qh+KuBBcMjEsSfRF719HKizcEEsB4dzHbTv034xDipc+zMD+Ojh9TiQJtnK2Y94ZxlMucKympuBQlI0KsWYHVsBmD34RLEFMwM/Ll4quTidnKA1q4bG6XXKy0zS+RIbDw+6FKKLJLbl88H8RCUlsMTuZxTx8V7GoA/+hT31pC6OahbaxpiX9KCuZSfp+SpERzWXG0LvAj6gYot52yNIIaIHHeqlN4pbI3vYZv+uBwZtETutOL2PNwWBb6d41r1SsUGoSOxSKgGja7ZjS6ZmiZT/B78JRYcOPFHKB0w8oiLJJz078i73dVIi68Mu5xSUjGxJEe4GpwKquBWMlUwJuK/wEkSf6Cry+wX8JstTSmBZZXQ2NXOcKIPtXvS+8N X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123558021)(20161123555025)(20161123562025)(20161123564025)(6072148); SRVR:HE1PR0501MB2460; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0501MB2460; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2460; 4:jiNTlsCRSX5c/Y3sUVXqDSrds9Deqf3GSvs/WgY0QkmbPObHxwq15GUsXNrMQijtn5SGPiI1ZOEhpTamrenCQCVAElmdcI0w2ZIPOlckY1zE5OHfhbbqkcBmubhRwI2mPptxh1+C8u4kSPsjEEigKhUHzxpHm5m3/yQ28W603+y5XI2nw3zXMCoYNUCJQrfOWtqoNJXvNxKkiaShN+1/a+1rB0SdEUiswnhldDvSYb4u+gC+IIzNAFMmyviTbPqfo7Q2tnUHa4TDEVjVlO83LIFI0ESoJQe9V6lBslllmcsOjuAdrh59Lbd1x8rd7zk/4ORHUoKJEemPb4cw8x3mB0HJx3TrwAs2FAIiY/sH8vzmMjMkc11SowhQ0JGX93EUibEHKHo5sKIJhM5HaM3OdyhAAeYVvt2hDWAE7Z1lHiW9TzCD0JNVq2ae3d2tUXP2NO1KFUsEQnF7ZHLykp9+FEsFd7AjOBMoRQc47IEH5knPxGWBofN2G08ED9trjUZQyoVNi8piOqaQORiMgsaNMHJ/t9Unjs7dbCKrfICVIFNC/REHkc52d2c8BNot3kTi52FOCvgWGlAJuwevtMB/+AsAHwVR70w8H70MPaanY1NxBmSd6SiV6Jxfey3IBOgl X-Forefront-PRVS: 01917B1794 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39850400002)(39410400002)(39860400002)(39840400002)(39450400003)(199003)(189002)(69596002)(8676002)(21086003)(50986999)(92566002)(81156014)(50466002)(48376002)(55016002)(25786008)(36756003)(110136003)(38730400001)(5660300001)(5003940100001)(54906002)(101416001)(6916009)(68736007)(7736002)(189998001)(105586002)(2351001)(47776003)(6666003)(2906002)(50226002)(305945005)(53936002)(66066001)(33646002)(81166006)(3846002)(106356001)(42186005)(33026002)(4326007)(97736004)(6116002)(86362001)(1076002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0501MB2460; 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; HE1PR0501MB2460; 23:8r5Kgs3MklNHDV2zUoO9x3qQ4evt3pwsFDN88JQ?= ARTYbOK4Fm0fyaiuv9xXjNxZEUMcWLXZH2wKEes3EEiv62XNZeU8rI2ckpWmJBM6y6e0daI8FYlvDmE+JGRd6GAjQ/V4dqC8XJN/RdU2Wkt3jF2uImOZGMLOyX8J+oEdTnAbCXWq72T8gcY8KQsCjHm2nLaOlB7aUwMDOAbe2vEQNvvLpmJioX1SuNKbRt5qt+hgFQvcL+gCRLWHtI2uyKmLhFaZS3s6CKAs9o599dslbqjVqzVqcFeu3rqKU1TDax4KFWq4EAmygZIfyUJO5WKZlVJsA5Tq5X2BV2VSpJh1EgTcd5lc5ppyhOXFa+wFwkzNg0TA3utMK1EJ65nrNDMz1XmRIVOyHiteRQFkAWIfLMS4OfrnIXM9inm3RmsYNaK3iIO0hGWkKsUs0SGTVdUUF9gMeOjeJ4Nu/MO9Ira9wWgBZIU2tCJAa24ASybM0E0hWCGhh4xTyCJYlqWhLTvEt7vj7Ubwsq8Y7AqtjXeV4A3MKv2vBiYgPzesMuW5trsPlGnYYmfMevEOdoKz+R/BeoFUSYUnSebyb9B2prckJSieo3aRSZNrtpACM4IH0Y8enc+0frZ5m/i99WEel+UTSRHsg7+lRfWJCPEaGyx3CjZX3nG9C02LCPInxCDSU2TqhjNfP3SZRkuHVwLRUPBzXnV+gFRW4LE7HWUT4uGgshBAG0sCMNuwRy+O4F1ezCnBVGlJ9paB98RPLAPSjG1biAhkLUh90moIlZPj1NfS2ZBE0eR/a7/NLPvN/4XDpylrkb2PKBEKqgz8b/xnHnmPYgbC4ER2yRSD6U1SmFpEsN4Z6TCgKnjrL/du1f/NWU+NMW/f049F0O4jKHBIglR213r9NApUbJ96w3HqDq7M5oNkKGFVqi0Xu6bY97zgZDEzwPkXaIUt+AGFBvQHz3mIoCzF4In60GG4LMqhyM01fxzlxcTRPdaXTzwXn+rD1QMz2gad6q3CvL++qE9aN8bQEzvUErMdLLZkcOcCzSU6TYO/Ll039bnK7PWZU1sKNvI9SqrxyE1jrNnFjE9tKEnqmFNRTLvMS74BumEF9yCvKm8TFREqDTJGqiZIh27xVcB/FeDV8Om1It75CpWq+dk7os1jNNvtCuOV/OhG4EDrrCSIQ+dJN8nOgS4uKLTvhPLniN8jWWMQBS3xtyD0L2BUAYusneFHXzGSDbqKNYfMGPG6ifPV1ftg5S+Bc6LYW/pA= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2460; 6:coUYNN/e0LH7bEV1bDy9o6s0J8/w9irjHRk8JJ89KmQlC5VbxkwWdqAB6J8ASaS4XOAIZteyRxedJqMXFQKUbTXTDSysE9epD+wBVqiiaQHq/ykIz4shxky9SHyBK5tEwQ4NLCnovAjFOGFVetyZtUVbN14e1121KJpuA0BnT2/QqiH6EoiPOJNbq6BWrFQcFr36o39qUxlp0z9waSQaaky2/5aMMe53da9wkxwHuZStd3F2V9vP3Xo9V55L9WNdqp7ifyLaIRVKTwRl4MKcSV/+Huo1N6AZnXveB5MMNgBfxrPTdTeNlFzh+7Mc6qKsYKfIrHz8ELt6KgOxr2KLvD2v/zMKGPIV1guCxhZGnH1/+YA6AfcKq9Lu7hNa5sitDz9MW7u25lpw/mqfoIC/d1B5pqCv8xykxTR8JtD2M/2Fc/CpXfRVA/xA/ETWa1klxkaxFp+uD4K1oV5C8j8Pmw==; 5:MGr3AQtR7I6KjdD2kGYzrig0rsRxQ4hU5VtQRU3rwN1w8BtJgRQDVrdbV6PAdpIQzSYpgMNF0muth658BLgdUKYnvtJeknzkoURccIZrR6xRblmnjh9pa5LvcPVa1tgE1G6QNcxenQF1yFXfZbPAFdnq3KbiusF5GlMyNB6VaUc=; 24:4Lz8hslPEZFHGLa4/sn2TihhMq91oA00Ki2qFR8jyCjkpH2pbBdQlIpDMuEr3uS3jDGKxSvzdGQrXpzBrR6EYuCLR0efgGBL1rKNHMlZSMY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2460; 7:0KLU3FHxAVJ/qx7iYD/pOB9hgWir8zk4ckTGdtwjcZRiK9qEGSo6s991++z4fKVTvpi2R6lzzMNw+XSrgh+lId1Vsef31e+eMaI0u+IBs9AbOa326WwnDIE3P21OF0QbsS6j4PYmlVdR9H0JvtNe7QmTEry0Dc/R23QKB7VtA2kQKV8ZIhKEbbvxUBZzOZ44TkJUI3F4WWgpwpJpBJBwtWPDrFdm7oWWM75U+eQ5+C89WFBS0o/2tXz6e0/TZQc0VlU7PKqH1k1N8LJzQUn5oHcwWlAq40p8o1Lf+sAiyaBza96ZOJWGaCGgwroyb9BX6Ar1DIxabZsxhw2EpWsqQLn728QkwehOxVdmWqKoSddnLTpw/w0GY99DHu23oZxeW+vKeNjKagBy+4xBlom2gPdK32M1HnqtfhfFXZ0eKFzFMr3f6vrcpYKHm4+v0QPrponN6AQgnx7//8WMNoNBaw== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2017 00:52:10.9038 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2460 Subject: [dpdk-dev] [PATCH] net/mlx5: fix queue wrap-around of multi-packet send 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" When the WQ is wrapped around, it wrongly checks the condition when resetting the pointer. It should be compared against the end of the queue, not the beginning of the queue. And this isn't even needed when the length of the copying data crosses the boundary. Fixes: e5291c280c08 ("net/mlx5: use work queue buffer as a raw buffer") CC: stable@dpdk.org Signed-off-by: Yongseok Koh Acked-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_rxtx.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c index 2ae949295..f54db5b85 100644 --- a/drivers/net/mlx5/mlx5_rxtx.c +++ b/drivers/net/mlx5/mlx5_rxtx.c @@ -1037,11 +1037,13 @@ mlx5_tx_burst_mpw_inline(void *dpdk_txq, struct rte_mbuf **pkts, rte_memcpy((void *)(uintptr_t)mpw.data.raw, (void *)addr, length); - mpw.data.raw += length; + + if (length == max) + mpw.data.raw = + (volatile void *)txq->wqes; + else + mpw.data.raw += length; } - if ((uintptr_t)mpw.data.raw == - (uintptr_t)tx_mlx5_wqe(txq, 1 << txq->wqe_n)) - mpw.data.raw = (volatile void *)txq->wqes; ++mpw.pkts_n; ++j; if (mpw.pkts_n == MLX5_MPW_DSEG_MAX) {