Message ID | 20170118005155.20192-1-yskoh@mellanox.com (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Ferruh Yigit |
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 <yskoh@mellanox.com> To: <ferruh.yigit@intel.com> CC: <dev@dpdk.org>, <adrien.mazarguil@6wind.com>, Yongseok Koh <yskoh@mellanox.com>, <stable@dpdk.org> 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 Content-Type: text/plain 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: <HE1PR0501MB2460414CF01671DB7164728FC37F0@HE1PR0501MB2460.eurprd05.prod.outlook.com> 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 <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Checks
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel compilation | success | Compilation OK |
Commit Message
Yongseok Koh
Jan. 18, 2017, 12:51 a.m. UTC
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 <yskoh@mellanox.com>
---
drivers/net/mlx5/mlx5_rxtx.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
Comments
On Tue, Jan 17, 2017 at 04:51:55PM -0800, Yongseok Koh wrote: > 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 <yskoh@mellanox.com> > --- > drivers/net/mlx5/mlx5_rxtx.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) Thanks for addressing this issue. Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
On 1/20/2017 4:56 PM, Adrien Mazarguil wrote: > On Tue, Jan 17, 2017 at 04:51:55PM -0800, Yongseok Koh wrote: >> 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 <yskoh@mellanox.com> >> --- >> drivers/net/mlx5/mlx5_rxtx.c | 10 ++++++---- >> 1 file changed, 6 insertions(+), 4 deletions(-) > > Thanks for addressing this issue. > > Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Fixes: fdcb0f53053b ("net/mlx5: use work queue buffer as a raw buffer") Applied to dpdk-next-net/master, thanks.
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) {