From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20077.outbound.protection.outlook.com [40.107.2.77]) by dpdk.org (Postfix) with ESMTP id E96302BA8 for ; Thu, 16 Aug 2018 14:14:46 +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:X-MS-Exchange-SenderADCheck; bh=2ugOCZ6301JvWXxyTscUNzRoByZJkD2zfEC/n3KrnLE=; b=cnKyvGa20IcJjN51OlMJAK6druBXw5qBZjwhy0KiwDGijjPOlb6SFDuKkobLOYpJ12mFTX/uPfMm0AoF3S3cTz2T9fPtLyhKXQ/xlUsJH9dbrI3MWRVMvMqe+VkAfcQkKwISFMFGQJqKqO7XbzPJMdMVI6aKwrWU9oiAxVqe+y8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=motih@mellanox.com; Received: from localhost.localdomain (37.142.13.130) by VI1PR05MB4445.eurprd05.prod.outlook.com (2603:10a6:803:42::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1059.19; Thu, 16 Aug 2018 12:14:44 +0000 From: Moti Haimovsky To: yskoh@mellanox.com Cc: Moti Haimovsky , stable@dpdk.org Date: Thu, 16 Aug 2018 15:14:27 +0300 Message-Id: <1534421667-10339-1-git-send-email-motih@mellanox.com> X-Mailer: git-send-email 1.7.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: AM5PR0602CA0023.eurprd06.prod.outlook.com (2603:10a6:203:a3::33) To VI1PR05MB4445.eurprd05.prod.outlook.com (2603:10a6:803:42::28) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d50aa5eb-8021-44e6-858f-08d60371da85 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR05MB4445; X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4445; 3:xti2lRc/c64ZDJO7uQPtoyT6ZKqOl4ou8LYsOoeUkoJPmUsqyhlVNGi5BJe3iLKMTQPsXpg4gtRPoPXeLQmUd/nNpEzOHYvx52fFP4vBD/Rbg1fgHnc82ZVaIyFEjD9JlK9OrY9+7NE2aqh4OlhZCYryrlWVAD79iE5U2YCZaGKN/0TAqNVjgmzCanMtMjkMZtx4sYd3VGbx1A8IUsgA7Y8yay0f9X8D2u0EY+sU+CZKh1akjwrL5XbEjlkw+6E7; 25:ym5WmeOh/7lfNlx5DMPTcv9M68vXzWyvSCKf1r0GRBLzAPeUetdS+D6OWKQstLlENGKPa74WojVCKFsnydQCJIuc/xNnrdqWsFNiHic0mkfwlKvGygZjeU/Z0xcG3B8SpJ5RufeP9Z8yJOJZCyGHm29g4wRpyre+AcwXQN5fRpslrEN0fzp3VlTHPMoR8YTFQP14KDL03S90JuklGjnw+lqvw0IJ1Ae+2tYNbRToFXoQ0YFep16AJZR9iILhZWTQo/jFmCp21O4qoQnbFqjwMXO5DkbwAmOrY9tcZigjvFInvcZYDolkhCdhs6MyBVqfxBz3J9FJaz/nCQz5swTp0A==; 31:vHwUZUEgKcXx71jl2hz2fRJKgsC+70r0CiP2D/H7AGa5beVLeAzIjjwBgOIN+jetRvslUroNGlwTGmwqwAoLLSznQ4RV1660bzGy5BObndyDf9f6eQsYQFadyvM+IlB1gXqtFF/GPm+HtRf2Ox33Z1sMpQsQxGkpxvN+9zpj5U8l3+8aEmlkEPpvV/nD7mPrg2gs9TRU1T0Igy4RoSFdBScMybqi/3PDhXQvDfg84DA= X-MS-TrafficTypeDiagnostic: VI1PR05MB4445: X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4445; 20:UJEcx/Kks1yAhpzAFRcbSsCX+OfeZLvzPZAnuDaQ8glQmdGF6G84kV9Ep7Yar8Q27t9kQ9QtSAHvpniLI2A/mtEDOiPZ/RwLO7EOaIEHPFpYpcD+AAABgt/r4xU2dPNMi19LIq6YvCc3ng9Y8VU3GSWGaK86doYgGCfK91/xiqjOVk0gI3GkWsshja6Zt+wNsGoWq3tum1LJbQqr0ky4tTADq8I7x1lle2t1SvNwrsvQWFAl12my2rYy0PXmGtCoqDd8gh60u4o0tKzT5KDjwyE+AmIMKaeTmQJFktkbIyJqi6gDgBU1zTmwX1ewnxPDv+TuLMMOWz8FmtoqOT5+eAyFAh+H2UtKjcOuBdvd/jzl6UGde4bo0eyEVRrY//ApI3bX49B23x2sivUqDc2+9A51OmIvggH0+1cAblCJtU0t5OWojjU5N0Qao3K02/VVkqdRPVvLErmXY2+YEW/9K3P+yKnBb/M7ybMp+KMdTjobgwS0hzdy3hMNcmdbJEwV; 4:muAcVXZ5IcL1z5/SAO/qsDaTeWYwzhTuU31DMKtoQsEZay/VpOenIHg80slcw7NZUWnFBDgZXEkMAZXzs5faGeNDE0sewqXeymeeY0FidCcioI6ub4TDjCy1l8TSnqotxzjzvXAOmCkIkYaGYVROw0T6HH85AJ8RXEUNctYFv6iPRnwwU7QcSd/YGsPK+9GjfjJ9mL3FTbuCppa1aQxzKCrDbcqLU3ugRvA384ix+RHe3rISRAbAuMPttyO7W9KI5QvqFN95QjMiVtyE7T2tLA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(823301045)(3231311)(944501410)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123560045)(201708071742011)(7699016); SRVR:VI1PR05MB4445; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB4445; X-Forefront-PRVS: 07665BE9D1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(376002)(346002)(396003)(136003)(39860400002)(366004)(189003)(199004)(50226002)(81166006)(6486002)(8676002)(81156014)(305945005)(53936002)(6512007)(7736002)(68736007)(6116002)(3846002)(8936002)(47776003)(2906002)(2361001)(106356001)(66066001)(105586002)(2351001)(97736004)(36756003)(486006)(48376002)(5660300001)(316002)(478600001)(6506007)(386003)(25786009)(50466002)(4326008)(34206002)(6636002)(86362001)(1857600001)(6666003)(476003)(16586007)(37006003)(16526019)(52116002)(51416003)(26005)(2616005)(956004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB4445; H:localhost.localdomain; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR05MB4445; 23:1TV6mbou2i04y6Bf1vOAhqa0l2FQZOc0t0H1Ox/d3?= =?us-ascii?Q?6BikQ7pXzYe7+ekL1Nne7KEwjs+JoRz6LIKH6KkRkbXJMyRLE+4m1zob/lzH?= =?us-ascii?Q?pWfntA+eTRR//XasEJrtap4Nj7eyc6ObzmpD9kc97LNSmhK5UtezA6qSULRN?= =?us-ascii?Q?P7aloQi64nKyYViDKw+W8N5L2Fxu6C8ENHVXRUQK72603sIyrbXUr6AcUMnf?= =?us-ascii?Q?7KzaCacUgP+8gzz8V9wfxkTT09TRUEH95l5N/sShaDDIz3RnNZmOGWvSf2Mu?= =?us-ascii?Q?Kygfr8DXsjc0yQZDemI6AvGvnnfz6JiBhof0hJrpW+7Ai+1vRSeatv7ZcK3M?= =?us-ascii?Q?ThSC731GFFIiBx8zOfX825LoWkjckDKCw+dm3WrcJd3GX/ShLa4V06hGYeWf?= =?us-ascii?Q?OaL+5M0ojsav2mIQQhpkunmmq/2MHb2upecupMmLFscWLOnPcmGUKSEsrdBt?= =?us-ascii?Q?/FvX74KNNKYfuXXMtP1/lA4brSqV9QgTMn0KoXV9FYG+ZFx/jIZISVGcnaik?= =?us-ascii?Q?hzlwkbgqi8sDqm77DXer6sOzWV4rO4Ce0lTfDFuNe6NrPL+WKkNl6leUuvmN?= =?us-ascii?Q?B5wWt/H8pB8uhakxYZhPQOgqz2Fbt0qd0LvbkeoPb2/vVpTNpVjEjQ7fbHtj?= =?us-ascii?Q?Cvcv8KxLybz/1Mozk5TqsgzU1EMqa11DH6ye0klCLxywA50taHSSgAN7RoGQ?= =?us-ascii?Q?XwUwPLN3OafYiIEtnAqrzjfOTYJGr7FKfwDfB8mrcKC3rX15nfxtIzhlYTLd?= =?us-ascii?Q?l5ks7gXyIx+kQ4+0hBc8LDfrSmJKQwT+5W/IdWj6I698k2jCwHCkKEyFEFFP?= =?us-ascii?Q?uNq5valuj/2kRqYDPfttMs03FInvO5am/tmNVYxr7wIlwJ/5qMBg9GPsvQ78?= =?us-ascii?Q?RxQH7CUB7cKLSPpeiIMhtn20idQqkiJGF5SmEKaM3s3CIGt6xrsjZR1FXixN?= =?us-ascii?Q?SRO4OFb8oVJaKK4b4drVu+jHetbAOeXdryw0TE2aQsFxEPSGogyBIMNbb47F?= =?us-ascii?Q?SUBsLaPNc5dqBV+FYc0d9vyw27l0FiOP39q+DpFqQQXYDE9mEKTRPWog+Qio?= =?us-ascii?Q?Nw7691JXcItSB++fEh143/6ZW6/li97dPhmalRt6oM/DYemz+q7xEo3x496M?= =?us-ascii?Q?bMkGyvCmj36PHk6DsUf+G08AM8z8Oei1wtxfp6dRBZl3HujDjgTLc7s0bIiB?= =?us-ascii?Q?4n2nwA8dEGzgGR9xJxFwuJLx55HxzY1LFPBGawqPKVOdIZQTfDGwvlXtg=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Antispam-Message-Info: Z5RTHNrOmAilmDWtuzOnfHX1DAoPHdoKvVMNHUj9U8uw8F9APP8lOaJ3eb+TLTWq/N0ZGveqMyIVQxS4KqOGflByLFHrhhu7HhIutEjhC39ThlHZlcO6v9E1gZoG3gQYLbvl2UZvcQTX+fK99VzSn6UHNqbYG2ctDnf+D49p3kkQriMSnFQbCv+oIAXuh3vvuk1lkpVS5M/8/QzztcC/ghMV1QkpQ+eS+n2LwtM+8ka7/iucpMbZoZQSzR1Y9Cj9Q8EFjCe866zhWpAbcIayPLKzjagb2LFwhDCrgJzpNmL2GFxHm/dphPSdt5xm3N5m/6twlYlLU81R0y9nbBrJtisjiTVHA94MvCELhENm8mA= X-Microsoft-Exchange-Diagnostics: 1; VI1PR05MB4445; 6:Yvoo4HADyO24p0uis4v28hjFO0VVjh9TimfeMsiSGzeINgEo3EVIIo9UVdu8BY7EYfDUurwGDSkRmDUN0NQcmx7NWoL9NzMlMY4eaExX7x4NzB5jyZU7FtiDvNRVbj6EJPcS1VLuWNlUU8mAscEcrQUbPjn6Gpy5jqkRB26398+vpinwP4rfGibjVDwSLZUHsTINVOsmwiJvSZkzhEII/qAny/RJxKYGikduhREl7k+O/0ftSmYNJpwtuH/aGRyFup6nFNpNfIMlYLB+qLOUcuM4eKUDLm4c2KTmHV0uiY0tASweC+w2AtdDFv2cKEnFn5hg2vyE6Pulp8h0Wn+hG+NAwJ6fpMlPQkvoI3kNcPMQxybj5eHT75zlWRv0kSUU2ajU1gBNNbSl+emr2to0eWe+jdTbYa1ihqD4C50oCh8HTCUxJo5LupXSX4HKgVZ6jq07jr2u3gqppNshbq/ASA==; 5:QSxrND5u5Mry+ipMvzI4wAQ5sfN3t+VOs4MU+9KkqtLtya69kFmuwlyU12PHHEfDFxndlKVzlb1vblPpTMvFBC5EtCGXWoz0edohe407N9dGGIMlId0EyThxoE9zJYelMCB8VkO0j5kRr+W13QWeAukFzVUemjMbWaEfYaXGB4I=; 7:XgZ0ORAb+fMu7n4x4l+OY5kFyzVAdtkVdJBBfsJejuZL2+Lm9UT7SUi7TBY5H/PUMxz9RBBQij/Tw2DYvyi+Q+fthJRpHNmyKC7cDL45XoB0NHd42wmf/6BiNO3v7IxzD9TeEEBnyJ6efq2t98WtMrU6iNHO3y7sqWsm4VgqJ4mMFIDtV6jzs4XNA0RRCl3CmZbt7NCFjpPXxKYR3Q0Bckww6/NEIxw0UJtO4q5U2jib6BeZedqSc+KZi32hxrxq SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Aug 2018 12:14:44.5468 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d50aa5eb-8021-44e6-858f-08d60371da85 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4445 Subject: [dpdk-stable] [PATCH] net/mlx4: check RSS queues number limitation X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Aug 2018 12:14:47 -0000 This patch verifies that the number of Rx queues configured for RSS is supported by the device hardware. RSS support in mlx4 requires contiguous chunk of QPs to be reserved, there is a hardware limitation on the amount of contiguous QPs which is reported by the hardware. Ignoring this value will cause Rx queues creation to fail. Cc: stable@dpdk.org Signed-off-by: Moti Haimovsky Acked-by: Matan Azrad --- drivers/net/mlx4/mlx4.c | 9 +++++++++ drivers/net/mlx4/mlx4.h | 1 + drivers/net/mlx4/mlx4_rxq.c | 6 ++++++ 3 files changed, 16 insertions(+) diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index 83eba11..d39ad3e 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -434,6 +434,7 @@ struct mlx4_conf { int err = 0; struct ibv_context *attr_ctx = NULL; struct ibv_device_attr device_attr; + struct ibv_device_attr_ex device_attr_ex; struct mlx4_conf conf = { .ports.present = 0, }; @@ -507,6 +508,11 @@ struct mlx4_conf { /* Use all ports when none are defined */ if (!conf.ports.enabled) conf.ports.enabled = conf.ports.present; + /* Retrieve extended device attributes. */ + if (ibv_query_device_ex(attr_ctx, NULL, &device_attr_ex)) { + err = ENODEV; + goto error; + } for (i = 0; i < device_attr.phys_port_cnt; i++) { uint32_t port = i + 1; /* ports are indexed from one */ struct ibv_context *ctx = NULL; @@ -582,6 +588,9 @@ struct mlx4_conf { PCI_DEVICE_ID_MELLANOX_CONNECTX3PRO); DEBUG("L2 tunnel checksum offloads are %ssupported", (priv->hw_csum_l2tun ? "" : "not ")); + priv->hw_rss_max_qps = + device_attr_ex.rss_caps.max_rwq_indirection_table_size; + DEBUG("MAX RSS queues %d", priv->hw_rss_max_qps); /* Configure the first MAC address by default. */ err = mlx4_get_mac(priv, &mac.addr_bytes); if (err) { diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h index 41d652b..30f12eb 100644 --- a/drivers/net/mlx4/mlx4.h +++ b/drivers/net/mlx4/mlx4.h @@ -129,6 +129,7 @@ struct priv { uint32_t rss_init:1; /**< Common RSS context is initialized. */ uint32_t hw_csum:1; /* Checksum offload is supported. */ uint32_t hw_csum_l2tun:1; /* Checksum support for L2 tunnels. */ + uint32_t hw_rss_max_qps; /**< Max Rx Queues supported by RSS. */ struct rte_intr_handle intr_handle; /**< Port interrupt handle. */ struct mlx4_drop *drop; /**< Shared resources for drop flow rules. */ LIST_HEAD(, mlx4_rss) rss; /**< Shared targets for Rx flow rules. */ diff --git a/drivers/net/mlx4/mlx4_rxq.c b/drivers/net/mlx4/mlx4_rxq.c index 06030c2..b3f70d6 100644 --- a/drivers/net/mlx4/mlx4_rxq.c +++ b/drivers/net/mlx4/mlx4_rxq.c @@ -365,6 +365,12 @@ struct mlx4_rss * if (priv->rss_init) return 0; + if (priv->dev->data->nb_rx_queues > priv->hw_rss_max_qps) { + ERROR("RSS does not support more than %d queues", + priv->hw_rss_max_qps); + rte_errno = EINVAL; + return -rte_errno; + } /* Prepare range for RSS contexts before creating the first WQ. */ ret = mlx4dv_set_context_attr(priv->ctx, MLX4DV_SET_CTX_ATTR_LOG_WQS_RANGE_SZ, -- 1.8.3.1