Message ID | 20170503065535.188899-1-shahafs@mellanox.com (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Thomas Monjalon |
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 853025A6E; Wed, 3 May 2017 08:55:44 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40054.outbound.protection.outlook.com [40.107.4.54]) by dpdk.org (Postfix) with ESMTP id 2C0275A6A for <dev@dpdk.org>; Wed, 3 May 2017 08:55:43 +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=Ci9yDiwXwEtFuwUkPxdOhUU2dGXXiOLZsF62tuY3ndo=; b=wO3rx+M4NDk2r5gKwBoKf3IHlA1PMfznp2doWyuFxiAz68G8OOTr54rdU5kGq29ixYsGUn9cyFsc67KaEgVQfsyV02+vV6jLw0KYrJZUIVK4+o/cnMJuJvMRDLExhlYvU7M5AjD7ZfMb0z07/7DlGFTfhpvtkc5mYq+JCg44CUQ= Authentication-Results: 6wind.com; dkim=none (message not signed) header.d=none; 6wind.com; dmarc=none action=none header.from=mellanox.com; Received: from mellanox.com (82.166.227.17) by VI1PR05MB1517.eurprd05.prod.outlook.com (2a01:111:e400:596d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1075.11; Wed, 3 May 2017 06:55:40 +0000 From: Shahaf Shuler <shahafs@mellanox.com> To: <nelio.laranjeiro@6wind.com>, <adrien.mazarguil@6wind.com> CC: <dev@dpdk.org> Date: Wed, 3 May 2017 09:55:35 +0300 Message-ID: <20170503065535.188899-1-shahafs@mellanox.com> X-Mailer: git-send-email 2.12.0 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [82.166.227.17] X-ClientProxiedBy: HE1P18901CA0022.EURP189.PROD.OUTLOOK.COM (2603:10a6:3:8b::32) To VI1PR05MB1517.eurprd05.prod.outlook.com (2a01:111:e400:596d::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1100fca7-80a0-4efc-b7ac-08d491f169fa X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(201703131423075)(201703031133081); SRVR:VI1PR05MB1517; X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1517; 3:nccC+ufLgbxfahvJoVx9GGoWsBms4yWAZPnMSBwLOUfjGVNdi+T3LB9rhKVC1ReHYqKs5ZpP81DPoiE2PiK4VKq7qMSougibRn/TCoCsG0kY4FL2rhs9mkr/9yV/2rB87oGMOlWRpOvWiHIRNyLX5CKg0yu4GX2bUdHxVm4wWqEAKjQZHy0fDyPSEdnvfB/XG0iHKteXoxbMgY/T5pZhZfwaVKW/Mj0idXOrTqt8dP4La3M0Ui0tA5IPmlldheUTe6NaR8Vj5d7mzpAzsnsgzJtC6LK7EpeMcgmtBe69MAVLnA+myoPtydl9WGWSKXprisSxjIJ0s7JpreBzQjQyP8bpfEDgo8JP2S5UgGA0MG0=; 25:t/M1Vs0Ijw7Wad72JPK81qCkOQgtuotO2gKdpbO1haUeXZKS8AGYev/hgOIqp4EOilyht1U36Q3pjnwaHa4fybsOxfLjM97aUjuC36pJ9b6kLlMuwwdEDvx6MfHfnd62/dn0t0utV8peZ5aOxlhH/7ewzCh36nznfskLQHA5x8TcScV6LS1S6nDe+3QFsxDrvoLTn5M0vKUtuqapIdqMIPguu7dAhG15cEnZC6v+YRhrI4aN5Xj9Wd/PlQCCEtQK39e/fpfUsQm5M7URIlHxo9MCRuUFlQNYNDt4EoKt8JjtnssycXuCGZbElbJ8NnZgo2Nw3tkCORUdO3kFk8FsYU6wqR4XoASO1BsAs1sIy+E17og+q88zTy7Ie2jxBUZ5G0et0H0VHj8qH0jCPvZJFQcEUyEq/w0iaozqm+kmKvGB7wqcOskXS3ekdBp7LY8zOE21lY6tJzBmi/zgwBRSzlXg2w7W+6eO3URozVaQBfs= X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1517; 31:SlRyU1BUAk/D2ITuNO+rGYbuzoGIjpmlkf8RlUUYHq4spOM4KZABO44qHg7ZGliFwqfG50NAFul6GIRZg4ZU2LNsDIeIuIxNRC8MNRRr7Pl70ukGCdf+Ebujhn8Uea69WrsQBltiZzzbdpSANpsQs03EpD4LrQRnZJvLHXGaR0SxKSVRe/w+KKbB+ty0dqXE8nF1prWHXFOIQcGDGRAbyPGZdL3/VNMqXS7jRiu0IlQxZdzrmX/MIKQZQEM7+u5P; 20:okPWhaDFBfTUrpSVUrcNunYSTPr6PW5jFfrTGRoa9ynuiwXSYFDQQMWBpgZbr8gqLRZGkiiGdClSUDQsx75tt5UR69Fkd3jUZROk+7p5ksizpx2UIMXpvW7oHLBizrKbe9FtTYA12u4NKd8jNMh+FJvaxVz2MQ9oz/deCYoXWyB+fB4QwD7WZiiS0ML7yUrN27TviA5TztpAmLwQK0wnM++XvTrA9WuEC6seyPzno62UyIY79P7LqvsjOz1LXTnjwiDUuhXMbMODj8NzreR6C1emRisXQo1zE/bDo550D0uyF5Ovt6v+T0s0As+h4EPU+rxtWU4M6iS3pQaVmd8GtWUPMW1tDh4n6Z3obvWjDHfkamvo2o5O1y6qrMBq60siBVPpwfLyRFjTbbjP0Eo7sUBE+hYKwZKhhu+ZRH6jXXMU5UI2Wy7L1iWCFExd5reV3A4+CluyhX/c0PXl781RSxPFor2IuZCDJNBxyYTdnhih4vxDBuZK4rpSd8n9B4Tu X-Microsoft-Antispam-PRVS: <VI1PR05MB1517C8E28E627B8BD5FB2411C3160@VI1PR05MB1517.eurprd05.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123558100)(20161123564025)(6072148); SRVR:VI1PR05MB1517; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB1517; X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1517; 4:EdYxVKjN+52UZLUioh4SneKSluP2URsH6dXKxAwtsuLiLq9wzcTRaFWxh401XZs1YI5xzjutZ4toVZ4rJaJdp5DT+7KIXWWD9E+KKaqdmVm6/VkIFborixAuA7NTkbtEFlzFisanwvdDBvyxoERDm/kLI2S13BiEBSHLXvcxLI13q2lkbgHbxttzHpRpOxN0b7OmykU53HFlvwyhFO8ityFLIfqWzrgNO8j40ADfptPKQSuvPDqJSCFWhZULNvngDpIUlrsjweYuVu2cbC3BEJ+ahFsR0FU/+HmV+gkdrmiptBu1GF/ibDphjOKUavpizr21SrcJPi2RQtsq7l9Ca5Zn1xqvpwTv67lHYEzIQrIEwOweVGMpi+9JHOUshzxj21s7Io/xAIfI0KjvxxF77q4mSB+OCtPHeZmQ6SAmTuZny+GudbqCVr5smfiiDAAw3guRykGn+2u6UvYjPUHb3c6pvP9Mh7mkaWMtUePeNQ6iJcG7fHPPe2tuiwoyLm3sYMmx03gpUt/iXkpCYRqQbH82yWBPJuAFu6rMbhwdD4+37qO6S/7YoxYLfKPyVt135DW0XXoFwiks9YXrzeOophEsXQMHJ4mFARJn0XnzO9fCkAeSui81/KDXEI1bfYv5Z9qWZpj5Ipuv5mM3dOElJwKdgFf66iurRc7cqu5CRldFXCz/Yudu3uirob8u2qVIVCbGFzsKZ2fB6zm7k3kEbrX9esqDgTennEhTb/TDHnj46Zg+3ZlSsiOaQYYt6NKiN7eDll73pMD7U+x2G9YVYVqmJmsN8cAWqQyR81XDjp5dO9TvyaoUazEn6GLpwbUS X-Forefront-PRVS: 029651C7A1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39410400002)(39450400003)(39840400002)(39860400002)(39400400002)(6666003)(305945005)(7736002)(478600001)(50986999)(33026002)(42186005)(66066001)(1076002)(3846002)(6116002)(189998001)(47776003)(53936002)(38730400002)(50466002)(48376002)(5003940100001)(81166006)(5660300001)(33646002)(25786009)(55016002)(86362001)(36756003)(8676002)(4326008)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB1517; H:mellanox.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1517; 23:aKhf6w9fWAa6mu7Rdd7TM+WdLeWcw32j7aJ8++44ZjgBzauJbiAayw/+qMVHZqMAuqBRBwdl9bBmjlLuF+kIXBqmTk3s7U4anrd5yBPc9wLgio90/W7Du3DsTiJybWeyXu8QmUP2gtn9QKxrJ7lh9U67p2HtX29se3Sv36wmRdOAPElly4rAHTXz+gdBRw+YKwHQXvx0n02mVgA5MtCZV5s4LE929zOkUor6/j4U6TQyYC/3qhQpQI7BW3uWz99MpIaP4nLB+y4ty5EUM/IZSrbKClukMPXY/PdeDofWUY3T0YlzOllGQbnTSEjF2rXGalIPGVpgW8dCEKm6DCaw9QT2enu5TZp7AUuAIef/daaT8dRoLEI3GXPK+7EEMYeNU5EVTjIV4ZGY900NrL2DYs66A7tjfGix4cLIaFyZo7JX/Qk9LR6VfYHDf2GLotNGkaYHzY01QDPO9kEhL0dN3j44b+qc8rh5ab2t3r9h/+BIgWpC9RY94CJvqP9xAjmRiR5Iu7QI06CNPAY3gxOSyJPzchJrkxCi/1yowqnY1OK0aUYdgHyiyqTI/bc7305G1nQ0RjBWWvfBYU8aBfzAWJk6aKp95PA0fLNEi1SjKUYY/QNfn6VAW8cDUpsWXGFws2RsgrKHc5PdBbZ/Z2MtprKWvhBxEf/LX8RrQxVC1QCsI/xfP9YzsTjDFNTvIDEQaoYIuOeaG5pUm7cRh5cVp3HSALN7puM34hehP5tfO1ZJ2mPZpuuQl8r0XhU0B5dCnGbw71HeC8oDjbb1cg7VZS18LhwIdMfWblgILLPRDATuPBlle1VVpRzqX7pJRhY1wnK7gdKz3GC2K2bpt7RbgVbSRRAjAYRhZ0cmU9a5pGYIRzncpinWPoTvVPfigv3kZd6HHC7L2b/Kodnck5I3xwDM2Ocsx8paSKxyjCl2KHk= X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1517; 6:mx8cV0Czkrlm7fSYpfsRK8PiwpPhJP8pM+UaqxaeONhCLZQdjKe1pglO6zxeQq18ou6dVOD0uPaOazUqfKLjcxGgYXjGp1YkMQHJIYsDj4+Z9yoMUgSqAZz/PRnmw0KuN/+z1j5w3zEXSI3eMmSZefuLC08Nu+ryqhjRM80MFrNyyTnQLMOu41YmUJnYc9kbETE4AiMuWibGwEoT+/NE6hxigUGMTaEZbNX5ALCnzX1vs8anYxEpq5j9H7w+odBqqx6mYvJlovoJyh3rxpOom9/2N8X4OwOUUXqtFoBJXE2UgidHl9KdmHCRUmK5OIeVqQ0MaeeeSB3/XgJsQf98vB9yIzQnEIRJ9bEwzfou+SwAgAN+0XKLAjhcrInlWqYg33xvDhLzQG0CudHbJHG16mcfbYYWvPQRMHmSOhn2drCfKVD4fYKUsfl2iqrUbcJPbhSTIGOyuclCpE+5GJlvqIt0aK0SfM4KDdDhPvJdd6MfsP+k8VJVY8TTSs19/NWqjqWbl1KfOei3mPO+VxCX1xs8ZUeUjrHramXHNVUvlZw=; 5:5ENK8DyacXWZsRXsWXIexYeTDm9rk7Pz0FLOLsgJWaAasXnzrXjJTay+0JvlwopLEEloqpcPrCFeH9Nk0/jnCAvCkJ5mt97GIQCp15qvATrDaH/akWZwfiL8eOFmp/K2anZrWjZSB9LMMlyS2XYAaw==; 24:VXn4vA3OyBUj30BmJACCEs7vfWyAGiZG1GxKzTTCFgqQdEJAxTmkH5ra107fB/K8HJyUYStv9rUWbXhX2FrKbEoHKP887i4JJ0OkCLEwYu8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB1517; 7:jE1c657hUapnZILDawzu55NgITV3jdkuA71SOZXkHpTmTywZhUH3TA1LslGV4ttPRA4+U1wANiP8k17Ciar8O7MSLWtqPhaMlQxpr5HrH1g52V/E9RhDNi17GRFNkas8Vbn5vFhFI9AKhqVyO7MkInU1O31PIk2EmCpw9xSiDt2YfbwIk91+TLAKBmjp8S3u91SCBR3Si7Y2N9SayXk9K8BcChzLBeZQ30Z4+Nv4dpZv3M017SzqSq14eoiBl9SgqEIt90p6/Cy+HSmChMxxrMglPUzz9x2vCCrUElVfKSZPEREu2VBPApgS2a9yY5rx2zcOvAmmmLlfd7dXFDjyeg== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2017 06:55:40.8673 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB1517 Subject: [dpdk-dev] [PATCH] net/mlx5: fix Tx max inline with TSO X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Checks
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
Commit Message
Shahaf Shuler
May 3, 2017, 6:55 a.m. UTC
When TSO is enabled, Verbs layer aggregates the TSO inline size with the txq inline size for the Tx creation, while the PMD takes the maximum among them. Fixing it by adjusting the max inline parameter before passing to to Verbs. Fixes: 3f13f8c23a7c ("net/mlx5: support hardware TSO") Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> Acked-by: Yongseok Koh <yskoh@mellanox.com> --- drivers/net/mlx5/mlx5_txq.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)
Comments
On Wed, May 03, 2017 at 09:55:35AM +0300, Shahaf Shuler wrote: > When TSO is enabled, Verbs layer aggregates the TSO > inline size with the txq inline size for the Tx creation, > while the PMD takes the maximum among them. > > Fixing it by adjusting the max inline parameter before > passing to to Verbs. > > Fixes: 3f13f8c23a7c ("net/mlx5: support hardware TSO") > > Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> > Acked-by: Yongseok Koh <yskoh@mellanox.com> > --- > drivers/net/mlx5/mlx5_txq.c | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c > index f80740a13..24bd8c615 100644 > --- a/drivers/net/mlx5/mlx5_txq.c > +++ b/drivers/net/mlx5/mlx5_txq.c > @@ -230,6 +230,9 @@ txq_ctrl_setup(struct rte_eth_dev *dev, struct txq_ctrl *txq_ctrl, > struct ibv_exp_cq_attr cq_attr; > } attr; > unsigned int cqe_n; > + const unsigned int max_tso_inline = ((MLX5_MAX_TSO_HEADER + > + (RTE_CACHE_LINE_SIZE - 1)) / > + RTE_CACHE_LINE_SIZE); > int ret = 0; > > if (mlx5_getenv_int("MLX5_ENABLE_CQE_COMPRESSION")) { > @@ -307,16 +310,22 @@ txq_ctrl_setup(struct rte_eth_dev *dev, struct txq_ctrl *txq_ctrl, > priv->inline_max_packet_sz) + > (RTE_CACHE_LINE_SIZE - 1)) / > RTE_CACHE_LINE_SIZE) * RTE_CACHE_LINE_SIZE; > + } else if (priv->tso) { > + int inline_diff = tmpl.txq.max_inline - max_tso_inline; > + > + /* Adjust inline value as Verbs aggregates > + * tso_inline and txq_inline fields. > + */ > + attr.init.cap.max_inline_data = inline_diff > 0 ? > + inline_diff * > + RTE_CACHE_LINE_SIZE : > + 0; > } else { > attr.init.cap.max_inline_data = > tmpl.txq.max_inline * RTE_CACHE_LINE_SIZE; > } > } > if (priv->tso) { > - uint16_t max_tso_inline = ((MLX5_MAX_TSO_HEADER + > - (RTE_CACHE_LINE_SIZE - 1)) / > - RTE_CACHE_LINE_SIZE); > - > attr.init.max_tso_header = > max_tso_inline * RTE_CACHE_LINE_SIZE; > attr.init.comp_mask |= IBV_EXP_QP_INIT_ATTR_MAX_TSO_HEADER; > -- > 2.12.0 > Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
On Wed, May 03, 2017 at 09:55:35AM +0300, Shahaf Shuler wrote: > When TSO is enabled, Verbs layer aggregates the TSO > inline size with the txq inline size for the Tx creation, > while the PMD takes the maximum among them. > > Fixing it by adjusting the max inline parameter before > passing to to Verbs. > > Fixes: 3f13f8c23a7c ("net/mlx5: support hardware TSO") > > Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> > Acked-by: Yongseok Koh <yskoh@mellanox.com> > --- > drivers/net/mlx5/mlx5_txq.c | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c > index f80740a13..24bd8c615 100644 > --- a/drivers/net/mlx5/mlx5_txq.c > +++ b/drivers/net/mlx5/mlx5_txq.c > @@ -230,6 +230,9 @@ txq_ctrl_setup(struct rte_eth_dev *dev, struct txq_ctrl *txq_ctrl, > struct ibv_exp_cq_attr cq_attr; > } attr; > unsigned int cqe_n; > + const unsigned int max_tso_inline = ((MLX5_MAX_TSO_HEADER + > + (RTE_CACHE_LINE_SIZE - 1)) / > + RTE_CACHE_LINE_SIZE); > int ret = 0; > > if (mlx5_getenv_int("MLX5_ENABLE_CQE_COMPRESSION")) { > @@ -307,16 +310,22 @@ txq_ctrl_setup(struct rte_eth_dev *dev, struct txq_ctrl *txq_ctrl, > priv->inline_max_packet_sz) + > (RTE_CACHE_LINE_SIZE - 1)) / > RTE_CACHE_LINE_SIZE) * RTE_CACHE_LINE_SIZE; > + } else if (priv->tso) { > + int inline_diff = tmpl.txq.max_inline - max_tso_inline; > + > + /* Adjust inline value as Verbs aggregates > + * tso_inline and txq_inline fields. > + */ Minor nit about this comment, the coding style should match the rest of the file with "/*" alone on its own line. > + attr.init.cap.max_inline_data = inline_diff > 0 ? > + inline_diff * > + RTE_CACHE_LINE_SIZE : > + 0; > } else { > attr.init.cap.max_inline_data = > tmpl.txq.max_inline * RTE_CACHE_LINE_SIZE; > } > } > if (priv->tso) { > - uint16_t max_tso_inline = ((MLX5_MAX_TSO_HEADER + > - (RTE_CACHE_LINE_SIZE - 1)) / > - RTE_CACHE_LINE_SIZE); > - > attr.init.max_tso_header = > max_tso_inline * RTE_CACHE_LINE_SIZE; > attr.init.comp_mask |= IBV_EXP_QP_INIT_ATTR_MAX_TSO_HEADER; > -- > 2.12.0 >
03/05/2017 08:59, Nélio Laranjeiro: > On Wed, May 03, 2017 at 09:55:35AM +0300, Shahaf Shuler wrote: > > When TSO is enabled, Verbs layer aggregates the TSO > > inline size with the txq inline size for the Tx creation, > > while the PMD takes the maximum among them. > > > > Fixing it by adjusting the max inline parameter before > > passing to to Verbs. > > > > Fixes: 3f13f8c23a7c ("net/mlx5: support hardware TSO") > > > > Signed-off-by: Shahaf Shuler <shahafs@mellanox.com> > > Acked-by: Yongseok Koh <yskoh@mellanox.com> > > Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> Applied with minor fix (from Adrien comment), thanks
diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c index f80740a13..24bd8c615 100644 --- a/drivers/net/mlx5/mlx5_txq.c +++ b/drivers/net/mlx5/mlx5_txq.c @@ -230,6 +230,9 @@ txq_ctrl_setup(struct rte_eth_dev *dev, struct txq_ctrl *txq_ctrl, struct ibv_exp_cq_attr cq_attr; } attr; unsigned int cqe_n; + const unsigned int max_tso_inline = ((MLX5_MAX_TSO_HEADER + + (RTE_CACHE_LINE_SIZE - 1)) / + RTE_CACHE_LINE_SIZE); int ret = 0; if (mlx5_getenv_int("MLX5_ENABLE_CQE_COMPRESSION")) { @@ -307,16 +310,22 @@ txq_ctrl_setup(struct rte_eth_dev *dev, struct txq_ctrl *txq_ctrl, priv->inline_max_packet_sz) + (RTE_CACHE_LINE_SIZE - 1)) / RTE_CACHE_LINE_SIZE) * RTE_CACHE_LINE_SIZE; + } else if (priv->tso) { + int inline_diff = tmpl.txq.max_inline - max_tso_inline; + + /* Adjust inline value as Verbs aggregates + * tso_inline and txq_inline fields. + */ + attr.init.cap.max_inline_data = inline_diff > 0 ? + inline_diff * + RTE_CACHE_LINE_SIZE : + 0; } else { attr.init.cap.max_inline_data = tmpl.txq.max_inline * RTE_CACHE_LINE_SIZE; } } if (priv->tso) { - uint16_t max_tso_inline = ((MLX5_MAX_TSO_HEADER + - (RTE_CACHE_LINE_SIZE - 1)) / - RTE_CACHE_LINE_SIZE); - attr.init.max_tso_header = max_tso_inline * RTE_CACHE_LINE_SIZE; attr.init.comp_mask |= IBV_EXP_QP_INIT_ATTR_MAX_TSO_HEADER;