From patchwork Thu Apr 13 17:46:51 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongseok Koh X-Patchwork-Id: 23632 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 [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 9AB44316B; Thu, 13 Apr 2017 19:47:07 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0082.outbound.protection.outlook.com [104.47.2.82]) by dpdk.org (Postfix) with ESMTP id ABFEA2C27 for ; Thu, 13 Apr 2017 19:47:05 +0200 (CEST) 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=5galwB8XfbsN4T+GTTdezIBvKlhOkxi0FXnU9zjZero=; b=aPcLGQqcwJfraZkONAyUyQvtkBPq1v/fuSBHCZIZyWKhrGdyXqdld+G/sRiKYOeCf7TeJtchFEvEP48kf+bLUvOJHPrIVao/NnOUB+PSYmEKwuXqhdsBPpA+B2TAvkOAHlrifaBUkaFwU3SFD/f7mkIbuzU6rdcdvWj6qDlh1Vg= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none; intel.com; dmarc=none action=none header.from=mellanox.com; Received: from mellanox.com (12.250.235.110) by VI1PR0501MB2461.eurprd05.prod.outlook.com (10.168.136.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1019.17; Thu, 13 Apr 2017 17:47:03 +0000 From: Yongseok Koh To: CC: , , , Yongseok Koh Date: Thu, 13 Apr 2017 10:46:51 -0700 Message-ID: <20170413174651.27860-1-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 X-Originating-IP: [12.250.235.110] X-ClientProxiedBy: CY1PR03CA0034.namprd03.prod.outlook.com (10.174.128.44) To VI1PR0501MB2461.eurprd05.prod.outlook.com (10.168.136.12) X-MS-Office365-Filtering-Correlation-Id: eb282800-cc00-4f28-d81e-08d482951920 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(201703131423075)(201703031133081); SRVR:VI1PR0501MB2461; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 3:U/r+xmUO5+Af0am3QYfLK/TAQ9dsPv9EVS6HSOwqCPDPaCTSbn/tfaHGF8n1H4mviPvSLtxjr1ll7hl/XftIkWwFD4Qdozw8VpHN9MvhK8iuiLGJlgbpU9rNGusKkQ50xTVD9eF3IK90bKiXYnlsnqtPcFUY0gjRc5l1eJDS5ILy/IY8xMP0giNENRvNSZorVJ5HmPOg4m+MdVgfyahh0XEibYUg1IpfUUsd39pRddwdbsVo71sZ9GkrhP5Il9Lc8XNLtpKtfZ7ZRykiOKhcQyQ8scCmV5wtSXU0RpEfJIk8/UKw5pkVvZIih22envAQSkZPSv+WsowxlNYPce42Q9eJVSqzEMjP6YosYO5L9WI=; 25:nliaG6nA/Wqco0sIYAbCFVdFfnScn7K++0Kwl8ERnjafay1OWMkqpa6RcRnV+Iauih5WpodAPRc5v0t5MmUvCayKlCnO/TokGHwcUC5mSI0ZwrZw4+VYFx3QFQj6qJ+leWfolFIlw+Xr2RwFG1IyU6C9OoYDj2yAyiwRftrwtRebmukFhvIDUzkWOuyqJxn1BbxJBKf3Z9AhqqbzMLp21rtN8bTJO2GCGUQAXbKXIPv3UBs1g92mAQshbNr+3UtMzJ67bQRQuft4PParAm4zo1vedPPtUWNo2WWf2ssqcs0AgzZwV8y2rX9JH7Q73d3AypIxVyo3wrndmnQHsWh4tAN0yuW+bKfoT7fKs+WQ/U24LohqZ3wGE5jljsz/EbHMx2iReIL7n88SaR4k8yUWAGvQEDjbKsxqD2WKWiLd3zIvEiqoKeM6se+LtnoYcl4FqVMhvcgt8R0tltcdI3IR/Q== X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 31:+9JwLFocxx39NSvmDhnz+FWtmPgXst8ufnzQzjohLlqc8458Py8oZB6Hl33Cg2kd0cTQuq58UVHSLDWfgYfivXE1s0VuoNPzoRRvtQ7K6UHmE5kOJBG7ZWql0dy7d+2ITr68KH8wWpPR6SY6MMXryZYGNqxsFe0bII+s9wt2e33ppQX+zrex19Whu+BTsrTIRii8k9y/fIU8w6n7C1LazXy57dNX/q8XUG4dSyx7o79rzzM6VwWILQiVLVog90fL; 20:6iCPZqkTcLdPiQZCNM52zn4ssHB1/Yunh2LvkFqAcZn/rUMVMkRXcfLDd0fDLgB7u7y4273U+OMCUgrCf/ktmZQEs7BE66GSqwQCf4d4eNokSxmcjd5V3YNrcvHgBSmerEQP0iiF2IGSSI/8NNXNouRcLLZWjlW9HJKGmDDf8XoEQe6f/GmCEiRZ6x4XXV223AVPnYZPyE/z7IA8Jtbw4exgHZCrx6e08AxrUaLwIz8+/N29MfL6xJmrfxRQrEa+YvTGL9tc9KixGA7aC+VJs4HccObnw2NYXhWnNtre5c4fIp8vLvLrBf463U9mGkVgiMmvj2sArYQ83+MsJquhlA502rO7+bVKngOmcrjRmis2oiBeTCVpBqwP247Iuahv6KzY7C22aykw0MCuj8S2ikqgGHt7d2B+smwPMyKhmg0WO0IbxeYV3wQXOvSfKQWlRA+nljPOEyc50YB43KOEhnn6neP6tLLLemjIqZegZRxfNn9vWK9Ywn7O02D+Ct3V X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(6072148); SRVR:VI1PR0501MB2461; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0501MB2461; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 4:lFVbAqC6mxwn23ToVpmukkoCNqNogKga00HFB9pJWCcijKSwEn+MBXgL8akksCUEdrHGD2gfUoZpVU9A52Q9uIB5ZVMSlg2r9vDKiQn9zvq3GZLEVirmEcylEtukBPxcRx+7Z0HIm58bGmde0PLUK1JEjd/wOwGGhxYMXyFLhySKC3Yh5L68PgxL3Zgt+wbjArDaWXie8EV+s8IZ7bOhtPNbFLnwo9cKiQ0UXRIsF51CdIRUWFpYGTuUD8zWxK7LvgZW8TcrbMv/JCpM+BbK3HzYtD1XMnBUcHTxuno9xg1AVcpm3SHsk+arU39Ac2/NvKw4bA3GIW3IdMvMrHMMGXs17x7liBSyu2AIBSKTno0jA1nBjR+x7+V9354Jy5GbrOom/2Uu80lWOzMUpO6MRfekJ3otbPIfO9crt0BxIrR3XJMG6SJM+YZiASMGP6pE0suNTHbfXKNHnsIrlbzulC+vDgBFGppFixeHlXioc3qYkcMsLjapkB+ZsKP3TRIWvWOWuaQDswJs0zuATI779W0KXPPjP4kvJmXlDDzpUKBiq19LKMyDlMf4ETBWdnSsF6PeZngO69PUkGYenKhUiITvr5qb6YGfq74Alo5+/JtJh6bAN9LKmcv3C+zFrTwEq3txMl8mgF/hxnQxghrCpS6MS4MYBjKxFCtN8nfqYpqLLYZnGH2YRNSKqJYAHSippq7gRpmE54Il+iW0xjFd/AQM/iQcINWUHQV6ryrhZdI= X-Forefront-PRVS: 02760F0D1C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39450400003)(39840400002)(39860400002)(39850400002)(39410400002)(22813001)(107886003)(110136004)(6116002)(1076002)(38730400002)(50466002)(3846002)(55016002)(54906002)(305945005)(50986999)(42186005)(7736002)(53936002)(47776003)(4326008)(6916009)(81166006)(66066001)(36756003)(25786009)(2351001)(5660300001)(50226002)(189998001)(8676002)(6666003)(33646002)(48376002)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0501MB2461; H:mellanox.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0501MB2461; 23:/jFaxFCYyF44MiQNALG5VwzKst9/mmnhBabxOXI?= 2p9q1YFtmDzzY64U4qMtHs3d+fu0oIEMO4xoqUthOqxf6PjxBTdSqNANeCwclQWbHBKYEPkJlFvUHMdyVf9RS/TsRxGHsgQ6OlrtJhhjbxKExNUtymo5J+FbyjLq7qlySRNDD2zH+Mf2r9cf/G+2EnDog6exWPF032EX45iAbDgQ6FBVqcPSwsqoFZVWHs6vVTzixId3muvgleTNg2oio4JgXyzzQpoVzQDBXje8aB2Y2GyYnxirB+OjlhXhAuT5QGlfDocuCunPVC7u6BD2lZry9B+4OndlqQkPfSPk943U3WgKQ0eb7dlm/Gmum4jdXx/evgtWxoxgNhKdt548G6MRGhDI/BEYe1dEI20/6AnSj/ARxiADNdo4FCK36qGJ+0B76ACAjhAbYoBymFKE97ol+BpYmlBW4IauZKe0Jko/XrY1HTgyHabfdO7rIWXN6zTTgyJknQrTGtjsQQzl/7jJ4DMlr8cFnW5gzxV/yuIZibhDe8teLS9inW9DsoCyV2lcp8O2lY9QLXFD3Newy5g5o0z5MtYuDWfFmFblnogriSmVBVSsVQ07CzMYFpF70allPDy3/4Fs4dxfz9pIW1LWBzFviSKo3AnRhRXN/9Z+3Tr1nPtKjAaG2jazqNNSK/DS5RU+xAIHaZvjGasONGzKMCKiGr4usQ2RDyJhC8FZIVVTL8aHqs81UBGVF3h6iCmXFUHH6SnAgT56mC7242VzU8d4g9WdxMlfKpepsMGGboZFCS00UcFDIawvr1c5m7FMvpNqk67aXltSGi/RTqdssCIZIpp4FeiVc+zqY+ihjhiCvBX6oLiBIXh7kMj7utcp2z954+LK+FqtWNcgqXxUmZPwJ1yQYWebOU3frzMWgU8dCSuqKsu9nirC52j4EzVOQAnK0TSCLC3E/PtDztIyvcTcruEChVBSET8p9XMjhpQ== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 6:FNLAxceCRzQn8iRf73S8cFppSrI07kOU7a3DqsWIGT3P5oDtpmn5bMAUboHcvGUmSGxAS/GwXG7Xo8AAJqEmQ0uRxS2AKd8yIAM1QUv8aStgoAqb3SlzcZqL0Ql0kFH5DCIiFJgZslVB8ow3Jp83qIh/5tNIfBV85NsRqM+q56BdKn9NpiqpLlEYIWszM6SICUKWmRuaovQQ6kvLGweIdQLspLnllTH2aEq0IR/HwDdpEUV6DdIkSmEJ7yLqoHdPaLrvMBhjIJ5ZUXb1JF+l1Z+OOu8MBU8BAEuQV1+rEwcBpnZAoyAWzBxP7BD9LJmPcDRfmW8TFi688Ya5XxYV7VknxevtrzAy31YDBxyNO176Uv8vWTLBlMvbSKU5hGi+noLBSKKppYenG41cIHGFlCrEVCqp7Z17PhyYSbqhv1HMRA9Xjnzdl2gmTPEfeXPMG1B1BPcbT/pOWWRHskkk40F+OAEt0aT2p5pP7cqREYM=; 5:q0DLAotNSCIrKG62cil2vj73lGdt1iX777a7pO0L2FEeaK30QruSGWeEHZmg6gvxi4H/I2/q4jVzXTMxZ9IUnpx+reCV0XjqrstHK+9WdNra3Vargc1eY5sNGddbD3c0lKvNK7fUAble6kmSJ1WXAg==; 24:+t+5LeQBdhY6HWE1rybokJtaB0+IStMyOoatLQcIT2lEeOF7Xo5Acgrj/7SZ4yeqMje0ncwZiG6WTDcZjhfCIQiiR/3SOu4jLiN61+zThm8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2461; 7:dpwJYf+5DF67GbCIJBp0YItimU7pqB/MpXS0CvN5toR6EWqdAlTxmGUmkj6YtGGOC83n8e2Is2RgrQXtMXxRNxHr2gRAdxOSOhFQQwrsxzTFsFCFB9hV+PeDwuQl83NwF09+C68ctAYRCBoTr95PgkvPEpJ+Jzzje3VWZdV3+XZn5G55rgvHEi8ydqPH7ohAtSsYtncoBhhUAyJ1LPVPYdz51i9UfIJb4JiYPhyHuWHDArpV3vFZKsqP2uSumJZM73kLckUjhugTFGD15hfEpMwv+3D4JddAEwtIxxxTh6YhnpYLY6kf6qYebhPE8fvckwsPPJKSJmJ0GCM9fo1q7Q== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2017 17:47:03.5982 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2461 Subject: [dpdk-dev] [PATCH] net/mlx5: change calculating inline room for Tx 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" Current implementation is error-prone if the max inline size (txq->max_inilne) is decoupled from txq->inline_en and becomes zero. If it becomes zero, HW can crash due to WQ overflow. Signed-off-by: Yongseok Koh Acked-by: Shahaf Shuler Acked-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_rxtx.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c index 2e208bf96..6254228a9 100644 --- a/drivers/net/mlx5/mlx5_rxtx.c +++ b/drivers/net/mlx5/mlx5_rxtx.c @@ -499,6 +499,8 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n) unsigned int j = 0; unsigned int k = 0; unsigned int max; + unsigned int max_inline = txq->max_inline; + const unsigned int inline_en = !!max_inline && txq->inline_en; uint16_t max_wqe; unsigned int comp; volatile struct mlx5_wqe_v *wqe = NULL; @@ -685,14 +687,14 @@ mlx5_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n) } } /* Inline if enough room. */ - if (txq->inline_en || tso) { + if (inline_en || tso) { uintptr_t end = (uintptr_t) (((uintptr_t)txq->wqes) + (1 << txq->wqe_n) * MLX5_WQE_SIZE); - unsigned int max_inline = txq->max_inline * - RTE_CACHE_LINE_SIZE - - (pkt_inline_sz - 2); - uintptr_t addr_end = (addr + max_inline) & + unsigned int inline_room = max_inline * + RTE_CACHE_LINE_SIZE - + (pkt_inline_sz - 2); + uintptr_t addr_end = (addr + inline_room) & ~(RTE_CACHE_LINE_SIZE - 1); unsigned int copy_b = (addr_end > addr) ? RTE_MIN((addr_end - addr), length) :