From patchwork Wed Dec 6 17:57:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matan Azrad X-Patchwork-Id: 31962 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 4A2FB1B19C; Wed, 6 Dec 2017 18:58:20 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0068.outbound.protection.outlook.com [104.47.0.68]) by dpdk.org (Postfix) with ESMTP id 97D301AEE8 for ; Wed, 6 Dec 2017 18:58: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=0J6K7WlJLNQc/iDMGO8J7bZ1FDeUjk6B2EfG+aKxoqQ=; b=lzjJyrQxWkzlpAJMpQsVzpEO9tF6RnEpc7OH2Tv38GBC/Nhs9BjsxsdPajveW0RHebmEOMo8hEC/RbfgiNGdTqQwfV8lsGxfJq7mprtQ/Ep276wBifu1ZkttACNK4y4aIUM1Wnp/wOChH5PIFgosWPGUydV/fAaSLXGQWiVzREU= 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:14 +0000 From: Matan Azrad To: Adrien Mazarguil Cc: dev@dpdk.org Date: Wed, 6 Dec 2017 17:57:56 +0000 Message-Id: <1512583076-5592-9-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: 240d08ee-3158-46b5-a856-08d53cd2ec41 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:rZBQXdQUQ8ytoa2yl/MZ6lt/D+f2nqBYobOLiNVcuf00P7u+zy6f2g7Orc/RJ2TuG8Wwo7CojCshLgE/UWSDz/rbUR5ftIXwe+70RPBK3tpoieoIVKpCc+ffhoOXeBdh8gP4Id4FLiHVeg8fvKdlCjtFC073+mAvpZXoTF/4+yEQ9RoBYvjgEo8isQZrynCZMaeHJrGeCQZeNANnnn3MPjh6GrxYuyMzwvMx3e0t40xqLGCc5m2h/xQI1LG05ozu; 25:0NmbAet201BX4yIS7Dgt6CENAB0D7gKZWFXxX+N7fK+IrQcamxS5eddYdtS4SFBTKy3OeW3PCFMOrIbZ6BK8oBJu6A2CCC+DNN1wzwJurpJfQZJ9aAY2R/ClxZWZuqgqBqprRVDXpGibLl82IXBS2RXLKTOv+Csca/QFUj+OqQTyS7SR7KYhySASL/Z7qc8uWzWSuh1V2XMkM2t4b1i27rg+TJME1qhojRosGKCDVFZKZjKkUwyShjCGwrzs+zEaDUBwz0XSp2zVjvejQFNvppUDs5hdbCLNPrkYbYO/g4BAzkmHoqkYUm9LqeTP1YbqQwB9xBTMQHH+TQ6XEmhx1g==; 31:4Zf5cYYy4toBbXkG/IjIHdpfHIGuT9DpaMCpItk67pXFDA0mS2WOkUpsbmCyRG3QMXdgjMW+yp+buicd++5I/uQdwrPw1UNU7e26/Vmr15IIn56BaBnHXCbAlkb3x1cXSg2j4riKe1V33rTmz4eiXX+O2ydEzXYKCr4cFFV3YCiRpA4tIRHvD+JPHCAGTA5AmX8O9maY/1gFiHYFdveEKbk2gBKvjWLP+DKsLS5oOJQ= X-MS-TrafficTypeDiagnostic: AM0PR0502MB3650: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; AM0PR0502MB3650; 20:WxJHu4d/5+HiTIeHrqMlvRM9FspvR+zLaut/aHdusueZkyy2c3S346gbjETTwGABPBiHPF5eRCV75Qk661/J3SQJncMGe6/yMTB6CSU2K9RGZtgTEuIcYjJzox884cJVTm2Wa8myU7O24nPD9utl+k20TT9MQKKGr5k3e9nHnQPexlw8mXcmUsyNWP3CYee4uAm/EZ9H4VSC5EHAzmIzvToYWJcLF59OLGQk3RAtpkBkw4ee8Y1mpfaBIDjOObQyxR/EPkk5R8KYFQm18Bb2pXT2rN7xiTWpWe0vkPx9OUlb+91+6WboNjauB3VwhFNyphg56RoiWHz3fsYv2gAx1KaKUuiRaSGh1YYgXkQhxDkaeKoAGr0AsNe+2bQnJZDfzO90Tq2DBi7Wq746EN66vdKPIyICbvEkUWKz8+kRmU2UxBOV+lOjV3X1EDyNnMGiyUcJFM0obVl5u8+ph/pZwqxwp8vir9FB2butDZRpJPGc9n9Kmzt1J805CnwY+efy; 4:4EZ75C/rGimJ02IjA7Rv4aHJ/HzYKloF3eSItSa7dsLHhqXcNj8OkGwA6RQexOAT258G1Bkv5Ww/WA08StS2VXAMunPXGj0WUcroV6oEVtUwhw49XXpdIBoqh7AIsGuuMMwy5LC2IvbjtWnAcrTooqs/N0Bni/sEjtGZsglSTyZbwEVBTKcHTm2zxXMt6IBEy/kzdFEMFG6fnz3fKRo6cmUlyKA3AiqeoDhcuH2UtWDzcgrADr3ipsHzj6KRVCShSZ//eR3Tkf9d+4X/dZPlemLdCk7aN1hP6NIsddh6hfxc790inWx5Yxv//ElLLBXx6z2svuuJkkdOAATDkpaD/Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(131327999870524)(788757137089); 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:sZ2sVGBNgKJAixJtjZE8Wu9Vh1lHzdV4gQL3EOS?= YBhJ2ygng+PH+yTITg/oLxN3k5xhrLP/hhC+JKuw6H5hpQUVW+ENll0j0S3dgwk7S43Ezv8nJ63L5pZoJ8NbBPm8QSePNGOVIljxNYJw5jpq20IUialuGv6D7wsoC0qazenCkbEL5JJzZ6cAa7ZlJ+L2HUt0gDLe5DyXKFKHRhYLGp27fP2LC7TsLmmdHnQN4a9Vr+DrYsK4D60jgO1CWARoi27bZn7ff6FWn+y/1RtsDS2T0+2aoppI/bj0R+ej9hq4GDtEe/EtYIuRCHZf3fXK0S9pio/2ox2bHZXXx73bJgB/eQqW6NcryrwpdZo8XdNTVXk0D4qyiTnTwz9xO21GC53a8AcI9n1kBL1NsCC5Z86NiHn9ThTX4ikJx/BdyYSgMicOgL9mopvTF/J5lTko6NncEXY/ggB1Ra1oVJRNsDsg1+MeP7FOSiwUmgrOkdAkTslXq3vXONuTGPXQi15jjGI7R9Oah9BYVDK+P7nPYGURXL49K8T9jYt0oTxuSK9WpuMynXaoxgPm4XlDxqE82RfOmqMFkzpS/CeoK+Yat7aGLKpOVRQBaH4JGGuzje6+NZJ3bmEeolRCCFHeJraa7sttW3U/duapIDhUIGtEQZbVDT1ifBivYBTC9TyPxAxqXfh2hFvnXEJQDfEr5uJyyuqTojx6algIwd2CNdj+KNnWf0jXRWUhdOre8HlW1fiZcSwE5El4fg2fdoeXg/f3xv0Zc4vFZJb63TEb5JuADflRm/xfGd9wLKA+nXNMuDWBx3OlGpgxSZG1a57z0Xtco8+DZvU3TCWCioH7D0AR8dM5XePxaz8xyxLizqB/2fs5RkPoEbEyQo2TcHimPqUBPZASbPcUhXRHWUTOlRT8sBO1R8utRXGKrms+PfQiCm7yxnbSt6c1k76tuMqoZLf7/GjJsl+lA8H759aCUbWdGoYWQlP9jaXOUC/H0kTSlK+pnLVO09Wki0+UyeH/5wrx7z+ODa5lE9yOb27bEw4wPVE8QRhxDMlyGCt/DClR8jUEIb2DJgddM6PVdlofDltjSdljioNX0qbQ65CbrCqwazyZ/VDRVkDOW71bvx7ADnmuBllTnN7BKd/XiQmVSPo/y X-Microsoft-Exchange-Diagnostics: 1; AM0PR0502MB3650; 6:6Zl5vLC7gmjIXf+TLIFU/6Jri/aShOlyvDbz48pbtZ7NPo3DYBsNiz6jwoX8H6i2Fv2uMFItI0HCTU+BQ7z3pq5I0eGA9SnpFTJ5QLcUFath6DzFRRRQALrj5Uv7EuLPvf28VSP/HG0ucj6v2sumR8rRnUwa5Aj4SHJ+7esnrXxfRqEVOt9sCjzKyGN22imwfrl0LrfbFpdmwYcPxGpDwG+13lvtDgrg55QvGKf0PVLsDsvCYqZzNgVi+perEp6XyKZgGklaWQ1l5c9pF7kGt5LNOUXrAxC16KnAPVHVbVE6GsjY5FJUVzMe+jyrPX33t3kAt1dTezqrZSQoZbJFMOP9/DI7ctpE4urd8Qtybu8=; 5:k3faionfW55XjUoRuxM0kfbVtATmXQkg3O6iOCSTU0gS4Zy0sT2KqCAHeIf7C2mzaVkxatysX9T7ccX8zLQGlVLBRYMMUgRAPqZOIqdLQwpiwkXbY+zljXys/UrJUbeb1rdYIndOiH074wMiWB9+ur5zouLuOw3DzfRsCYA+qEY=; 24:WCtqjNFP+UCuWEzgwdGJ595L2HVJe7LNlQ558YOUY3pW43rHZzDGRgFzmi8gP7FGWS88AKKgkhwHyfoexrZR4n0EpoLEO+sDgYptKVQubhM=; 7:H0XrO1/FInFjnn5wYtP13pkYkCunwMRG2/b6kP9bh1ni1Sl84UrAv5wLM8uHq1YoMHDSRWw6JU+H6ImTKqKRCBsFxFjvIW1MGcKAPCtEpcbDrCAenKmibIhA6itZg46o+dmUYYqzwFZzDxJEaJpPWj4H4YilXKBWTeQzCFIwxTwpaLY7enuwctSlNygXCXWY1u2WcRGAnVfT6L7th7GfJz6UVVdL3PC0uxKEpnKC/7znL3P59FExNrF0TSuoKMIC SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2017 17:58:14.2942 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 240d08ee-3158-46b5-a856-08d53cd2ec41 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 8/8] net/mlx4: remove Tx completion elements counter 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" This counter saved the descriptor elements which are waiting to be completed and was used to know if completion function should be called. This completion check can be done by other elements management variables and we can prevent this counter management. Remove this counter and replace the completion check easily by other elements management variables. Signed-off-by: Matan Azrad Acked-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4_rxtx.c | 8 +++----- drivers/net/mlx4/mlx4_rxtx.h | 1 - drivers/net/mlx4/mlx4_txq.c | 1 - 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/net/mlx4/mlx4_rxtx.c b/drivers/net/mlx4/mlx4_rxtx.c index 498e56d..86259cf 100644 --- a/drivers/net/mlx4/mlx4_rxtx.c +++ b/drivers/net/mlx4/mlx4_rxtx.c @@ -367,7 +367,6 @@ struct pv { /* Update CQ consumer index. */ cq->cons_index = cons_index; *cq->set_ci_db = rte_cpu_to_be_32(cons_index & MLX4_CQ_DB_CI_MASK); - txq->elts_comp -= completed; txq->elts_tail = elts_tail; } @@ -585,15 +584,15 @@ struct pv { const unsigned int elts_m = elts_n - 1; unsigned int bytes_sent = 0; unsigned int i; - unsigned int max; + unsigned int max = elts_head - txq->elts_tail; struct mlx4_sq *sq = &txq->msq; volatile struct mlx4_wqe_ctrl_seg *ctrl; struct txq_elt *elt; assert(txq->elts_comp_cd != 0); - if (likely(txq->elts_comp != 0)) + if (likely(max >= txq->elts_comp_cd_init)) mlx4_txq_complete(txq, elts_m, sq); - max = (elts_n - (elts_head - txq->elts_tail)); + max = elts_n - max; assert(max >= 1); assert(max <= elts_n); /* Always leave one free entry in the ring. */ @@ -740,7 +739,6 @@ struct pv { /* Ring QP doorbell. */ rte_write32(txq->msq.doorbell_qpn, txq->msq.db); txq->elts_head += i; - txq->elts_comp += i; return i; } diff --git a/drivers/net/mlx4/mlx4_rxtx.h b/drivers/net/mlx4/mlx4_rxtx.h index 36ae03a..b93e2bc 100644 --- a/drivers/net/mlx4/mlx4_rxtx.h +++ b/drivers/net/mlx4/mlx4_rxtx.h @@ -125,7 +125,6 @@ struct txq { struct mlx4_cq mcq; /**< Info for directly manipulating the CQ. */ unsigned int elts_head; /**< Current index in (*elts)[]. */ unsigned int elts_tail; /**< First element awaiting completion. */ - unsigned int elts_comp; /**< Number of packets awaiting completion. */ int elts_comp_cd; /**< Countdown for next completion. */ unsigned int elts_comp_cd_init; /**< Initial value for countdown. */ unsigned int elts_n; /**< (*elts)[] length. */ diff --git a/drivers/net/mlx4/mlx4_txq.c b/drivers/net/mlx4/mlx4_txq.c index 7eb4b04..0c35935 100644 --- a/drivers/net/mlx4/mlx4_txq.c +++ b/drivers/net/mlx4/mlx4_txq.c @@ -274,7 +274,6 @@ struct txq_mp2mr_mbuf_check_data { .elts = elts, .elts_head = 0, .elts_tail = 0, - .elts_comp = 0, /* * Request send completion every MLX4_PMD_TX_PER_COMP_REQ * packets or at least 4 times per ring.