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 E5FF445C16; Wed, 30 Oct 2024 16:21:20 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D340C4028F; Wed, 30 Oct 2024 16:21:20 +0100 (CET) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) by mails.dpdk.org (Postfix) with ESMTP id 883B240281 for ; Wed, 30 Oct 2024 16:21:19 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1730301680; x=1761837680; h=message-id:date:subject:to:references:from:in-reply-to: content-transfer-encoding:mime-version; bh=QRx/m8GykFq68CwPW0e2q4X4J6aQCKwyMwGg1T6iMM0=; b=P8YU5qEf0O6lE+TzqMkMaXKerahKPAkXlPBm9WbUeR7jKQK+RfKENUpe bdQB6prz9ohRNmekw3BaP7ooAjxcfDAFsZbmMbkIktXAVpat8eAkp1nsh QENc31NzkFkIrRi91yw6KOuMR55ERiDcz8sOZFPxIKoQ1ITbB2iP53A4e p5FONQ+2xeimK3YHLR3VyR1TWD62DHs5ZPX99D47e1YmP7LhKSDZPx4fL uWmxfmA1zDBUCehu5f+h2/3eS/Kt6e1dshUXX+Qry4vlXeaPZuLFSEpyy dQdyn4Q+EYRNwflP0Lr4dAOjvT2uxNz/IKJ7odzEJg5GQR5g3ITAttQfY g==; X-CSE-ConnectionGUID: Hkc/vBpBSCSuhHvv/d+FCQ== X-CSE-MsgGUID: Z3vTGItvQM+xHWKIETRGrw== X-IronPort-AV: E=McAfee;i="6700,10204,11241"; a="40580089" X-IronPort-AV: E=Sophos;i="6.11,245,1725346800"; d="scan'208";a="40580089" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Oct 2024 08:21:18 -0700 X-CSE-ConnectionGUID: aVTmg7RGQLikrWTHvJ/NsA== X-CSE-MsgGUID: EKf3CNKWSueBmnXJtFPF1A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,245,1725346800"; d="scan'208";a="82456741" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmviesa008.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 30 Oct 2024 08:21:15 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 30 Oct 2024 08:21:14 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Wed, 30 Oct 2024 08:21:14 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.45) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Wed, 30 Oct 2024 08:21:13 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DQc8O4hx6IPASRZMwW9vgMP4U3k842HYhVr5kgnxybpplhpf8ku6RWKebSL5wIN6LW/+4nm1nDIvTyAwvSIeXfo+rv2xFLgyMpKMW48taoSX23fB1B8a+dYTFpdKQVSL3Z7re+mQjEb3IN06p9b/ugE6QovodORcXZldlNYtAt8vyIAO03j3XCnPoxBRNyjzb6NxdKe1PBOAhRD3blT/hpaMkVY0CvcDAfhTptVUsSQkLV7hUJhQTjPaYDqIEmqCGDKovpb4X1jAJmwhE65tHWHrsyDhl3BMl3sr2bpAgmemIvAWd/L4IINIlc5rsxD03VA0zNJoOiQtorZXRbQL0w== 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=3iWjBiETqNU0peHLRjPFCkgtnVqE3gFVOYCD/Tx2TDg=; b=rgX9CrSsLNBrOSdTPqZ/3d1HQOyipmAFCWvezCK2Nn12ubUwSeNLsLYd7glWrCK1fe5gwSq50I/xtDX7KHuw0HbbUgOIup3KBgd1lb/lol+hiRdQVcvNby1ujO1OIJT6vRoX0QXy3TwjovoIe21EIZe6ULBcNWtEIsHe2o+hRzpDngc/PJgWTMUEw6/PUJ2CFUXzCit3zDWMdwixi993mvitDFTSe/SZrEX5LnEB7almZ5cZx6zLqSo7VEIM926E0uZCflmCnWjMnz4+CrZkb0rKrDJh+MbJpJPa0MtqKJJRnlLp0OaWlVBscPxQs/vYUU/xxf9CBSkQPR8mzS0JBA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from SJ0PR11MB5772.namprd11.prod.outlook.com (2603:10b6:a03:422::8) by SJ0PR11MB7153.namprd11.prod.outlook.com (2603:10b6:a03:48d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8093.32; Wed, 30 Oct 2024 15:21:11 +0000 Received: from SJ0PR11MB5772.namprd11.prod.outlook.com ([fe80::5851:319:3da6:850b]) by SJ0PR11MB5772.namprd11.prod.outlook.com ([fe80::5851:319:3da6:850b%4]) with mapi id 15.20.8114.015; Wed, 30 Oct 2024 15:21:11 +0000 Message-ID: Date: Wed, 30 Oct 2024 15:21:07 +0000 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v6 1/5] net/ice: add option to download scheduler topology To: Bruce Richardson , References: <20240807093407.452784-1-bruce.richardson@intel.com> <20241029170157.1390724-1-bruce.richardson@intel.com> <20241029170157.1390724-2-bruce.richardson@intel.com> Content-Language: en-US From: "Medvedkin, Vladimir" In-Reply-To: <20241029170157.1390724-2-bruce.richardson@intel.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: ZR0P278CA0156.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::6) To SJ0PR11MB5772.namprd11.prod.outlook.com (2603:10b6:a03:422::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR11MB5772:EE_|SJ0PR11MB7153:EE_ X-MS-Office365-Filtering-Correlation-Id: 1a6d6b4c-7095-4945-bb2e-08dcf8f67c37 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?a0dhazlsUWthL2kvaEtrb01rWTlKZzFsUmordWExZTBNaE54RGhyMWI3Vndn?= =?utf-8?B?MElqemNwQVdRdGZzRVVSYkM3U29Yekc1M0x4N1NIUU03K283NTdMNzlpcnl2?= =?utf-8?B?S29aTWRubUxoRmdHaGdZY09DTTYwNXlkNnBxcWlUTm5MSCtaQ0FZMFk1U2hy?= =?utf-8?B?UDBJNGhDUTRkbXJCcjIzeVhJR3huQ0YwMVhTYVlBcW13RGlFb3FLWHhmeElL?= =?utf-8?B?YXJHSWJncmJaaWNQejVPZlpieTEzT29VOFdjaEFqTkZSZm1Td2laVlArMHhx?= =?utf-8?B?OUZkVUt4Z3RHSFk4akNPWG93Qi9MMThQWGRnYjYyREV3RmJSclRIK2RSMHZx?= =?utf-8?B?RjhRK0p5cDlBa3E5TmRvc1BETVl3Ty83UVR0Vnp0RjZ0OFBOaHJuS2pOVDRH?= =?utf-8?B?czRPSnA0MERuTkExQzJGS0dIMlhFZndkU1ZoamdDUENrOU1lRUE3ZHVybXpQ?= =?utf-8?B?aHVCRHFMbEwyd2ZmTEVBV2xYVzNJR240QXhkTVEzOGlqRGpUU0ZMd2hjS1Jz?= =?utf-8?B?WVZVTGQ3aEtKWU01czVrRklvR0p3VEd4QXdQRCtSUDAwVUJVbC9xdmtEZWZn?= =?utf-8?B?ZjRNK1VZTUpYM2hheEhTcFFLdThHMysxbGE2UTdwOTloZzFQeGdteXV5OHp4?= =?utf-8?B?YzN4V2I1UVllVFpzdWVrZUVLUnc5aDR2cmIrWWIxdmhKOWtzU0FKbTlPK29N?= =?utf-8?B?blNVUlJCbldmRXVsa203N2IvcnJNODhZdlFKc3ZjMHRzQTJGYW1tUHRGdnRj?= =?utf-8?B?NWU1Z0hnMGM2MmR3am5JYkNUR0JxWkNuaHJqRkw4WWx5VldJay84K2svemww?= =?utf-8?B?NEhIN2kwMVg3dE9MeWRUdG1OUk9WNS9jTzdxMExpdDNsbENhcGxMczEyNisw?= =?utf-8?B?UTB1STJKWnNxN2t6Q29KR1hoSFgreXh3VFkzU1c1QWZSMnJ1V08xUmdYYXpT?= =?utf-8?B?ZFF1NlFYakg1UW50ekR5NENjTDVOZkY5eGUrOTBvOE5qUWhPTzRGckdLTk9W?= =?utf-8?B?Qkt2S1VPdmpHZG81SXR2S3YvUFNDeklXeDJRTXlnY0FvVW0wSzhndnpJcTQv?= =?utf-8?B?Zmo2dkIwQWpOWk9zYmdzM1NzZnFZNk0vQ0xNMTBycW9LZzV3WHVJUUdzY0w0?= =?utf-8?B?RGtXMzJQbm54c2VkcWRmWEZYNTBVMUdObGJCeGhyS2lzVnFkYzVRWFZzYkJt?= =?utf-8?B?ZGN6TTBhd00xVGFUZ0FydUQ2eEk1K3crWk1XcTU4SEFzcnVCbWgzUzNmam1r?= =?utf-8?B?eVpvTUYrWFJWTEpiSmd0MHI4emRQV2lHR0JNZlFIbWtNSnV1VUpLQ2hKZXhv?= =?utf-8?B?Mkc1bzdyMXhiT2sxenJ5d2hGOUdQUHZNcHpDZWEyUTNkM245Skh3RHdtQ29u?= =?utf-8?B?eDROWDhqWjM2MmVIeFRmdmV4VW85TVNZZXZKb0tuRkttWW9mdXNHZzVnTnV3?= =?utf-8?B?a0x3aTB0MW1GbTkxSk5MRVFnKzlWeVlhVmQ2dlRnelAyUGw1Vk5hVStDelB5?= =?utf-8?B?YWtzWUd4QnpMTTlHTTJjLzR0ZnY3YUZxaWdNS2hhZmk2c1UyMGMxamV3alJs?= =?utf-8?B?OUk4WVhNaHc3YUMzWUlwN3ZxemM1NEVlZ1JqZFI2YmsrSEVxTmduLzFkcExi?= =?utf-8?B?dXMxVC9RSDQxTU93QzJCYkpoTjlPOHNvSHNmRGpjVUV5SjB4eGJLMWlkWUVz?= =?utf-8?B?elE1c1dXRWNSVGN4SkZYbGp2YWxBeEY5WlBnWGszdFF3eFB2OXp0bXNxYmNM?= =?utf-8?Q?KT9eZLiAXM3/vJLTBKuzKn5ry/HsFcMfV/8Mxpv?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR11MB5772.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NUN5MW8zME15dGIzM0N0Q3lqQ25CZCtRbHJuR2VaQzkyMzVSVWtYUkNOSnow?= =?utf-8?B?Zk1RYjNGb3BoMld3QkdjekZtM3gxVjRMOERFOHJ3UElrSG1aZnpINVo3MTZ0?= =?utf-8?B?WUhpNTRvZ2RiYnhnQnhpUVVvN3I0WkZlY2ZzeEhUTXlhbHZBcXlyYkZQbmxu?= =?utf-8?B?dGdTenVwMVl4elludXRSQVN6V1ljaWxWZ01KTjVzRDFMT0NPZ05ac3Y3S3Jo?= =?utf-8?B?SEtIODlzS1JBRHprOVpTR0JFUm10Q0wybXB0T3dNb1lkUm4rUDN3WmFHYy9v?= =?utf-8?B?Wi9oOG9FRjlqMjBGQzJLbHpERVoybk5Ec3ZoUGJqWEFHdTNKU3JJSGJMVHZC?= =?utf-8?B?TGdaZDR3VTU3Q1Jmd01PamhGZnpBNGlJQ0FDbmhoOUFpb2tMaTNuWnk2bHhZ?= =?utf-8?B?MG9UdTZGbUY2cDBpWkNTZjN6ZmszelBPcy9IQ0hqNmRRVUpDM3FzdXp5dFlQ?= =?utf-8?B?emgzMGhqeHAza0hNUnByTUw3MkJVNEtIaE1DQXE1blFaRjJDMUM2eHpTbG96?= =?utf-8?B?a2YwS0g3MUpVZkd3LzZjMmJ3NWxnMHFZTGdUUUMxbStKWUc2SzBiRHBEUW9q?= =?utf-8?B?VEl5Q3R5NW1vdTRzT25sQUFhQ3B4UDJlM0FGdDNQem1SUUZoaVZ4U0gxTnA0?= =?utf-8?B?Ri9KVHZBcFZoZVB1SVZnOWlDR0VvUE5FNzgwUUU1VmY4SktkUW5ac2x4anFW?= =?utf-8?B?QjhQc2ZXRUxWeE9kSXpzdVF4aGtOODY3RlZrTlZuZkxrd0pYb0k0cjUvN0cz?= =?utf-8?B?NHNPVERNcHhib3pGT2ZTS0I4enNMTkZxTmpMSXk2WnZvbXhFSzdUVFNZL3BF?= =?utf-8?B?RDlwb3M3TUorS2I3QWJyR3phMmgzd2xsQXpNazl5Zm5wOTRtMmVxcVpYdHZJ?= =?utf-8?B?Q3loVCs3czhUeEVzak0rcHUvQXdSUWVtWWFRMFA0ckoyNEhJS214VHpqQ1Iw?= =?utf-8?B?Rk5YeFYrcnFhSFlQQi9uZHRjODB6V25WbitxcmhGQmFrMERXNTl4c0lTK1Vv?= =?utf-8?B?am1pTUI5djR6dnRtbjNTbnRUUkxiZS9XTUZhTFNCQ0dzUnl3UmRmUEg3QmhC?= =?utf-8?B?MXNOWUVuak1Ic1VHeEZyZTRrWSs1Vnh5V25ic3I4amNGc05ESW9GWGU5VU5x?= =?utf-8?B?M05XSkNrRzczU0FFWUVFdzZIeVI1bUJtR2d1WkZMN1RBdXpsdkRaaGdvK0Rh?= =?utf-8?B?U05ubkdaZXZRR1JGQVFhYlllNW90aUJET0ljUUlVcXVPRmRveWxuNlFTOGM1?= =?utf-8?B?eWZLRE9KdGRXVEFUWTlEcUJ3NGY0L1lMY0pvaHJmWlpjS0NzbFNXU3Q2SDk3?= =?utf-8?B?VFVTOU9hNnBTd0hCWTVyblRzS0Z4VnRWcDhJWFhsdnFDR1lVNDA3elJtcUpB?= =?utf-8?B?ZGxiUnFFSmJkcW8wQ09lcVpyMCtQWm03NXpsRDZoZEQzTHRhT1NGbWowemNu?= =?utf-8?B?N2xkd3BETTRNeWlTVXo3MEZsODQ3YkpmYU9vTWpvSm1vQkFvSkNmT3JQZjFu?= =?utf-8?B?Mk5XYlJSaWVmTnhUdHZ5UEE0STUxemFFRmFoMmd3bDVFUjBnMDEvSXVHTTlZ?= =?utf-8?B?UDFua3JrUjFHaUFzbWF3OWVjZ3d1OTBXR0hRNnRJV3Fndnh0SU5odkFkdHN1?= =?utf-8?B?WTI0YTRlbWRYTjRhR2w0WEJxOGtoeHNXY3RPM1ZLUTlxRzR1cU9DbGlZWlZ5?= =?utf-8?B?ZGZ2alFTMVhOTXlFRjY2Y1VTUGtUdStNME0wZHhYTFdSU2FRZ3g3b0txbEpJ?= =?utf-8?B?WUk1LzY1N09xWmtBODFZbzNiYldXSDJPTFkwbm5jei94a2tiNnNKMytzTC9j?= =?utf-8?B?RWxOaW8wRFcxd0lpdkF4U1lDeGNqR3lBUU93TXdwaTNqVUNIYkZFVG0rTkRY?= =?utf-8?B?U281T3NTWk9zUjRqMnBuWWpHMXAxWjV1MmM5VkIvOFZ5cGVQZ0FNeWpGVEwy?= =?utf-8?B?WUtJczduSU1nRDdGVWwwN0drT1hTWjNoc3IzYVhNbnEzNFpBME5LSUNJb2Jn?= =?utf-8?B?cGwwUEVsOHRBRUxvbWNjdndzUEMzWmk1M05jb3oveGhZZE5YblV3MU82MFpJ?= =?utf-8?B?ZCtjMEZpYlY3cGFHalUrOFVLTTMyWE4wRnk1Qnk3clpQejJ0cC92Vm9vMW5u?= =?utf-8?B?SHlNSDFsVC9XUitqUDZyamFWZ3dXdHBwL2NoVEJxeUUvMUhtNW83dTdnL2U2?= =?utf-8?B?NFE9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 1a6d6b4c-7095-4945-bb2e-08dcf8f67c37 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR11MB5772.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2024 15:21:11.2112 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rz7UPsNDrpd2vLFpehXefkt9qEL+lWP2GTWcosFHohVgMYg1wj1VyZsLUupqWwKDplWjGSoIpGwF8CecY1cJgPbzq2QesV3rgG6i+ldA8NM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB7153 X-OriginatorOrg: intel.com 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 Acked-by: Vladimir Medvedkin On 29/10/2024 17:01, Bruce Richardson wrote: > The DDP package file being loaded at init time may contain an > alternative Tx Scheduler topology in it. Add driver option to load this > topology at init time. > > Signed-off-by: Bruce Richardson > --- > doc/guides/nics/ice.rst | 15 +++++++++++++++ > drivers/net/ice/base/ice_ddp.c | 20 +++++++++++++++++--- > drivers/net/ice/base/ice_ddp.h | 4 ++-- > drivers/net/ice/ice_ethdev.c | 26 ++++++++++++++++---------- > drivers/net/ice/ice_ethdev.h | 1 + > 5 files changed, 51 insertions(+), 15 deletions(-) > > diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst > index 6c66dc8008..42bbe50968 100644 > --- a/doc/guides/nics/ice.rst > +++ b/doc/guides/nics/ice.rst > @@ -298,6 +298,21 @@ Runtime Configuration > As a trade-off, this configuration may cause the packet processing performance > degradation due to the PCI bandwidth limitation. > > +- ``Tx Scheduler Topology Download`` > + > + The default Tx scheduler topology exposed by the NIC, > + generally a 9-level topology of which 8 levels are SW configurable, > + may be updated by a new topology loaded from a DDP package file. > + The ``ddp_load_sched_topo`` option can be used to specify that the scheduler topology, > + if any, in the DDP package file being used should be loaded into the NIC. > + For example:: > + > + -a 0000:88:00.0,ddp_load_sched_topo=1 > + > + or:: > + > + -a 0000:88:00.0,ddp_pkg_file=/path/to/pkg.file,ddp_load_sched_topo=1 > + > - ``Tx diagnostics`` (default ``not enabled``) > > Set the ``devargs`` parameter ``mbuf_check`` to enable Tx diagnostics. > diff --git a/drivers/net/ice/base/ice_ddp.c b/drivers/net/ice/base/ice_ddp.c > index c17a58eab8..850c722a3f 100644 > --- a/drivers/net/ice/base/ice_ddp.c > +++ b/drivers/net/ice/base/ice_ddp.c > @@ -1333,7 +1333,7 @@ ice_fill_hw_ptype(struct ice_hw *hw) > * ice_copy_and_init_pkg() instead of directly calling ice_init_pkg() in this > * case. > */ > -enum ice_ddp_state ice_init_pkg(struct ice_hw *hw, u8 *buf, u32 len) > +enum ice_ddp_state ice_init_pkg(struct ice_hw *hw, u8 *buf, u32 len, bool load_sched) > { > bool already_loaded = false; > enum ice_ddp_state state; > @@ -1351,6 +1351,20 @@ enum ice_ddp_state ice_init_pkg(struct ice_hw *hw, u8 *buf, u32 len) > return state; > } > > + if (load_sched) { > + enum ice_status res = ice_cfg_tx_topo(hw, buf, len); > + if (res != ICE_SUCCESS) { > + ice_debug(hw, ICE_DBG_INIT, > + "failed to apply sched topology (err: %d)\n", > + res); > + return ICE_DDP_PKG_ERR; > + } > + ice_debug(hw, ICE_DBG_INIT, > + "Topology download successful, reinitializing device\n"); > + ice_deinit_hw(hw); > + ice_init_hw(hw); > + } > + > /* initialize package info */ > state = ice_init_pkg_info(hw, pkg); > if (state) > @@ -1423,7 +1437,7 @@ enum ice_ddp_state ice_init_pkg(struct ice_hw *hw, u8 *buf, u32 len) > * related routines. > */ > enum ice_ddp_state > -ice_copy_and_init_pkg(struct ice_hw *hw, const u8 *buf, u32 len) > +ice_copy_and_init_pkg(struct ice_hw *hw, const u8 *buf, u32 len, bool load_sched) > { > enum ice_ddp_state state; > u8 *buf_copy; > @@ -1433,7 +1447,7 @@ ice_copy_and_init_pkg(struct ice_hw *hw, const u8 *buf, u32 len) > > buf_copy = (u8 *)ice_memdup(hw, buf, len, ICE_NONDMA_TO_NONDMA); > > - state = ice_init_pkg(hw, buf_copy, len); > + state = ice_init_pkg(hw, buf_copy, len, load_sched); > if (!ice_is_init_pkg_successful(state)) { > /* Free the copy, since we failed to initialize the package */ > ice_free(hw, buf_copy); > diff --git a/drivers/net/ice/base/ice_ddp.h b/drivers/net/ice/base/ice_ddp.h > index 5512669f44..d79cdee13a 100644 > --- a/drivers/net/ice/base/ice_ddp.h > +++ b/drivers/net/ice/base/ice_ddp.h > @@ -454,9 +454,9 @@ ice_pkg_enum_entry(struct ice_seg *ice_seg, struct ice_pkg_enum *state, > void * > ice_pkg_enum_section(struct ice_seg *ice_seg, struct ice_pkg_enum *state, > u32 sect_type); > -enum ice_ddp_state ice_init_pkg(struct ice_hw *hw, u8 *buff, u32 len); > +enum ice_ddp_state ice_init_pkg(struct ice_hw *hw, u8 *buff, u32 len, bool load_sched); > enum ice_ddp_state > -ice_copy_and_init_pkg(struct ice_hw *hw, const u8 *buf, u32 len); > +ice_copy_and_init_pkg(struct ice_hw *hw, const u8 *buf, u32 len, bool load_sched); > bool ice_is_init_pkg_successful(enum ice_ddp_state state); > void ice_free_seg(struct ice_hw *hw); > > diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c > index d5e94a6685..da91012a5e 100644 > --- a/drivers/net/ice/ice_ethdev.c > +++ b/drivers/net/ice/ice_ethdev.c > @@ -39,6 +39,7 @@ > #define ICE_RX_LOW_LATENCY_ARG "rx_low_latency" > #define ICE_MBUF_CHECK_ARG "mbuf_check" > #define ICE_DDP_FILENAME_ARG "ddp_pkg_file" > +#define ICE_DDP_LOAD_SCHED_ARG "ddp_load_sched_topo" > > #define ICE_CYCLECOUNTER_MASK 0xffffffffffffffffULL > > @@ -56,6 +57,7 @@ static const char * const ice_valid_args[] = { > ICE_DEFAULT_MAC_DISABLE, > ICE_MBUF_CHECK_ARG, > ICE_DDP_FILENAME_ARG, > + ICE_DDP_LOAD_SCHED_ARG, > NULL > }; > > @@ -1997,7 +1999,7 @@ int ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn) > load_fw: > PMD_INIT_LOG(DEBUG, "DDP package name: %s", pkg_file); > > - err = ice_copy_and_init_pkg(hw, buf, bufsz); > + err = ice_copy_and_init_pkg(hw, buf, bufsz, adapter->devargs.ddp_load_sched); > if (!ice_is_init_pkg_successful(err)) { > PMD_INIT_LOG(ERR, "ice_copy_and_init_hw failed: %d", err); > free(buf); > @@ -2029,20 +2031,19 @@ ice_base_queue_get(struct ice_pf *pf) > static int > parse_bool(const char *key, const char *value, void *args) > { > - int *i = (int *)args; > - char *end; > - int num; > + int *i = args; > > - num = strtoul(value, &end, 10); > - > - if (num != 0 && num != 1) { > - PMD_DRV_LOG(WARNING, "invalid value:\"%s\" for key:\"%s\", " > - "value must be 0 or 1", > + if (value == NULL || value[0] == '\0') { > + PMD_DRV_LOG(WARNING, "key:\"%s\", requires a value, which must be 0 or 1", key); > + return -1; > + } > + if (value[1] != '\0' || (value[0] != '0' && value[0] != '1')) { > + PMD_DRV_LOG(WARNING, "invalid value:\"%s\" for key:\"%s\", value must be 0 or 1", > value, key); > return -1; > } > > - *i = num; > + *i = (value[0] == '1'); > return 0; > } > > @@ -2307,6 +2308,10 @@ static int ice_parse_devargs(struct rte_eth_dev *dev) > if (ret) > goto bail; > > + ret = rte_kvargs_process(kvlist, ICE_DDP_LOAD_SCHED_ARG, > + &parse_bool, &ad->devargs.ddp_load_sched); > + if (ret) > + goto bail; > bail: > rte_kvargs_free(kvlist); > return ret; > @@ -7185,6 +7190,7 @@ RTE_PMD_REGISTER_PARAM_STRING(net_ice, > ICE_SAFE_MODE_SUPPORT_ARG "=<0|1>" > ICE_DEFAULT_MAC_DISABLE "=<0|1>" > ICE_DDP_FILENAME_ARG "=" > + ICE_DDP_LOAD_SCHED_ARG "=<0|1>" > ICE_RX_LOW_LATENCY_ARG "=<0|1>"); > > RTE_LOG_REGISTER_SUFFIX(ice_logtype_init, init, NOTICE); > diff --git a/drivers/net/ice/ice_ethdev.h b/drivers/net/ice/ice_ethdev.h > index 076cf595e8..2794a76096 100644 > --- a/drivers/net/ice/ice_ethdev.h > +++ b/drivers/net/ice/ice_ethdev.h > @@ -564,6 +564,7 @@ struct ice_devargs { > uint8_t proto_xtr[ICE_MAX_QUEUE_NUM]; > uint8_t pin_idx; > uint8_t pps_out_ena; > + uint8_t ddp_load_sched; > int xtr_field_offs; > uint8_t xtr_flag_offs[PROTO_XTR_MAX]; > /* Name of the field. */ -- Regards, Vladimir