From patchwork Wed Dec 6 14:48:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matan Azrad X-Patchwork-Id: 31947 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 4E1697D04; Wed, 6 Dec 2017 15:48:57 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0072.outbound.protection.outlook.com [104.47.0.72]) by dpdk.org (Postfix) with ESMTP id 27FD4325B for ; Wed, 6 Dec 2017 15:48:53 +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=wcKX3CjZHPeRx5Eci9F2YmRRhBPHK4LLHHQ9EiCZrR4=; b=YM0Wpr3KuEueZ5Kz5BkwFtX5jvoLOUELc3tsJfZIiMs06aL0QidNTnUpw8+U4dk3YwIyFIPKieE1c+Nq8LTQ5bydc5fe32/3I+e2OgHDNWjY6e5lMLdMpD1H6lH95EjjGWVmGhB3go+f5jXhgIWEUFBZrqWw71Lj+8yurUHFTck= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; Received: from mellanox.com (37.142.13.130) by HE1PR0502MB3659.eurprd05.prod.outlook.com (2603:10a6:7:85::17) 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 14:48:52 +0000 From: Matan Azrad To: Adrien Mazarguil Cc: dev@dpdk.org Date: Wed, 6 Dec 2017 14:48:07 +0000 Message-Id: <1512571693-15338-3-git-send-email-matan@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1512571693-15338-1-git-send-email-matan@mellanox.com> References: <1511871570-16826-1-git-send-email-matan@mellanox.com> <1512571693-15338-1-git-send-email-matan@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: HE1P191CA0003.EURP191.PROD.OUTLOOK.COM (2603:10a6:3:cf::13) To HE1PR0502MB3659.eurprd05.prod.outlook.com (2603:10a6:7:85::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0f6d138e-fe61-4c1a-2d5e-08d53cb87817 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603286); SRVR:HE1PR0502MB3659; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0502MB3659; 3:HNzL6ypnUhzZoOWIYFC3LEfXcmjCZc7mCCBcMoMA2TqJjwfJy+5ltpOTf1ztV13lgpnsf1xb+4kU/QkFLaExcRQNrYMhar82cT9khLzHX3Z/8aKihwZHVmLiB8WrT79jMZo3T98MIdYFH3Ja12JzQJDE6RQAr7/9xSUal3DLv7nvjgKuw1UixlUuBjs11JyeRJRpXZnSTZ2H6brF6b1Iu9BvGs2O7GtD0Dyh/utnmVU1VU3Im+osFsXeVsu49dJC; 25:xV/ljEbt81P+VnD1aUKFadRSLl46uTQvDFiK/jE3VUwFGoFLE93AASQtPuqnaBoV5blhNF2bRbFUVnM9XGtYT2vRy+5a7HVaIdgqmol7qfQDlfH2Z/JlrbMs3J2TX1ruejjOAfl3AOZ9hwOYUHzW6a84ErOGAu469API3MQO8HPC2VHHtpGBmIbVk/xCEea/GYEnwNxKPvuPjXY3pJi4KhN9uyxPb2mkBD4CGIQByXqlB4o3wpc7DeXOFFn7aQc9PZZF1xAK+9h8fAWuA1mKzS+9Bzoc9nbmkVtohDxUE9dvONs5EwwHGjqRzOCLlZ31F9B/XDFgNtEbutL7gblB+g==; 31:5kGbGQy6f+L7UW6GGSQxywsVQannZyaLJj0ru9aQR9bVvH8iIskyd2ouHDr57t28ZIVIujV30kBd9cq8v/bYoXFGlvxU1gPfLzvdfpXfmyrA2A0gDID563pfUjE9cu/WqtovLBWabBU/Nc9Rrdm1RHjdFgEYIAn+l5cpap0qA6+ekrNijwGCl4ouJ+9zgtlthke4qWuCNJV2bs2Bxl8XMDrqOsj/3mexDa+A5PYHSMg= X-MS-TrafficTypeDiagnostic: HE1PR0502MB3659: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; HE1PR0502MB3659; 20:sFJMGz4Jlu8aeK9X7ja3+mjvQLpOKqMa05he7/4rcf4jyU9cXww5f8H9D4bG/a7OZJHik1HzD0lLdKfx4nbHtL5BHylcix3MJYlp2zJNx1b+9d/SD43574tSUUMTsVSIaw5k2xAgQTdp/R9asu0g6GuN9CmTJxq5wc4rmqotexFD4hdCWVoOAcMNLYSPPgQhEHim1e+xCCjJeMzNBzp3umOpjJPeS+41gVdO2rw8FHUdR5pqucAiPZ0z9e1JuIrQAGsi/F3wUN9LIwxhDW6jlIjZIAmGFijxJC+dCV95aL97UZ97qKqtLSYIj723VYrSTqcCoCXwbzd0g3JWm4hshg68i32VOmkGKojZF/yZO7/Pyx9uWGatzjfy3O8+LBDzMY1hjVyN1maF6pnLWohZLs3XzCXAokHDq/+YuzXGqbisDJzyTKxCAqBdMv0Rn4yW7jSo5y2yH8uwArC0WEm+1w8qzMx1tvLeWSuzhFK6q+FjvJLqxCoF8E2M3HsPFkHh; 4:cvRaztSTjl9TkUREggaA9iwi8tXyExB1H+80U1h+TP++RaRwc+62cQ2NlP3ZZRfNzuN+JkHMWL6BLpkAHk7wCsrRwcEeIHsuSHVfhdfD1XGgRBaTBWdic5hLImnD3RCsi4uFm3iBszMAziIdvkwq9Y0bn6p6FfgdXqSbLpb8iIQMKR+Rvtm0JMSsg2oeMY9glnKTfo5zbx+x/7kY7FuvZeyt8EoDehMjJcp1j/pTsUTuFoHtytclhb2H/5dNkWrNu3nXaUTJ987NgIga1vusjw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(5005006)(8121501046)(3231022)(10201501046)(3002001)(93006095)(93001095)(6055026)(6041248)(20161123562025)(20161123564025)(201703131423075)(201703011903075)(201702281528075)(201703061421075)(20161123555025)(20161123560025)(20161123558100)(6072148)(201708071742011); SRVR:HE1PR0502MB3659; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:HE1PR0502MB3659; X-Forefront-PRVS: 05134F8B4F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7966004)(366004)(39860400002)(346002)(376002)(189003)(199004)(6916009)(2950100002)(6116002)(4326008)(16526018)(6666003)(3846002)(47776003)(8936002)(76176011)(508600001)(8676002)(81166006)(101416001)(97736004)(33026002)(86362001)(55016002)(4720700003)(21086003)(81156014)(105586002)(7736002)(66066001)(25786009)(2906002)(69596002)(305945005)(5660300001)(106356001)(33646002)(50226002)(51416003)(50466002)(16586007)(7696005)(52116002)(316002)(53936002)(68736007)(36756003)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0502MB3659; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A: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; HE1PR0502MB3659; 23:EKxFEyG+kXNdeYVcwbVUF89c63zsrTxeFPo39Ml?= ZYjTOHEtb/7To9soc2xgXFy6bRFScP7zdPvFODMt3GHZtQ+N9n7yJtBASY5L2qz/mSdjiuCxtEOKO1QLlCQYJqBMRHGJlTaGxI7Y5e43JssDPj+wNiktz0Bdta3ArfziAZIApj1aRhPAvrsXPVaPzBHO2B3u0OCpgGVI6MfD6sDkrDqp6PHQevZx+t7mTxnzpOoEtLW7TI4O4ICm6YHoLnXJCjI/AFmrt0XvvkD4IFnELyIKx8Q6Xq0VLwX5SHVRyCEzsbSxGtEO3BgoVx7Y4PmMa1vcvmFyKbO06pK6K7iBZ/2FyVKnYJeMy8adIdnoYUMJb7/unl9IBFHdWFng1+jnyfXiUQ1kUq38jQw0Oa7cVyqs0AWylWIThVdeqcgMtEz+tGT0cnwux1SJ8+3BedLixHCzIO0QEvES4kg1VIkMsE0SwpEkFNGcpul3+k1s4094AXROV6Wdz55CGLaqw+f/BDLxOfpUddb6gHUnKgQVMfPqpIdefm7+Eqx4wlXOugRcOWx29oMO66o2vFbuUs27ZcK9c6DbhMk1fqqtOk3mfgGjap0r3TQ8Vm4PvF4OVGmGX9u9mRQxLyEC8we2OLcyOqto9XSymmILFui/sWY9nL99WDyRrElkNq2vV0nV/KmDywUmO4hzmgkwQ1RRHH+KAFVGT+WaKfMVjtZUM4N/wv1x/OojuJ/IJQQ4rWRfWBk0K+ln5xs69rp/Y9esUReleJXkltlB5bQDOJQL0TAfewJX8XhKD4EzLxAbyBfy3UbBJ49zBqITFCQtxvHZHS134cZQStG1VZPjhLLS5HF9c6Am87gvNqbrKs7hIm7yOh373JQjyNK0A0/B0k0qG69KLXDLDhWTIe70NtE/e0kq5hHCd8awUsPFe/8Ug7oVSQIvZ3dEtzSILXLwGhDe7038OivOf7MysreOWgMVD9QvUWwdksS6GR3ByCxCsOe2UA8S2c5d28Sr3/A4t5jN7ptSrvhGgkaYiyT6apieUWs8gDjoNZhuMzNnFeUbH8e1/Pize5Giu2UKxtSTa4OK1DyHuz6TpCgDZ88kS3dD94tIe/ELT3ArwJiJsxJlMgM+/1Y39Ncde+Cn4Lgfgz1quwX6l X-Microsoft-Exchange-Diagnostics: 1; HE1PR0502MB3659; 6:g49jKnLU3lz3t3Kw2lRt1pLTVAkrPJlamI88Z+M1Ivf+yEEbjE6TRfiX65c/yLsVHDPOQgXEvBIzdo+eivbMu7kV532rfAOfzo8uoOtAHnab/e1JbRRs+7RfsJE//AGIwn6LHEzJgrlKNllvvi+Va3hINmEwlam+D8R/EU1g+oicSX7dYYaChL/o3R/XZ8GDGWVTO35Cf2ZRlCKWgRkWYvhIR9MgFwHtq92niZM7fGpYC6dMj82BwneU+/SuC5s0I3odk329bYEEhHew+wm8EReayDsKuwzCwx5iy1sSHe5zzxwBwd7Po6E1VPMQSUVT59zDJQ9Drz4THD3mLnY8khXSkV3CmpnrSA5VvADel+k=; 5:X+DY9le7A0UQV0VZ877GphItQBRR1RB2rmqzWmjbUC3Cq0LGbVF2OI0ix8DpD9zqq6xS6DQq03JR+cZN248HvlBGll3v5V4D58fdJ3ZFna7W4kIxgUsDa0X4ZFWsw+wKLsnTFt4YfZkcWDgcnI5Fq3Zet9LCqZ6erJkle5eWDVg=; 24:IitjuTS6EkpFRrOlPG3UJsdjA9p3hVSwghpwtYonNz2FMBGxDvuadDH6FJ5s/Mfq/UlHb2apTEzPlEoN8X5WfOvruYCXyJcV+iN2vDffEiY=; 7:ehADfQ36Rx64Rxwh7gt9QMwfgJgKJbwxcgv/SSrd6viY8hglLnqaTgkfPbsDCnNRKnULBdvPEiMrN/HionTW+wcEN0zDZwiHsUtL22na/i2hdk5es4jgu4ytosy/tk3fwr5V9EYzNtetDYuycMxKDNo6qT0+8/ZTc21K548o/dXwEExLKp/JE1VOHWnJd0x0hD0ewN3AeSLLuGGp9spg3fP2SqdaMle0x4zfclFFFkMkbSisgwcuHDMZwCkNaCD9 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2017 14:48:52.3914 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0f6d138e-fe61-4c1a-2d5e-08d53cb87817 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0502MB3659 Subject: [dpdk-dev] [PATCH v2 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));