From patchwork Tue Nov 28 12:19:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matan Azrad X-Patchwork-Id: 31716 X-Patchwork-Delegate: shahafs@mellanox.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 EF23E325C; Tue, 28 Nov 2017 13:20:06 +0100 (CET) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0045.outbound.protection.outlook.com [104.47.1.45]) by dpdk.org (Postfix) with ESMTP id 026E42B9E for ; Tue, 28 Nov 2017 13:20:02 +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=dlHeIPAIgFcNoacLkxXnEQvscndYdZFdr39/zLBr9FA=; b=SZeXlBQYo4l+A6D8d8Df6k1NuaZWEvwvvjvAnRpGgouGo5WooXYibT/zTsUrg9XZvjs2a74qLemnP4NprR4yD5o1nAZtYkLd7NjRjsoyawuOYGDIsX7L+BBsAp7/YwxJP1zWyt580UTkyWQXDoKX6FHBvgEvKu19WF7l6ydAeX8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM6PR0502MB3653.eurprd05.prod.outlook.com (2603:10a6:209:9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.260.4; Tue, 28 Nov 2017 12:20:00 +0000 From: Matan Azrad To: Adrien Mazarguil Cc: dev@dpdk.org Date: Tue, 28 Nov 2017 12:19:24 +0000 Message-Id: <1511871570-16826-3-git-send-email-matan@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1511871570-16826-1-git-send-email-matan@mellanox.com> References: <1511871570-16826-1-git-send-email-matan@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: DB6P193CA0012.EURP193.PROD.OUTLOOK.COM (2603:10a6:6:29::22) To AM6PR0502MB3653.eurprd05.prod.outlook.com (2603:10a6:209:9::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e275650d-066b-44dd-cc2f-08d5365a5913 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603199); SRVR:AM6PR0502MB3653; X-Microsoft-Exchange-Diagnostics: 1; AM6PR0502MB3653; 3:AdJBlwcOaOPNBLnzGZV7mjZm/xHcSdllovBxuBJm7bjWol+etAp7Pqv5F/48xainJ6qp1PLLMpaheiIcYaITeLGxfePwtWDmz3lISDLj72czmIhdirwTPKCwvzw2rdYgPNwZ9bZ413ExpA7WflsgJd+CdVmvOqPj1TKhQXLVoQJfpTf4tCkUupPkq7DV4VUk8JytS1siqGS8zIldqf9Pu3SwO9T8dMiZgazZYDw/BqBY9HPMQtOupxEGBnivY+ia; 25:Jt2HJVSUiuxLq2r10KieSZ7ESMzjkKr70/FAKAJlIPFxMWcaPaMRHw0ot8bSc27qvZ2LmKhnjHqzVw7vnvAgKsMO6Ve3gd8ABKMxsfIPfd9taX3Jy9KIuClGm84S1bI0UdakP4d/0wKz2bo0Svh/xI32Nb+jKKIRfmPykPjAdRo74YkNzuPp36+khd/rMFW9DI6fLRBKJtVxInkjSIqXTG7dH422ZMs4vLfT4GXUNsy+Bh4CwEx/RJOf7wRYC98hBv17cIC5lT7ENK4/xDZw7ZeZhSN57aq68p9Q+pLL06QmndRop8Lyhn5PP+vyXTXuUsSbu2g4tpNP5DYp5GsPacegd56i7x0VGVIjC1LUrE4=; 31:Kwd5eyEnoXXRRjqFKgWti9E1sfQUliuW8gCNOQpys/oFxZu6/cz+3BM8Lw2Lh6xWSVUY30iev8oTME7h6rafb4P2KOIERbW25iBdXzwjzpX/NCKTvIZlOBNDsTb3DDFS/Oe30tBntECa1P5xNxaj6ugJvzS8fO7Fla7oAUZJY2SvkP2zy8ae+/P3RJhame7ZLRgxUKUcoK6LXc4iZEPNjl8Z4KweZG/yYrBaIJzsqC4= X-MS-TrafficTypeDiagnostic: AM6PR0502MB3653: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; AM6PR0502MB3653; 20:iTuC/WxTAgp+Kcp+LKB19pXJSP1SBSWYlBHh+hJp/J1Y0OVZpN4QqYghnamQstxlqb0HaRxMs8kNjhUx9s6oyK4EzgqqXvzCqv2wr6PJHtfVs5XjoWOIm8qbGbR57ZV4jMCahRu+MsNzBli97iPCZPSM7fptIUNaqzrKFwGpKMJKEZC+nzcMiU3olPLf3j3JJLcS2g9SXpJ16vhbjf6RdW7p9ujpFezWWtaT6gvgnNr5VHUqH5JYdxBWsmsIr+4PwsKLxHUdbKEyI+xSjmXuKm/hB8Mo++CiHs4b2keE5fB0TyoFtKt7N5RlrSWzX7kyi5NBWRIctXcRLetSC6YRCFnflOGsWzxXGZSWBZeiOKCeBpKDyWXqN/gckwOiLJk12x/p8BQNYjhgeOzRt5wBJ314NJgu3u/aEq/szNY3lKA5YD9ywy3SZnO8co8Vri7NbLDU2q7tsRdsxmvBgq3Gwe0pJ0sZQ6DFLTAETSz7H6BZgTvCJ/NbV7KPPDyhQdQ+; 4:Ypk7x5B0steajZhlIcm5uhQZT/Vh4/X9VqZ67sziZZNpGV+bUeeJVgqyJlURWMmMDYAaV7/ZSf92zuLbC+ECa92VgHF6FScIZ2w1ZjLw3neK5zu85bb+2q5foEhGnvXBzswiaCsZU2UyL45FaHNP4Rlrs1sspmBxcV4wyA7Ia0hz1OIB2iqHAHYMjqXWgOGcfI7Gq7k7r9+qDVBBwWBd4yqhTaWWHHC1rZIBsJy01Hq4Id3Mr9vgHJLAJzfn8mVsJOE7nZOHbANEybEVBDabyQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(8121501046)(5005006)(3231022)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123562025)(20161123558100)(20161123555025)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:AM6PR0502MB3653; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM6PR0502MB3653; X-Forefront-PRVS: 0505147DDB X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(366004)(39860400002)(199003)(189002)(101416001)(76176999)(86362001)(50986999)(4720700003)(8676002)(81166006)(81156014)(6666003)(36756003)(55016002)(33646002)(106356001)(105586002)(2950100002)(6916009)(4326008)(478600001)(189998001)(48376002)(25786009)(68736007)(2906002)(50466002)(52116002)(21086003)(53936002)(8936002)(47776003)(33026002)(66066001)(5660300001)(50226002)(6116002)(3846002)(316002)(7736002)(305945005)(97736004)(51416003)(69596002)(7696005)(16586007)(16526018); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR0502MB3653; 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; AM6PR0502MB3653; 23:cSAsjKs5am277NTK1SRW4aCNrE7PND30WmuIgx8?= gikciFgvnjh1HN0nyle6F6suob8R+GodOdUtScIA016ZtHyRDZ+aBIHJxXYez2k+pa1H0qAt5xK5isbV4uhYuai9cf0y/IOV1+P/xHVW1Z9hjktdAgTtq5+DjGDISoG6dNsAEDI2irIL2ahmNAhs0GjZ7prQs6HpJmx86ZQyHY+RcRZInql7XecCmwcV0cGDKlgZ9LQamWj2S1fQWU2eVOqsEi4nQNXBp/5mM1Zd5xOYovMZwOXnJzJ3EpU1TKmPBWpJbzUDxbc3XHOZU9tUVCO1c7j68A420o7PN64JEZexfCjzDmpG/ADJeR6dlZyMgCI1zRSpIX7kBjq4AzIVZ7Rci5IX5sroKGPMhfF5iJH9e3EuyrdMH7bAn3bVmBn3tii/hDUea2onpT891O/OkGRe/IOOPDusdiaSRCT8q77Q+u+i/g6EDg6AkY1uNOejKTWPhybE0u2ch4/PY9TxzGckckPCG5JeclkzJChPI0law6LTZAC1oTvFm1hWVYlPw2myYYWufI5TMyroNr4VO2+kEFFAkdJFF6a3ap5V21nqMHgZrEAWhLtqluVLP3v3k6K+VZCYuePt9Cs4/7bCPIWA8+Xx9Yj7MM1chz1S8GRl2JAbE6o3ZzPUl10kDKgjukmsptwQ2kcdGtiq0Dr9FuX/7MSSnVeJujh6VODUSn3PMInnOMbyslQ5tFaYtE2uNcXNSJsZHvyhrLVd6ZZHsozkZ7e+IPQKDO8oXcwcheFBpk/LXGoUAzdpfsB9MX0Ul7AXJSF8vss+TfXVWg4LyvDkR0WBZZnlk/FGfbGA706Sh1YnyaH2Hxw4FM3hZgiOFSXIs1F9mfB4oFGdQUBd3Yc7owoscGhBWrNK8uTZxWMJEq0eknwUehNejPrOyoVjuNRjll2pzBiDAkm08fQIRvF1mPgxEnCaSvNLUJs9mzzb69UDHgIqBoue3q3yDoU2UxjKS7llt+EqwDEl3mSFxSkH0pAEhiUUMlEXBRpOJEfX6AOEvbirpOLzUZY1p3FB34wKJ44pHGz5F0+e9WXBQVs/dF0yzXzqulgZ/+4q1BhXJYziEa4QmJozjYa8yu1j21/PJxD3pQmKo4db7x2PG5y9ULvDfC/8MOSu+p6S4nqKJIPSb/BWlu7L3jmz0liKorzo= X-Microsoft-Exchange-Diagnostics: 1; AM6PR0502MB3653; 6:ONw1KHOIjsX5k6AQnziZwLZ6V2egku/YPvSCicVldZvCc0qzOb6uFvwGrerpOeFNAr7tObWfIUuYN0Voy5KSbninm+Xwce0oHglfxjzmnaVjHZ45iPA29TckqhaWydC5KnZZAblZ2CMJkmuVORPEfE5SxJQir8k+6psAcap6AD9EA7izkqU9mdZ5PFb5dIO8LtbuUjPKk7E5hbC3Ba8E46lPw8tv/0Ns3vkaQoI1RtS/t+CUh/BjJb8oi2/q544G7zyAWQ79AAo4t1109SMUZjbMBHRVGZ34Aiv9T4mDx1U53m3Oz46LHqbg2K64uJ72bcXn0Tnz0pGIs4wa8sundAmRo50R8dSWiMxoPiXmn58=; 5:/0LK+cahtgaW8PTvqZk50v6pogSS5w/BRTMgxc1PbV5YJqSP0VGNcRauB6O+pxXTEDur8aZyESsGfgfnuz110sEqY5L/EC5ip6DqaLJMuxhCbgD1nz6MaNOG2jSk53oCsSq4nKKUTWKNPFZDytI+inGrJLnM/7fKkiFXmmCSYrA=; 24:G2EBCWwxSQYRXf7OmobhBJqWXOEUk5FZDU95LV/I2eEEq8bfSFHTzCtd/d6/IAnQhvsZCHfn8RZg0Hh/o0XEUV23j6QkSkASjFBcSXJguOI=; 7:b9UW0RbHvkivIuvgpv82YkOSAT/YGKPTVlGqsiid78zEzwF9xfzSrMHl1u4LpdrxGE6nTuKa7TZtpSJLzd+cYkeoBkbYXW6IYO+WR1oUsRvk7KdCGCWOwZy/HXODHtPtS71EFw/51dLkj2Yjs/wRzQKg0vzKnGmV5iDcxss1wAID9S70dv3CBRoWGRz+YyJVzJbB1DYjQa3xNecOoFLoY4EqtSjvlraBV6oH4pzy4dTcyN3gZ98rrHyp2J29l3xf SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2017 12:20:00.6594 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e275650d-066b-44dd-cc2f-08d5365a5913 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR0502MB3653 Subject: [dpdk-dev] [PATCH 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));