From patchwork Wed Dec 27 03:55:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongseok Koh X-Patchwork-Id: 32759 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 CE5AD1B2D8; Wed, 27 Dec 2017 04:56:08 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0077.outbound.protection.outlook.com [104.47.0.77]) by dpdk.org (Postfix) with ESMTP id 1169F1B2C2 for ; Wed, 27 Dec 2017 04:56:05 +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=n/sPg+x+pk/3XCi+6gxT+4C4Yen4st8p+F/oe595HFE=; b=jRPMY5AOT0kYmUVqSc/xPsA7Yw7U4KaOc1HEzsYeUVzsN/dDwpAQNQ4uxqVJk6/oEc7fm/PIgufqTUBdD29RnV8zkSPsctxyAJgEcJhVLozhVtBbZKkCsJhOHXBGjkOthPdD84sxWGnIM37nVx8Q4qEgAgO9n5yGgPz8tpyFBEU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; Received: from mellanox.com (209.116.155.178) by HE1PR0501MB2043.eurprd05.prod.outlook.com (2603:10a6:3:35::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.345.14; Wed, 27 Dec 2017 03:56:03 +0000 From: Yongseok Koh To: adrien.mazarguil@6wind.com, nelio.laranjeiro@6wind.com Cc: dev@dpdk.org, Yongseok Koh Date: Tue, 26 Dec 2017 19:55:44 -0800 Message-Id: <20171227035547.29571-2-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171227035547.29571-1-yskoh@mellanox.com> References: <20171227035547.29571-1-yskoh@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [209.116.155.178] X-ClientProxiedBy: CY4PR1701CA0007.namprd17.prod.outlook.com (2603:10b6:910:5e::17) To HE1PR0501MB2043.eurprd05.prod.outlook.com (2603:10a6:3:35::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 55eff097-c2c5-4c7c-ab74-08d54cddc0c4 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(48565401081)(2017052603307)(7153060); SRVR:HE1PR0501MB2043; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2043; 3:hQaACbyH2PI669hoCt8BkIE1VWf8vZ5LED9N7SH8cbPC4b52x+9QNwGz4k9uzf56+OrHjHx57mxzamQb9qUtTTej0KJ2eH/QL/rss2tBUIaZLmPiJ0X/xiGYF0fGX3RuehAAABDewnzQP24NreohkLmkdni1aIoF12vF3MCpwrJOSSgGPWsFGCOcAuqDa62u55Je90fwwy+6yZFv1f5dL+Lbv12ckxYG1hFXggK6lyHX7CgdOOVyZdlztIv7ZIHx; 25:9kMR2KFt0DUUDtsT+BtQF7kMfsnpX06GbjATPCUjrFWsMFQvY5EGk5uOt6K3fcszXACwqCSxnpHcAU6laq5FFp4xRCd19OJn/Mtk/RpMe9w/5RIl6saFFnf3ShVI7440Ed18iAAmbHBbgRsSz+C91mXvZh5XwrNQiO3etpu6jf4ebU5kf/IdD6x3STbHhG1e7cK+KzCjLAgHMFHfWLrG90fEWWdNjPzfuvgQQOkaucknkEHqWC/oCMXeKgYxQuwvaMPpAZez7xKviL6SFCTKs/D3qwyJVUKE1ZKrXxIpR/ZF/Q+edRxXR1pb94QpchSS2Khpq4bC/3Z+7VzWrASXAg==; 31:mZ+StBx3Q1STqPIwDVTFx+44yISFrgB0Y17hiu14DO7cqBmifthLI+O8/MuaIHYbkBHE6G5t0rAkaX42HKDGAE/8wGhOhr/dj7F2QWJrG38kFZa/qdoGpm9MdDUsZUoF9GvLaIFc/Z+KWrpFQ1PHgKMSXKN//+NDJgC/1jrZ09zCU8pPE96JFJUwY/Cpv3dohe7RRcxPtkZIKmy4rzLp8IwGtFHB8Czy1KLab0hWba4= X-MS-TrafficTypeDiagnostic: HE1PR0501MB2043: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2043; 20:6hGV4jX1Bh7lybrtbwhcZvBT9T2aPV7N1aL0Z69wFqdcZhVohpzCND/sbxWZPOLdYPE5BsgAecYl5HNbQryyLzNWd4vDYJ1ZMSbRNuEfgCmEQVFo54QzQwK9NSwjTXXsm/OxCjDM6a1Yz97Q15vYugbxZ052UDOGqiLvfRUlAYvPIWeU6//YVr/jlczOSJ4g7QQO0EXYJRXccIf0Yuy8tFkz8ms6wrZ1tZE4/ULLCl6XXsvuSEzKw9RNy17tvaeZBSugd5WI3wNVsirewPBJupeGcyWfCbGa6GAXxGSKpdzPdy8a87evlitJK6fwDylnrMAVa6GlIIiwTnOduI7Q0Bd76Ude2X9IFWRMoVcL9v8njbmEnPBW1o1GKdsCBefzeADkRCkkXkDwMXDeELeFnUjbCrAn8r1OhJbMQryQpghBPSicClRaIWWm3uIHl0fbT5ncrx3VDbc4jDZ2/XRs+WNjjgqscMXVPPdBZaKyWUbXz+gC6kYcsi1oBVVAh/Gu; 4:F/8ynRdagWmiMnRdwwGwiHmFJiNwvGh7qgGY7Hum42cnMuaqnelO0JtLX77e6TT4T48pR1V9RmQdZQoUKnrM0jUzl9AfJdyM8S0C+t9wk6dyuKL/Wr78pNUUwLIKObEq+G0pxfse/3c+H4SC3LkrH7ZGtPWfOGBWlfBH1+2x9oc9jTL2zJENrkvR2XD63leaePzb4xyKBiDV3cpmS+8MD1clcT9btRQWAJPOO3XczXVY4EvYu2rkqQON+pq5CNRYga2Lgz5VC3hFzSBYQMdiPg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231023)(944501075)(93006095)(93001095)(6055026)(6041268)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:HE1PR0501MB2043; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:HE1PR0501MB2043; X-Forefront-PRVS: 0534947130 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(396003)(376002)(346002)(39860400002)(199004)(189003)(66066001)(97736004)(316002)(107886003)(5660300001)(25786009)(3846002)(478600001)(16526018)(105586002)(16586007)(53936002)(106356001)(81166006)(81156014)(8676002)(8936002)(50226002)(68736007)(86362001)(575784001)(4326008)(2906002)(36756003)(55016002)(21086003)(386003)(7696005)(1076002)(51416003)(76176011)(6116002)(47776003)(7736002)(2950100002)(6666003)(305945005)(52116002)(69596002)(50466002)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0501MB2043; 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; HE1PR0501MB2043; 23:1TYYun1wA7JKFoKSOkRwcbahSocjoA+jdGsiyne?= GHBx1Vrjw8HYEvB1gTOv9wLRgSyI7JdT6e6bCVNXOt40R6xsz5eTa9FzQuctweRaBsLUCavCvThLyNJWYkHAhwBB7DQdxyUe7qyMTf8eDRlD8LbJ94Lz5NKjsv0+rVqQfxcpF6EOEu/rSj7af7G9rj4P1qdXEUL+SZ09LM0uX7PcRPH1nV1uGGMsbnZC1PobGK+wgxvUscqczgVZgWnT0Y6Bgw4iQvdp/g/SBbRJ2mkzF5vKY0HPbOQVihcy3owmrOy+vGbXtHrr1V8qW7FOtMl4Irn/nRQ21XjcV1Rv5yWDLU+uxnpc3E0lo1eLJgNjSUX5MLtv+BpXU8BhGlfasNyqH9GMz905QUoSmMVs0aynCia1hufQ4rZMjKpzMxm262kzdFXInS7zqS380FPiVGo0IKuER2y7TzZaudf5i0ZVFM78QCVACTQXtJ2uKBbNV2I8nN38RAXTN/qgTYtPvQbCSkSM2bMVJfJ5DZz9Aha7dsNYT8kvLHc5B/Ugb/mHhu4n0RMMGnQ7bDIkJxCdS3MOerxkdMYYozIDFBsuAyKYj2JQ1mMxj+0dCRoZbbDAmMIyJcu7fK4fj5VQIAykGaOgDIvhAjpeUF5An8THwErhR1uqsrToTENKBshCqwJu8/Es9cgzmyxmZV8cIvQ1ElwIV7f7TLjUVg97L0dN+eLuRBjBW2oYRRCOcotHFTUsxIlyAQqIV6VmQUrBAcVpA0NvUorpLQdKUBvc78yKEV8W7j+d9EzifOigVqruFoQ0z2u7vzY2ELGFuhwvLh3L5G/LP5XzX2BlPGOIIwclF0RPOFtsZVdxj1Hxmg1WdyFkOekFZzLQDlHBYNpyHBigxsAyuVh4Ya0JcQ2H9/dvziC77NapHmD3fD7zQMKi1CVCwUB1X2mfnjfUAntJvm9GPVDUXlrheiYPALCcqJivL5WHc6esN4hUAbbptNcnoDiDuFIZH/iBMISUxiHfwFkfZAusdLy7V253f2Jj52YJ+OUY+MSrRWduI8awPATXe85wTuZ6EcQLxpqb01s02SwluaI0M+zSa1dR5Fg9Yl+PK/kVWORWnUCEI1evzCvcE/+Bm0IPDoG9SjLGM4nPVyq/9hUrZ X-Microsoft-Exchange-Diagnostics: 1; HE1PR0501MB2043; 6:J/HLjDPq57nYjO+qgrwnbUyQOjBJM9TI+Qfzf5x3JwYubw8f9XTdFSlaU0DJxZ0hTZb5LIFoQxxEI2UlLAZCGCIR4fH343/Sl70vQoEzda+6p/cCSrP6QAcMVl7cOkKNYpIVy1eZRTMZas9WiAHKb1MIeMj9pGn/11t60O+bZRga41pxEofwMKDUHw7FbJNU3RPPMZdQ7pDlyAuujXi7c5Y4qfb14JUNsa6R4hYl2kWqt/n95hK/0aey8Pr2ABVLkmvf4rurdranM8MMN5rdCYSqr/sKZz9ABcdpjlaf7DMmuh/9YCYM/GmzzBl+W0iCinZd3iD/MScI04NbVQ1hOCTPZm3R7tR+jf5TfjWVwhA=; 5:2Ndshs8zdR3OhUZ453t1Dk51hJSTAyudYrAkjiXX51w1Hw84RNs2/8erCgl/UX7qjzxvmQ/oEZhNQQWblvRZzlRQQIdYqdTsKzUbK/ji7GPEl6st5fPKpycPq3Vpan1Oc5eSxpCOoj3sjm913UyFdP4hbJGKN4K/R+3BSV3+jNU=; 24:jzRCBsQtE0RPZWLSZ6sGG9v3yA9PYNkrlc1MV7q1vvwhCysVuLz6sjAbRLLSHY092Q3j1butH2kIqcgwg6o7J6SMg4/BJsTpuVgbBNzydRs=; 7:TgXvOc0OmAzWXxi+YH1j38PEpK7YzPW7TiCpGPZYmgczQCGFL1ceDctodEnx2RZh6K6BhyMISjZSU8LNJWa6A8niyC1Dkx6cOiETsL+bSKNM0LDwKAHQRafWO93lu1fzY9JktUajP4wIKnhFYKFzLEyNxY9Lq4D3Z9Ctqawhp1fNtcyrNplLjCmp6oQUdKEiOoTXbrJT/8oZuwVFBeQfpv3NQ6Ef27nOYJs5yrTcBdYKp26Nm/qAka2soIL8rDLA SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2017 03:56:03.7140 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 55eff097-c2c5-4c7c-ab74-08d54cddc0c4 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0501MB2043 Subject: [dpdk-dev] [PATCH 2/5] net/mlx5: consolidate condition checks for TSO 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 change helps compileer to better optimize the code. Signed-off-by: Yongseok Koh --- drivers/net/mlx5/mlx5_rxtx.c | 126 ++++++++++++++++++++----------------------- 1 file changed, 58 insertions(+), 68 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c index 1e0f5dc52..5e58f1afd 100644 --- a/drivers/net/mlx5/mlx5_rxtx.c +++ b/drivers/net/mlx5/mlx5_rxtx.c @@ -441,77 +441,67 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n) addr += pkt_inline_sz; } raw += MLX5_WQE_DWORD_SIZE; - if (txq->tso_en) { - tso = buf->ol_flags & PKT_TX_TCP_SEG; - if (tso) { - uintptr_t end = (uintptr_t) - (((uintptr_t)txq->wqes) + - (1 << txq->wqe_n) * - MLX5_WQE_SIZE); - unsigned int copy_b; - uint8_t vlan_sz = (buf->ol_flags & - PKT_TX_VLAN_PKT) ? 4 : 0; - const uint64_t is_tunneled = - buf->ol_flags & - (PKT_TX_TUNNEL_GRE | - PKT_TX_TUNNEL_VXLAN); - - tso_header_sz = buf->l2_len + vlan_sz + - buf->l3_len + buf->l4_len; - tso_segsz = buf->tso_segsz; - if (unlikely(tso_segsz == 0)) { - txq->stats.oerrors++; - break; - } - if (is_tunneled && txq->tunnel_en) { - tso_header_sz += buf->outer_l2_len + - buf->outer_l3_len; - cs_flags |= MLX5_ETH_WQE_L4_INNER_CSUM; - } else { - cs_flags |= MLX5_ETH_WQE_L4_CSUM; - } - if (unlikely(tso_header_sz > - MLX5_MAX_TSO_HEADER)) { - txq->stats.oerrors++; + tso = txq->tso_en && (buf->ol_flags & PKT_TX_TCP_SEG); + if (tso) { + uintptr_t end = + (uintptr_t)(((uintptr_t)txq->wqes) + + (1 << txq->wqe_n) * MLX5_WQE_SIZE); + unsigned int copy_b; + uint8_t vlan_sz = + (buf->ol_flags & PKT_TX_VLAN_PKT) ? 4 : 0; + const uint64_t is_tunneled = + buf->ol_flags & (PKT_TX_TUNNEL_GRE | + PKT_TX_TUNNEL_VXLAN); + + tso_header_sz = buf->l2_len + vlan_sz + + buf->l3_len + buf->l4_len; + tso_segsz = buf->tso_segsz; + if (unlikely(tso_segsz == 0)) { + txq->stats.oerrors++; + break; + } + if (is_tunneled && txq->tunnel_en) { + tso_header_sz += buf->outer_l2_len + + buf->outer_l3_len; + cs_flags |= MLX5_ETH_WQE_L4_INNER_CSUM; + } else { + cs_flags |= MLX5_ETH_WQE_L4_CSUM; + } + if (unlikely(tso_header_sz > MLX5_MAX_TSO_HEADER)) { + txq->stats.oerrors++; + break; + } + copy_b = tso_header_sz - pkt_inline_sz; + /* First seg must contain all headers. */ + assert(copy_b <= length); + if (copy_b && ((end - (uintptr_t)raw) > copy_b)) { + uint16_t n = (MLX5_WQE_DS(copy_b) - 1 + 3) / 4; + + if (unlikely(max_wqe < n)) break; - } - copy_b = tso_header_sz - pkt_inline_sz; - /* First seg must contain all headers. */ - assert(copy_b <= length); - if (copy_b && - ((end - (uintptr_t)raw) > copy_b)) { - uint16_t n = (MLX5_WQE_DS(copy_b) - - 1 + 3) / 4; - - if (unlikely(max_wqe < n)) - break; - max_wqe -= n; - rte_memcpy((void *)raw, - (void *)addr, copy_b); - addr += copy_b; - length -= copy_b; - /* Include padding for TSO header. */ - copy_b = MLX5_WQE_DS(copy_b) * - MLX5_WQE_DWORD_SIZE; - pkt_inline_sz += copy_b; - raw += copy_b; - } else { - /* NOP WQE. */ - wqe->ctrl = (rte_v128u32_t){ - rte_cpu_to_be_32( - txq->wqe_ci << 8), - rte_cpu_to_be_32( - txq->qp_num_8s | 1), - 0, - 0, - }; - ds = 1; + max_wqe -= n; + rte_memcpy((void *)raw, (void *)addr, copy_b); + addr += copy_b; + length -= copy_b; + /* Include padding for TSO header. */ + copy_b = MLX5_WQE_DS(copy_b) * + MLX5_WQE_DWORD_SIZE; + pkt_inline_sz += copy_b; + raw += copy_b; + } else { + /* NOP WQE. */ + wqe->ctrl = (rte_v128u32_t){ + rte_cpu_to_be_32(txq->wqe_ci << 8), + rte_cpu_to_be_32(txq->qp_num_8s | 1), + 0, + 0, + }; + ds = 1; #ifdef MLX5_PMD_SOFT_COUNTERS - total_length = 0; + total_length = 0; #endif - k++; - goto next_wqe; - } + k++; + goto next_wqe; } } /* Inline if enough room. */