From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AC44AA0093 for ; Mon, 7 Mar 2022 19:30:07 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7B3014014E; Mon, 7 Mar 2022 19:30:07 +0100 (CET) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam08on2084.outbound.protection.outlook.com [40.107.100.84]) by mails.dpdk.org (Postfix) with ESMTP id 3E05F4014E for ; Mon, 7 Mar 2022 19:30:06 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Mm0fv2JwwCpl527aRsR3wG6mfbywZhwU+OOe2wXbPCwVoTOk+DNY39cGZFjl4H5x8kpgSFOqPrnCJFVddSiEut5Qre1hZuPCC+r4VwHI7HpdqV/NTukf8lanFqMfWwNnIy1B3GLKvIVICgnlndGVrqAvEcFbD8qpYt05iF3soNGIWjh3ZSIqSsZDqzJqyDGuyKTrtm7iY8UGZwyHrCeTgrL9Z4dz2tW5/B/f1UDNM2hbHO3J9jmM37adqy7UwTR2zMkwXOG2y878KdvllEvAZ1yrh0wCdgMezJtqo9zy9OFOvDn5132Exl4cGPuub7iYjdvbKI8zAjhp+71aSW5ITQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bFNYvKIj0ktKNSMsjtxXsLclbJ0BEKkc6WugRZ+nuGI=; b=mGXRI+FXWyqKWhQSsWBfqcQuYyYj/2FCyRzQ+Xz+ommnBnngD2CEQqa0UciTBj/uDVIXGYow6RN+4INPRIDJI1LN1hK5CFNtyrw591f89mio7WjCdLT/9kF0qeR52L3v5xhtl8foNFSk0btzA2FqB4xtbg26b8wQou4dFSdtm+Rea/CcxOiUSwjI0iHuQgdi4/0nOwIiNmwMh8mjF2V4UG6bUaRBTz5To6vkM4HSwcRgVE38fDLq1MxucHfSpXv5Kh/OGmK09rRqRPuTCuvBpEjcUIER3lw7DmTS6fm0pCEasCad/7JgsAVs5lDoJ6LiguJSe2fJq0+ITpsE55bUNA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 12.22.5.238) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bFNYvKIj0ktKNSMsjtxXsLclbJ0BEKkc6WugRZ+nuGI=; b=APQ3KCKjPljXHhOtz2/BNAAJj4AyrZkY/AHmfa6TUIpiRsDMhcecwOJ2zNDl+7Rv2yglxBjzdRP4xzzBE+XV3NX0JBSWar1BrqI0leGbkju27Yj0PUJMpEYm0hYpNgeOlqmQSP6+MQ40QCty66iFADPmVt991yQVm9IqiAd5sHTmL9gUzur8DjvJA0xa/8D+c9prHnA0EOebi4vMktwsAzGh2NP40Zy7tfK0zeEk8kTYBL2vbGBZfjv00YWQsRv1J5htez7TlRsdXZB9LlEOhYaaqQEPwu0f/8etVIGskXc0iCCjU40+QcZdBnEQX2KfQJhX+iXvCtfSV401UMyhCw== Received: from DM5PR04CA0035.namprd04.prod.outlook.com (2603:10b6:3:12b::21) by DM6PR12MB3420.namprd12.prod.outlook.com (2603:10b6:5:3a::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.15; Mon, 7 Mar 2022 18:30:03 +0000 Received: from DM6NAM11FT008.eop-nam11.prod.protection.outlook.com (2603:10b6:3:12b:cafe::c2) by DM5PR04CA0035.outlook.office365.com (2603:10b6:3:12b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14 via Frontend Transport; Mon, 7 Mar 2022 18:30:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 12.22.5.238) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 12.22.5.238 as permitted sender) receiver=protection.outlook.com; client-ip=12.22.5.238; helo=mail.nvidia.com; Received: from mail.nvidia.com (12.22.5.238) by DM6NAM11FT008.mail.protection.outlook.com (10.13.172.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.5038.14 via Frontend Transport; Mon, 7 Mar 2022 18:30:03 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) by DRHQMAIL105.nvidia.com (10.27.9.14) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Mon, 7 Mar 2022 18:30:01 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.9; Mon, 7 Mar 2022 10:30:00 -0800 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.9 via Frontend Transport; Mon, 7 Mar 2022 10:29:59 -0800 From: Michael Baum To: CC: Matan Azrad , Viacheslav Ovsiienko Subject: [PATCH 20.11] net/mlx5: fix sibling device config check Date: Mon, 7 Mar 2022 20:29:55 +0200 Message-ID: <20220307182955.626660-1-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4fbdc4fe-53d0-4138-4391-08da00687f3a X-MS-TrafficTypeDiagnostic: DM6PR12MB3420:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zmM8Wn+8hONsjwXCB1NUOwGkJ+nTZ8EkCT5uJxiq8Iu2FTilq3YqNaLeI/A0SP5ZvnaXkGI/qNoto455PF514fXVksCx+dHmYWogek2CH3XQcPqOiCWjoCtjY9jA9tfetif3YMMAh4Y3fKf5ZgU6jC7snWOfySN6K2WTrZifTnWdkTyJb/DuVCHrNEUaT2NuFn/w4XhxYZhpUN0pi+37lPbmk2TvcT5VBbGSlgFCvYhUFTmO1WC6eW4VH22UJntMpyNlUf3JuP7ZtKCo8b12lslDyZLlLfiypxPmO7bVn4+UppTC4+8DFUBCJk4Le58pJ3g+0sBQyDd/TuBWLNgzpvpZAygWprNGQ8AiP4nSLblDXz+hdIBJE1pSq0zk8uJIJ+w5LmF0WPlfjaj18rDjmn63DlPv6sL5XDBVa7PdafQzKp4p6wV9jW5zXUNGhZglsRB9RUcHccA8WLHwIyzW7q9WgkW0bjtF8gtVMLM9r3hmYx+i8D3X40xnSB/Fk/MUar0EmX+yI8ypj7tArLJxE6GeP4ZZQ7OYjaMHdHCaerHaVnlBWzb7rzP0uzLxDgsmBo8VjNGCQhgzdqpVqtaG50jK87QiYBxsYwxtb+YvLF4kPJHVydk2vZZYWg0vof28+m6tjhz1jVet23kF1wxDICvbz0in6Gpsef9Mgpf+7WK5/lsY//bXBwBUDWfXTO2GguR/5ZVrhATN6ke2XZBpoQ== X-Forefront-Antispam-Report: CIP:12.22.5.238; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE; SFS:(13230001)(4636009)(36840700001)(46966006)(40470700004)(82310400004)(336012)(186003)(26005)(1076003)(8676002)(83380400001)(426003)(107886003)(4326008)(70586007)(70206006)(356005)(81166007)(2906002)(5660300002)(36860700001)(86362001)(47076005)(55016003)(8936002)(40460700003)(6666004)(36756003)(316002)(6286002)(7696005)(6916009)(2616005)(54906003)(508600001)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2022 18:30:03.6220 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4fbdc4fe-53d0-4138-4391-08da00687f3a X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.238]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT008.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3420 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org [ upstream commit dcbaafdc8f70987c6b610af7d43817b560fb646b ] The MLX5 net driver supports "probe again". In probing again, it creates a new ethdev under an existing infiniband device context. Sibling devices sharing infiniband device context should have compatible configurations, so some of the devargs given in the probe again, the ones that are mainly relevant to the sharing device context are sent to the mlx5_dev_check_sibling_config function which makes sure that they compatible its siblings. However, the arguments are adjusted according to the capability of the device, and the function compares the arguments of the probe again before the adjustment with the arguments of the siblings after the adjustment. A user who sends the same values to all siblings may fail in this comparison if he requested something that the device does not support and adjusted. This patch moves the call to the mlx5_dev_check_sibling_config function after the relevant adjustments. Fixes: 92d5dd483450 ("net/mlx5: check sibling device configurations mismatch") Fixes: 2d241515ebaf ("net/mlx5: add devarg for extensive metadata support") Signed-off-by: Michael Baum Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_os.c | 53 +++++++++++++++++--------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index 9d5cef9e09..aa66879d74 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -1107,10 +1107,39 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, } /* Override some values set by hardware configuration. */ mlx5_args(config, dpdk_dev->devargs); + /* Update final values for devargs before check sibling config. */ +#if !defined(HAVE_IBV_FLOW_DV_SUPPORT) || !defined(HAVE_MLX5DV_DR) + if (config->dv_flow_en) { + DRV_LOG(WARNING, "DV flow is not supported."); + config->dv_flow_en = 0; + } +#endif + if (config->devx) { + err = mlx5_devx_cmd_query_hca_attr(sh->ctx, &config->hca_attr); + if (err) { + err = -err; + goto error; + } + } +#ifdef HAVE_MLX5DV_DR_ESWITCH + if (!(config->hca_attr.eswitch_manager && config->dv_flow_en && + (switch_info->representor || switch_info->master))) + config->dv_esw_en = 0; +#else + config->dv_esw_en = 0; +#endif if (config->dv_miss_info) { if (switch_info->master || switch_info->representor) config->dv_xmeta_en = MLX5_XMETA_MODE_META16; } + if (!priv->config.dv_esw_en && + priv->config.dv_xmeta_en != MLX5_XMETA_MODE_LEGACY) { + DRV_LOG(WARNING, + "Metadata mode %u is not supported (no E-Switch).", + priv->config.dv_xmeta_en); + priv->config.dv_xmeta_en = MLX5_XMETA_MODE_LEGACY; + } + /* Check sibling device configurations. */ err = mlx5_dev_check_sibling_config(priv, config); if (err) goto error; @@ -1121,12 +1150,6 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, #if !defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42) && \ !defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45) DRV_LOG(DEBUG, "counters are not supported"); -#endif -#if !defined(HAVE_IBV_FLOW_DV_SUPPORT) || !defined(HAVE_MLX5DV_DR) - if (config->dv_flow_en) { - DRV_LOG(WARNING, "DV flow is not supported"); - config->dv_flow_en = 0; - } #endif config->ind_table_max_size = sh->device_attr.max_rwq_indirection_table_size; @@ -1178,11 +1201,6 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, MLX5_MPRQ_LOG_MIN_STRIDE_WQE_SIZE; config->mprq.log_stride_num = MLX5_MPRQ_DEFAULT_LOG_STRIDE_NUM; if (config->devx) { - err = mlx5_devx_cmd_query_hca_attr(sh->ctx, &config->hca_attr); - if (err) { - err = -err; - goto error; - } config->mprq.log_min_stride_wqe_size = config->hca_attr.log_min_stride_wqe_sz; sh->rq_ts_format = config->hca_attr.rq_ts_format; @@ -1508,13 +1526,6 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, * Verbs context returned by ibv_open_device(). */ mlx5_link_update(eth_dev, 0); -#ifdef HAVE_MLX5DV_DR_ESWITCH - if (!(config->hca_attr.eswitch_manager && config->dv_flow_en && - (switch_info->representor || switch_info->master))) - config->dv_esw_en = 0; -#else - config->dv_esw_en = 0; -#endif /* Detect minimal data bytes to inline. */ mlx5_set_min_inline(spawn, config); /* Store device configuration on private structure. */ @@ -1574,12 +1585,6 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, goto error; } priv->config.flow_prio = err; - if (!priv->config.dv_esw_en && - priv->config.dv_xmeta_en != MLX5_XMETA_MODE_LEGACY) { - DRV_LOG(WARNING, "metadata mode %u is not supported " - "(no E-Switch)", priv->config.dv_xmeta_en); - priv->config.dv_xmeta_en = MLX5_XMETA_MODE_LEGACY; - } mlx5_set_metadata_mask(eth_dev); if (priv->config.dv_xmeta_en != MLX5_XMETA_MODE_LEGACY && !priv->sh->dv_regc0_mask) { -- 2.25.1