From patchwork Thu Jan 27 15:39:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 106630 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BDA8FA04A6; Thu, 27 Jan 2022 16:41:34 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 60EE8428BF; Thu, 27 Jan 2022 16:40:23 +0100 (CET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2066.outbound.protection.outlook.com [40.107.237.66]) by mails.dpdk.org (Postfix) with ESMTP id D8632428B4 for ; Thu, 27 Jan 2022 16:40:20 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HoetH09qQrgqLXuKONycEcYm7/AqnFgfgE6VIzGZJjvZNyABhpOYzawKJoeQ0+x5QNwTuBe4Gjj1M1FjwZFCvYai0ZKOUk48IzNFtcyBYzVxyquFtVUb0oft9lWxr/6qDw/iE591q9J9IwAwxSmM8yIz34dgAEqWyQ1xzd1WcLjgsfAYKg2e5un1mZvozKOaxVBZENJFu6WJ32YrImr1bVBk8RnhnBW3xx+VgmlzxAcQAFF0RJ7dKOY1LTIUhzMF6pkXsEesXawsB7YFPFv8LJZW1i9fsVPgGw+a3Nuh6Om2kp0pyris6adH0kv6afLsQoI+KrJEepml35FtFGbSrQ== 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=c2xl4GYYHQSURBYiPrtjhx5UKimCR2x++nCWTIcwrJE=; b=Cqc+mxXtCKYZj8gR4JIXolTxukSvyoqAGPIqxtxROL6azTKMm0kXeZA/GGwNvylnHa6L5C7MVVnx/inKzMjEJ3VLx1sfclR3CxiWz/bX7eLSWMv1DLgeluqUPZa5vDqoOQ7wHM2xeBBMHnC80GY5dVwRTdO3dJCxs/XOwq7sBRL6JTMMHZJBFIRq0N1qeS5T0i6m2UjqehRDYdlV5Hj/Pnw1FzS3yGclj7SwgYHR5Fkhio8jDyZia5q4Mg2PiHj7FNadITbzEoE5CdtqA7QGWPyGJRmgH2HFc54mvy10WuajBX43MrnIh+OH0INiEfgqzz6UqtpRMG8vQyFUfytfkA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 12.22.5.234) 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=c2xl4GYYHQSURBYiPrtjhx5UKimCR2x++nCWTIcwrJE=; b=fOTHczyycvl1/1sB94t7JSqVz7mgjsyydOUrytNitcC69WIv1kQaeBFdtwreRDWuAKVpzLP2OD01hYaV5DNqqPPgrwE0k/vFkjCJtvFZzB6QbUOhsG7ImQgQKVb8/6p2FMxa/AlXsExWBgEgN9fmUk2oPL2lcIY9Z8bmTCZPj6BY89rX0Ndm/p9xxNueOfB/MLAwVIKcj+d/6lKyx8jJWhEPFt2CXkL16xNekEvZmJ/ZJ3xsfsEOG7TXCkFXU/Id+mh+/z2o3hteYL+rSnY+9kLBFaY4K0+Gf0O1mNHGvCHpQl81lbF60yMmQ0qNYzhmnT5Cp9uRDQV135nZiaJyGQ== Received: from BN9PR03CA0844.namprd03.prod.outlook.com (2603:10b6:408:13d::9) by MN2PR12MB3664.namprd12.prod.outlook.com (2603:10b6:208:159::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.17; Thu, 27 Jan 2022 15:40:19 +0000 Received: from BN8NAM11FT046.eop-nam11.prod.protection.outlook.com (2603:10b6:408:13d:cafe::b5) by BN9PR03CA0844.outlook.office365.com (2603:10b6:408:13d::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.15 via Frontend Transport; Thu, 27 Jan 2022 15:40:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 12.22.5.234) 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.234 as permitted sender) receiver=protection.outlook.com; client-ip=12.22.5.234; helo=mail.nvidia.com; Received: from mail.nvidia.com (12.22.5.234) by BN8NAM11FT046.mail.protection.outlook.com (10.13.177.127) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4930.15 via Frontend Transport; Thu, 27 Jan 2022 15:40:19 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by DRHQMAIL101.nvidia.com (10.27.9.10) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Thu, 27 Jan 2022 15:40:15 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.9; Thu, 27 Jan 2022 07:40:14 -0800 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.9 via Frontend Transport; Thu, 27 Jan 2022 07:40:13 -0800 From: Michael Baum To: CC: Matan Azrad , Raslan Darawsheh , Viacheslav Ovsiienko Subject: [PATCH 10/20] common/mlx5: share VF checking function Date: Thu, 27 Jan 2022 17:39:40 +0200 Message-ID: <20220127153950.812953-11-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220127153950.812953-1-michaelba@nvidia.com> References: <20220127153950.812953-1-michaelba@nvidia.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 70621bed-48c6-4a1e-7d18-08d9e1ab52b0 X-MS-TrafficTypeDiagnostic: MN2PR12MB3664:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6108; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Z2XwsUx61ZzM/DnB/NWnYp0uYyI8ucz98RehR+c3ba1gi86TvmPst8HFeZ51c4rlGtylnbbSdTxdCm7M5lOZfkl0ET+CHcSEKWWFEkYVUjL8O9uovqzw2a49wej3Uy7otdcZZzjBhX+fkkpzKEWh8/sJrh+b54mO/aJqZw0pSgpq7JE4YgaYziK7cc7IRsS7woAR7oHyt+3wkytndxcsmJ+uTyR7YtTARs8FXgabtnVzLDBiJoCIJWobqu/jqz/1lYmg76zOl1XkJ1xCmeVKYjjeM/nMnBtj7MV9a+XUQDDD+39NAqWxTzRKJhwUTD9MX8f2V75rCAZyRGqwV6Lo4aGqhqiQiA/AmoNwdapSK9b5ZmuPVwbptMy199/wZSrLB+l5riAqFmgJl1rDnodgmlLjlp6/y+q1Q+6QlVj2iUcQ/A4S6PJ0D+5WB1I7RCJfRLe6I9Wm03/OINSec0TD7OpXZ2SOEG1SiMGSuaM7nkpVnMjEkxKwttvwnPks1HvLXZCgN2XBl9GnooiVCtPZLdtrEIXpgtqOp52cYUt26+KD4Zw3kCvRKdxz973h0bkiBWSzE9Mj/dLW8p/CTSmML1s1ncsvefvC44yCYCEOi0JaRqkZj9nBHVL5vA3jXNmM4+0nWGYV+An6cC33ss4NhAqzQ0OvE+1gD/k33wvAodH2SPbnA/am7StlO3e5J1qxZF7wSqqh2ggJz1KUwODPMg== X-Forefront-Antispam-Report: CIP:12.22.5.234; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE; SFS:(13230001)(4636009)(40470700004)(36840700001)(46966006)(1076003)(6286002)(426003)(336012)(26005)(186003)(8676002)(2906002)(316002)(36756003)(356005)(70586007)(4326008)(81166007)(8936002)(70206006)(107886003)(5660300002)(508600001)(86362001)(6666004)(7696005)(55016003)(54906003)(40460700003)(6916009)(36860700001)(83380400001)(82310400004)(47076005)(2616005)(36900700001)(20210929001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2022 15:40:19.0716 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 70621bed-48c6-4a1e-7d18-08d9e1ab52b0 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.234]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT046.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB3664 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The check if device is VF work for Linux as same as Windows. This patch removes it to the function implemented in the folder shared between the operating systems, removing the duplication. Signed-off-by: Michael Baum Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common.h | 15 +++++++++++++++ drivers/common/mlx5/mlx5_common_pci.c | 18 ++++++++++++++++++ drivers/common/mlx5/version.map | 1 + drivers/net/mlx5/linux/mlx5_os.c | 18 +----------------- drivers/net/mlx5/windows/mlx5_os.c | 16 +--------------- 5 files changed, 36 insertions(+), 32 deletions(-) diff --git a/drivers/common/mlx5/mlx5_common.h b/drivers/common/mlx5/mlx5_common.h index e8809844af..80f59c81fb 100644 --- a/drivers/common/mlx5/mlx5_common.h +++ b/drivers/common/mlx5/mlx5_common.h @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -487,6 +488,20 @@ __rte_internal bool mlx5_dev_is_pci(const struct rte_device *dev); +/** + * Test PCI device is a VF device. + * + * @param pci_dev + * Pointer to PCI device. + * + * @return + * - True on PCI device is a VF device. + * - False otherwise. + */ +__rte_internal +bool +mlx5_dev_is_vf_pci(struct rte_pci_device *pci_dev); + __rte_internal int mlx5_dev_mempool_subscribe(struct mlx5_common_device *cdev); diff --git a/drivers/common/mlx5/mlx5_common_pci.c b/drivers/common/mlx5/mlx5_common_pci.c index 8b38091d87..8fd2cb076c 100644 --- a/drivers/common/mlx5/mlx5_common_pci.c +++ b/drivers/common/mlx5/mlx5_common_pci.c @@ -108,6 +108,24 @@ mlx5_dev_is_pci(const struct rte_device *dev) return strcmp(dev->bus->name, "pci") == 0; } +bool +mlx5_dev_is_vf_pci(struct rte_pci_device *pci_dev) +{ + switch (pci_dev->id.device_id) { + case PCI_DEVICE_ID_MELLANOX_CONNECTX4VF: + case PCI_DEVICE_ID_MELLANOX_CONNECTX4LXVF: + case PCI_DEVICE_ID_MELLANOX_CONNECTX5VF: + case PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF: + case PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF: + case PCI_DEVICE_ID_MELLANOX_CONNECTX6VF: + case PCI_DEVICE_ID_MELLANOX_CONNECTXVF: + return true; + default: + break; + } + return false; +} + bool mlx5_dev_pci_match(const struct mlx5_class_driver *drv, const struct rte_device *dev) diff --git a/drivers/common/mlx5/version.map b/drivers/common/mlx5/version.map index 462b7cea5e..59ab434631 100644 --- a/drivers/common/mlx5/version.map +++ b/drivers/common/mlx5/version.map @@ -13,6 +13,7 @@ INTERNAL { mlx5_common_verbs_dereg_mr; # WINDOWS_NO_EXPORT mlx5_dev_is_pci; + mlx5_dev_is_vf_pci; mlx5_dev_mempool_unregister; mlx5_dev_mempool_subscribe; diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index e8e842a09e..2fb91fec06 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -2100,7 +2100,6 @@ mlx5_os_pci_probe_pf(struct mlx5_common_device *cdev, struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(cdev->dev); struct mlx5_dev_spawn_data *list = NULL; struct mlx5_dev_config dev_config; - unsigned int dev_config_vf; struct rte_eth_devargs eth_da = *req_eth_da; struct rte_pci_addr owner_pci = pci_dev->addr; /* Owner PF. */ struct mlx5_bond_info bond_info; @@ -2421,21 +2420,6 @@ mlx5_os_pci_probe_pf(struct mlx5_common_device *cdev, * (i.e. master first, then representors from lowest to highest ID). */ qsort(list, ns, sizeof(*list), mlx5_dev_spawn_data_cmp); - /* Device specific configuration. */ - switch (pci_dev->id.device_id) { - case PCI_DEVICE_ID_MELLANOX_CONNECTX4VF: - case PCI_DEVICE_ID_MELLANOX_CONNECTX4LXVF: - case PCI_DEVICE_ID_MELLANOX_CONNECTX5VF: - case PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF: - case PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF: - case PCI_DEVICE_ID_MELLANOX_CONNECTX6VF: - case PCI_DEVICE_ID_MELLANOX_CONNECTXVF: - dev_config_vf = 1; - break; - default: - dev_config_vf = 0; - break; - } if (eth_da.type != RTE_ETH_REPRESENTOR_NONE) { /* Set devargs default values. */ if (eth_da.nb_mh_controllers == 0) { @@ -2459,7 +2443,7 @@ mlx5_os_pci_probe_pf(struct mlx5_common_device *cdev, /* Default configuration. */ mlx5_os_config_default(&dev_config, &cdev->config); - dev_config.vf = dev_config_vf; + dev_config.vf = mlx5_dev_is_vf_pci(pci_dev); list[i].eth_dev = mlx5_dev_spawn(cdev->dev, &list[i], &dev_config, ð_da); if (!list[i].eth_dev) { diff --git a/drivers/net/mlx5/windows/mlx5_os.c b/drivers/net/mlx5/windows/mlx5_os.c index 31f0247be7..178e58b4d7 100644 --- a/drivers/net/mlx5/windows/mlx5_os.c +++ b/drivers/net/mlx5/windows/mlx5_os.c @@ -926,6 +926,7 @@ mlx5_os_net_probe(struct mlx5_common_device *cdev) }, .dv_flow_en = 1, .log_hp_size = MLX5_ARG_UNSET, + .vf = mlx5_dev_is_vf_pci(pci_dev), }; int ret; uint32_t restore; @@ -940,21 +941,6 @@ mlx5_os_net_probe(struct mlx5_common_device *cdev) strerror(rte_errno)); return -rte_errno; } - /* Device specific configuration. */ - switch (pci_dev->id.device_id) { - case PCI_DEVICE_ID_MELLANOX_CONNECTX4VF: - case PCI_DEVICE_ID_MELLANOX_CONNECTX4LXVF: - case PCI_DEVICE_ID_MELLANOX_CONNECTX5VF: - case PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF: - case PCI_DEVICE_ID_MELLANOX_CONNECTX5BFVF: - case PCI_DEVICE_ID_MELLANOX_CONNECTX6VF: - case PCI_DEVICE_ID_MELLANOX_CONNECTXVF: - dev_config.vf = 1; - break; - default: - dev_config.vf = 0; - break; - } spawn.eth_dev = mlx5_dev_spawn(cdev->dev, &spawn, &dev_config); if (!spawn.eth_dev) return -rte_errno;