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 625B845B17; Fri, 11 Oct 2024 20:52:29 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5DEB240F1A; Fri, 11 Oct 2024 20:52:20 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2050.outbound.protection.outlook.com [40.107.223.50]) by mails.dpdk.org (Postfix) with ESMTP id CAAEF40EDD for ; Fri, 11 Oct 2024 20:52:16 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tzL6I335+yJsJO7/u3xnx5qmqbs9Sjtwgw2mMaYH/y7Th28BlDBGRmv5s/quEGEx3NF7zDmVxPnnRAe52phddUyEds6LUxIlLJt7O6e6EUiyyhhLQVoBOnpNtTkQq0WHe3SMeaZ4sTjEQWO81fkwRa3JFDpJgHA0ZKYzbQCccgNKvVZ2f0yUxkEvhR8vV+4kqSXpv8+wvFI/wkV0mXL4o7aXSbnU+G5t/nC2ZRzO17rkEPJKVx5DPULXgKBzTRRxJPN3lTJXWnPbdq14sXQNy8zNuogSO+/b2WhOYyTKlQoy8/EnwvRKM+q0tyifQ0FfRzlAq6cErNUVOGhDVvAECQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=uFJ1C2czMVHkdHQkOVA1G4zp9lwU/yv53OAATaMBLuE=; b=MvjbnNG4DzGbTdP5JtBVTJ8mCeTmGAphyuL/c26oqnV+R9GrgLbVN+sZD34iLXn4jElTMvuEOjtQRvK/c0mL6GAqzIYcPDsY8iaMW6PJgU+NH/IQ8ylVs6w++2R0by3Tz092v9sw2FKlcCmj3FvBcc2vCCkZg3atLfDWpq0IKJqqbyi9DjfEr2Zzpc1ejW/ltT78Z3hTtLwv2ZuXiffy0v57x2NN5a5vc22uU4vNUWThVYfJXwAyTXa82YhD7wCC6OqRttRo/gp/hmyVhAORL5/I5r3RAL5u1y1TRFseyoesPFtNsR2zRWIfU/Puo8Jjg3p2/Wi/GT47puTscJRy7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=monjalon.net 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 (0) 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=uFJ1C2czMVHkdHQkOVA1G4zp9lwU/yv53OAATaMBLuE=; b=r+4DaaSSII7Z0IqEjwTfkSsTLVSgoTPti1MlxQY5+VU0LBDm8oPPedxnDRPiutNR3cJRzWW4Om3q4ysTsVxsiOtxSdKehv7GrSHuURR4rWWdt7gtUuMq9bcdSdNc4yYRNgaWpg3Ls9KRK1dlHkz72ogTVZA6KAcbXXbM/eHpwHYXOnL7TaGKVF/qrjQcQCq8BnZB2oRfvOFdo9KytScXtLUtFLGuzsuqCuWa/JgxOHpR/Ew+OMJtdjkGSjbgmHjCZiREJKvmfFTBiQ2vN3Gf9ZmIF3fqLaZo3ZWOgOhBiQiavwV56OK0gJ+h1Xxe+XAN2bZCC+YoPknRxm4FA7Uarw== Received: from BYAPR21CA0020.namprd21.prod.outlook.com (2603:10b6:a03:114::30) by CY8PR12MB7660.namprd12.prod.outlook.com (2603:10b6:930:84::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.21; Fri, 11 Oct 2024 18:52:13 +0000 Received: from SJ1PEPF00002311.namprd03.prod.outlook.com (2603:10b6:a03:114:cafe::6) by BYAPR21CA0020.outlook.office365.com (2603:10b6:a03:114::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.8 via Frontend Transport; Fri, 11 Oct 2024 18:52:12 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) 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 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SJ1PEPF00002311.mail.protection.outlook.com (10.167.242.165) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.13 via Frontend Transport; Fri, 11 Oct 2024 18:52:12 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Fri, 11 Oct 2024 11:51:59 -0700 Received: from nvidia.com (10.126.231.35) by rnnvmail201.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.1544.4; Fri, 11 Oct 2024 11:51:58 -0700 From: Dariusz Sosnowski To: Thomas Monjalon , Ferruh Yigit , Andrew Rybchenko CC: , Konstantin Ananyev Subject: [PATCH v3 3/4] ethdev: restore config only when requested Date: Fri, 11 Oct 2024 20:51:36 +0200 Message-ID: <20241011185137.277874-4-dsosnowski@nvidia.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241011185137.277874-1-dsosnowski@nvidia.com> References: <20241011093351.187191-1-dsosnowski@nvidia.com> <20241011185137.277874-1-dsosnowski@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00002311:EE_|CY8PR12MB7660:EE_ X-MS-Office365-Filtering-Correlation-Id: 402ac230-347c-4442-ce38-08dcea25d167 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|36860700013|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?rrphX6H2FJnQ0vG/KH5AbTl2lL9VBlURcl4+Ed9Y9RsPQ8t7gt6MDnfAUpgz?= =?us-ascii?Q?NRX6+9tLNijgi59POBNcvFmsXeVzf639JAJWIUirNhd9dodc5fn6a2q1MZQq?= =?us-ascii?Q?OYRhnCpI857hec20+NgQrytxkAg9RoqqhgxLPAgovVpu2ftO3Gcvq45/KA4q?= =?us-ascii?Q?8OdihEpZJVgn9N3zQsNHI9lBlAXL4rN21X9kb6vZqjYBwYczW+QdKDOgO1lR?= =?us-ascii?Q?NjMO9bIFILrADQ85WrZU39DwQIcqrdwKgOmxX49ljQ9NLyJGN2zdS4XPhsx3?= =?us-ascii?Q?e7QMEr38jV35DqmfvZ3UDsn9gjNlzvisdprOGvOmMBhQuyuTnamPXy1HShfG?= =?us-ascii?Q?rVwl4KSqEZ7kHpz1XskLI6lp7CEj1JbReD0NzlKvHOXc6qmur1EJSEwyLq5Z?= =?us-ascii?Q?9SDSAFKEaOrXJJ0czslrwmfR/hHyXzAnFYqHT2sCtZFQ/saBgWNbqHqone9w?= =?us-ascii?Q?t4nech+9P8ym+37IfLg7kf6WimRTEM8fXr/Z1w+f8UnMcXrIJ8Ra+fKjLthY?= =?us-ascii?Q?zK9zpUhNv8i6HQvpGucRUN3TJ9Y4wBMLwl/a6kY+R3dMFNAlHzcljOuOUILu?= =?us-ascii?Q?IJCEeIS5+xa/+1ujvINVjijQPwg1Fs93kYTJJ5Zn8Wh91UMucS3dn+dusCfN?= =?us-ascii?Q?RoLI5UMZstR+aZf6/BejwDar3iIWfHX1hmmBEgShx38qQoKcKjlXHGbClpIW?= =?us-ascii?Q?t4lOq8CsRFK2wbugAgy0c2VT25k5ndJ8+Jg08JNq+WiK3sPW+UxgOERM8gdp?= =?us-ascii?Q?gX/obmhZj0dYLEckz66kohTX/bCIvRAfWD/7SRTHtOpEftE+60b3FL2NhrNe?= =?us-ascii?Q?ElzRK15PqOokF4eVn3fLzshuuuQI1ZXH6jqXqStay6eZWz0ZvowsDgNefCFL?= =?us-ascii?Q?dpzJwXRg8NVfoYq+nr3yEuimdljrZVdvB0Vy5u0Gl5feL4J3OlXdkmhjCzij?= =?us-ascii?Q?X0xNSmqNXfzKHwXtjOtNfF5/4zhODVlER6w0Dx3yxiDpFys9rXicA5M0LZGS?= =?us-ascii?Q?46NttUGFreVC8DTGgOXNzuA3JyUu3ZYYspxIArJSv2p3GDICMrS1V4eR7ZzR?= =?us-ascii?Q?qyvMQkfy5utheIL1BE9d3dBa/lfHSg3TcejPhw1M33pAhUjevRVzFyxlFy5Y?= =?us-ascii?Q?+AE8phxIINx+Z1tP8m9Cp3Nh7RFTpu5jwiamx7/MVBFnyBjMfRsNwpcX7MG7?= =?us-ascii?Q?83xX41dF89MPuYOPbwiVlxWfRLKL+sscD5ztzHOEFGd487C5h7LBjx6abLpI?= =?us-ascii?Q?8Z2YUZm57XdupM0suLpVnKXYQSNuoXsQN6XkJoWfhYsUYl2Ez7aJBtGfcIxj?= =?us-ascii?Q?iX162sZwhc3XA/Ft4SiXrHr7bGSz1xVSpIiRTkxP6EDZgP26d1jeY+8A538Z?= =?us-ascii?Q?yQDXa6XXUhyuFHFYhc1R84XwzitP?= X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2024 18:52:12.7542 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 402ac230-347c-4442-ce38-08dcea25d167 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00002311.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7660 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 Use get_restore_flags() internal API introduced in previous commits in rte_eth_dev_start(), to restore only the configuration requested by the driver. Signed-off-by: Dariusz Sosnowski --- lib/ethdev/rte_ethdev.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index 362a1883f0..c46107c4de 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -1719,20 +1719,27 @@ eth_dev_allmulticast_restore(struct rte_eth_dev *dev, uint16_t port_id) static int eth_dev_config_restore(struct rte_eth_dev *dev, - struct rte_eth_dev_info *dev_info, uint16_t port_id) + struct rte_eth_dev_info *dev_info, + uint64_t restore_flags, + uint16_t port_id) { int ret; - if (!(*dev_info->dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR)) + if (!(*dev_info->dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR) && + (restore_flags & RTE_ETH_RESTORE_MAC_ADDR)) eth_dev_mac_restore(dev, dev_info); - ret = eth_dev_promiscuous_restore(dev, port_id); - if (ret != 0) - return ret; + if (restore_flags & RTE_ETH_RESTORE_PROMISC) { + ret = eth_dev_promiscuous_restore(dev, port_id); + if (ret != 0) + return ret; + } - ret = eth_dev_allmulticast_restore(dev, port_id); - if (ret != 0) - return ret; + if (restore_flags & RTE_ETH_RESTORE_ALLMULTI) { + ret = eth_dev_allmulticast_restore(dev, port_id); + if (ret != 0) + return ret; + } return 0; } @@ -1742,6 +1749,7 @@ rte_eth_dev_start(uint16_t port_id) { struct rte_eth_dev *dev; struct rte_eth_dev_info dev_info; + uint64_t restore_flags; int diag; int ret, ret_stop; @@ -1769,8 +1777,11 @@ rte_eth_dev_start(uint16_t port_id) if (ret != 0) return ret; + restore_flags = rte_eth_get_restore_flags(dev, RTE_ETH_START); + /* Lets restore MAC now if device does not support live change */ - if (*dev_info.dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR) + if ((*dev_info.dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR) && + (restore_flags & RTE_ETH_RESTORE_MAC_ADDR)) eth_dev_mac_restore(dev, &dev_info); diag = (*dev->dev_ops->dev_start)(dev); @@ -1779,7 +1790,7 @@ rte_eth_dev_start(uint16_t port_id) else return eth_err(port_id, diag); - ret = eth_dev_config_restore(dev, &dev_info, port_id); + ret = eth_dev_config_restore(dev, &dev_info, restore_flags, port_id); if (ret != 0) { RTE_ETHDEV_LOG_LINE(ERR, "Error during restoring configuration for device (port %u): %s", -- 2.39.5