Message ID | 20240115025419.2447759-1-chaoyong.he@corigine.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 4DDFF438C7; Mon, 15 Jan 2024 03:54:48 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CDD4D4029F; Mon, 15 Jan 2024 03:54:47 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2100.outbound.protection.outlook.com [40.107.236.100]) by mails.dpdk.org (Postfix) with ESMTP id 86E5840272 for <dev@dpdk.org>; Mon, 15 Jan 2024 03:54:46 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ixn7h5R8wfFAWHQVIjpdZ6o+HbytGk6ad/QJ6nZR7Lzgzouh2T//2UAStNPsESnunOYUq3+jzM4JsIR0dfhHqfp8ENHGbISO+fYKGo8qb1zCmpS8hZ8YlZmvJsMX3RPx9/+dyLzmfbY4QNGhSBLD1oui1/teNLU5wk8YgeGsQ4fhWt3sK3WYK7A3d/IYQf7E2HYgdNtnqoQN/2IT3f54Gc0EwuEpV/rdIL9Cp9kpCieHXjU5xre6UzDnWaW66hTOb9SmshRyKdUHfuY5TMRGsmjr1Q7L0NlTB2y16RCQt+gN1VlxbLblj9X+8MtylIyePwwrfebroa/hpx1oA6yd5g== 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=EQ/SDa2xTMqJrPyUbuymX0JUtr+Ixoynm9bWfAkPioQ=; b=bpMnJABZsz18NISAHSSajCuEYJCe9eW5zAocSS9mkhFvXjKJ3oSpVWjDLduA9W9vJCXQiIQzkVsRPKvfXL43MMUFMfJro05yWjCgR/0WlXcMjnOGbe21JQXL5T6ZAEWavpMkbOHl4zjtO2qTNZbcc1gfwzeYupJ+Zjo4BW95p7StEcPNGYnCLzVUwyfeILJhkIJWjm3rxHBEhPb7Q3UiACyLeoNVb2lKT9XDS/DZQz3cETaXZ/Q/K/QAbDP64tx+KwqIMkmHdlhsp8RJm34zGEROIcLG+esOWohXANtbUM3hSjBS6jxOBGTcJmMCW9vB03z8ZXCDZBdnF/QBkH+SwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EQ/SDa2xTMqJrPyUbuymX0JUtr+Ixoynm9bWfAkPioQ=; b=qpj4dLfY9OZioIl0a48MdotX+jJXu2bg2UpZ9dghytFhAmFgKex0Ukz/v57b88yzEk5piR+8pvdDvYQlQMZjXuqa8KVXdSbvTen4UlVrwK9UTv7ctn3np63HI6KV1ZA3W6gpMZNv+Gg7bxGk0hfVPCZPu+XcG2lKP0EKwhZeCbA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BL3PR13MB5242.namprd13.prod.outlook.com (2603:10b6:208:345::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.21; Mon, 15 Jan 2024 02:54:43 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::8e02:f738:570a:f8aa]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::8e02:f738:570a:f8aa%7]) with mapi id 15.20.7181.026; Mon, 15 Jan 2024 02:54:43 +0000 From: Chaoyong He <chaoyong.he@corigine.com> To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He <chaoyong.he@corigine.com> Subject: [PATCH 0/8] optimize the firmware loading process Date: Mon, 15 Jan 2024 10:54:11 +0800 Message-Id: <20240115025419.2447759-1-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: PH0PR07CA0025.namprd07.prod.outlook.com (2603:10b6:510:5::30) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BL3PR13MB5242:EE_ X-MS-Office365-Filtering-Correlation-Id: 587e85b2-b213-44a7-f494-08dc15755338 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TUHUhCIoenVXDVspYU2vLiEbdy8vq1koM3jgQfWxvrV25GeWxyh2exju5MI3q1S5pe69gdaxOEwiZCo0pigPPuIEuusukM8NQm8TT27kpr8l3CPLw67hYoIqluf7/KBbxFzvvc5jUvuzu0bqTan/lQUKqLSNc7tXCxGJCLcu/n3trai3qHeBxABOWlLcV8hfGdGXSLMdMrHoUOGRVIvTM6OCCuoqUNgahBdHp3D0DHJnFlFTdt3tCNvhXBuRYv9Hc7LGMGA0ovjzVyNX0hA6vIMwHerIJNQtWCNEjqxN0s0JW4RWdgPRAULkqXICuSr02BTCTS19d5wJI2Y/YrYYU/0gtw5Aq8Wbpi17FPdZZJ6QceTKnfOOqp6GUN2x1PqeRVJiufuCYf9ULxlAT7luolyukmM4rYPOh+prlqN2PXtlAza5SYsNXSmfvKV3C1unZoDhNUEXlAtrXS8LaDr3N6xM5Fxw5tX1zt+m6Gmt9a/3wYsSgBLLMdRO1IzJPAuHI+0URV8CIvhY5McMXPSExX8FoEeWxLMfoPvyIZqMjUjbaSxT0KJqFl+Od7v1PoJnW8diGW7GBQYR9mnbT7t95ejuRohyZtX+vXMExvUcOJaJhBCVsOWA4noGlIRwTUvP X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39830400003)(136003)(396003)(346002)(376002)(366004)(230922051799003)(1800799012)(64100799003)(451199024)(186009)(6512007)(2616005)(26005)(1076003)(107886003)(83380400001)(6486002)(316002)(52116002)(8676002)(4326008)(66476007)(478600001)(6916009)(86362001)(6506007)(6666004)(66556008)(66946007)(38100700002)(44832011)(8936002)(38350700005)(41300700001)(5660300002)(2906002)(36756003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IOr5Be9fqbUNA7QI4c0ky73LQQ3PUmxp3j10McCPunpyjo573tzEEaE7KbEJ5ChkWw05DY0uBATOvAiJR1YGaGB4MeNAuIN80sYBLGctvsMShzbwB8CgphAjYqp9SuZ+WFxzaUrEjGhIYQbo5qFWmKZF+Ex+2byhYRXviMAZ2225i6VkqiI+2PHDjLbbi7SPIxA5ABu5QNxm+CAdqHG/jkTA5Jz4ypyCKQp7RS8lgeo2Fr7YtqdzpiL9QGdhYiivo7+zG2nSacEyBJeGe3xC4iqL7xsLfixezX0QB+F33U25MXQ02J0CeblbK1Ev/tjHqDk8/RyhydJ4ZUEDbpx7J5+/sGSeEx1kkb8+VyXrJOdP2Dnp5RaM0FpKzorbIQaFQ+GEWrKKnJ9SDs5SkJFDH0b9K+UDrFh5fAIKOKS6T52yoDxZv1DQHv3jCth0jFTPK66MGus8F3pE9WOKLmj1VmDOfn507kDJCb0DxuoRBd9OQYRjq4Cj04mONVDXQFbEb84YtNebU5olfTrMF9hDQRORhhekCAwuIBxsAdDEo3QLr3PsgMI+ljf+YBz62BIQAQqq1tLD27YIWjQHr/S0nSQUM+ZinLW91GvKDQXQhWRrzORicsFmNJ/KhNRfWhgpA6FrJQf0zm8iljt2KsTcOBDm1hfdaYV4YpxVtu4R7UNV4KlfD1AX2oYxbCOkYTg7KqedcP9zR455bWZpqDnoj5IB0355RJcX3n4wHq1r/YmeCSmpgZMEyPCxRvjvvIr1E6mXNGsmq45je4+dWeeXVdaC40UfxqacqHVySCBU36deK8mlKh1YNjgArpOlBD6nu74gBT5ePs2zNJnroXD20OfQCSKulfPCXtnlJllWhonMcUoviPBEq7yZRSKNXcJMBESRas0VLiSY4u2CEXDco/lyyO6P+x0BiFN4TX/3ydSUJQ0GleNci36tdfB5Y97fzJ764k81nilZats5RPh+adT1dRk1qLvKM85+8VMJ8tpuuQJdbPT/rxFALdEgoQdZOO9Onbr/Pg94Tjl2W+4+fc84wNUdo5BRCQpno3omZqFIKBHrV8lahEZN4Jo9/wslmPF1g0xf0uAngTHDGo4CcboToproivZrX2v5Ez+HZYhL4ah0AI5UuBUHVYkg1LTZIuimUVnR6VYReY9h+rVla+n+47xBI0IQiwt2bvQGgL6swTimukmFBQsXtnn++Jjh6Lv2RJbnRfC85JC0PMGOBdPic72zLeEv2k39R4zdlU5ocPTejMShw7zNujM/ZxpnVrJu1J7SLgfRgNC7Hs6WXhLD7eaIdwy8p27HHlluP8fYzDPIHrchEXspKGIKv4Qq6kzuihO8+3Cv4lSbCwz4aals2lwlmv9k0HwYTsmEv3DzJkTL3UCrk417ARw8S8h8qPKMQFPC5R5Z//x1IBU80vsijVSr8X757SXEUYF6UmapbgeWJqRaeAXrR6OCs9bdX6CB0l5PBOYWp9E1fDOMlpo9wd7dLLnGOeMnlFasxRD3juJio+UWiK02o92gCQdMEWqhVwaWCyRitciEPSXwzUwbAly9/5vsvnyTBb+F8gCfgKwJtGITBCYfnYx8JwZqLCZt0uK6Ah/m0EVtmmpMeg== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 587e85b2-b213-44a7-f494-08dc15755338 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2024 02:54:43.4357 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vvY7yVCczji52xJ4VtoK7BK1NfO9BVvumFxBSpLpj+RN9rXZ4G117c1JRDOw62msqt+M0GKDlEGBfnHB/CRGRv8JaNXFYG45//a8TQMEBMA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR13MB5242 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org |
Series |
optimize the firmware loading process
|
|
Message
Chaoyong He
Jan. 15, 2024, 2:54 a.m. UTC
This patch series aims to speedup the DPDK application start by optimize the firmware loading process in sereval places. We also simplify the port name in multiple PF firmware case to make the customer happy. Peng Zhang (8): net/nfp: add the interface for getting the firmware name net/nfp: speed up the firmware loading process net/nfp: optimize loading the firmware process net/nfp: enlarge the range of skipping loading the firmware net/nfp: add the step of clearing the beat time net/nfp: add the elf module net/nfp: reload the firmware only when firmware changed net/nfp: simplify the port name for multiple PFs drivers/net/nfp/meson.build | 1 + drivers/net/nfp/nfp_ethdev.c | 264 +++++-- drivers/net/nfp/nfp_net_common.c | 17 + drivers/net/nfp/nfp_net_common.h | 2 + drivers/net/nfp/nfpcore/nfp_elf.c | 1078 +++++++++++++++++++++++++++++ drivers/net/nfp/nfpcore/nfp_elf.h | 13 + drivers/net/nfp/nfpcore/nfp_mip.c | 30 +- drivers/net/nfp/nfpcore/nfp_mip.h | 70 +- 8 files changed, 1388 insertions(+), 87 deletions(-) create mode 100644 drivers/net/nfp/nfpcore/nfp_elf.c create mode 100644 drivers/net/nfp/nfpcore/nfp_elf.h
Comments
On 1/15/2024 2:54 AM, Chaoyong He wrote: > This patch series aims to speedup the DPDK application start by optimize > the firmware loading process in sereval places. > We also simplify the port name in multiple PF firmware case to make the > customer happy. > <...> > net/nfp: add the elf module > net/nfp: reload the firmware only when firmware changed Above commit adds elf parser capability and second one loads firmware when build time is different. I can see this is an optimization effort, to understand FW status before loading FW, but relying on build time seems fragile. Does it help to add a new section to store version information and evaluate based on this information?
> -----Original Message----- > From: Ferruh Yigit <ferruh.yigit@amd.com> > Sent: Monday, January 22, 2024 11:09 PM > To: Chaoyong He <chaoyong.he@corigine.com>; dev@dpdk.org > Cc: oss-drivers <oss-drivers@corigine.com> > Subject: Re: [PATCH 0/8] optimize the firmware loading process > > On 1/15/2024 2:54 AM, Chaoyong He wrote: > > This patch series aims to speedup the DPDK application start by > > optimize the firmware loading process in sereval places. > > We also simplify the port name in multiple PF firmware case to make > > the customer happy. > > > > <...> > > > net/nfp: add the elf module > > net/nfp: reload the firmware only when firmware changed > > Above commit adds elf parser capability and second one loads firmware when > build time is different. > > I can see this is an optimization effort, to understand FW status before loading > FW, but relying on build time seems fragile. Does it help to add a new section > to store version information and evaluate based on this information? > We have a branch of firmware (several app type combined with NFD3/NFDk) with the same version information(monthly publish), so the version information can't help us, because we can't distinguish among them. But the build time is different for every firmware, and that's the reason we choose it.
On 1/23/2024 1:46 AM, Chaoyong He wrote: > > >> -----Original Message----- >> From: Ferruh Yigit <ferruh.yigit@amd.com> >> Sent: Monday, January 22, 2024 11:09 PM >> To: Chaoyong He <chaoyong.he@corigine.com>; dev@dpdk.org >> Cc: oss-drivers <oss-drivers@corigine.com> >> Subject: Re: [PATCH 0/8] optimize the firmware loading process >> >> On 1/15/2024 2:54 AM, Chaoyong He wrote: >>> This patch series aims to speedup the DPDK application start by >>> optimize the firmware loading process in sereval places. >>> We also simplify the port name in multiple PF firmware case to make >>> the customer happy. >>> >> >> <...> >> >>> net/nfp: add the elf module >>> net/nfp: reload the firmware only when firmware changed >> >> Above commit adds elf parser capability and second one loads firmware when >> build time is different. >> >> I can see this is an optimization effort, to understand FW status before loading >> FW, but relying on build time seems fragile. Does it help to add a new section >> to store version information and evaluate based on this information? >> > > We have a branch of firmware (several app type combined with NFD3/NFDk) with the same version information(monthly publish), > so the version information can't help us, because we can't distinguish among them. > > But the build time is different for every firmware, and that's the reason we choose it. > If version is same although FW itself is different, isn't this problem on its own? Perhaps an additional field is required in version syntax.
> >> -----Original Message----- > >> From: Ferruh Yigit <ferruh.yigit@amd.com> > >> Sent: Monday, January 22, 2024 11:09 PM > >> To: Chaoyong He <chaoyong.he@corigine.com>; dev@dpdk.org > >> Cc: oss-drivers <oss-drivers@corigine.com> > >> Subject: Re: [PATCH 0/8] optimize the firmware loading process > >> > >> On 1/15/2024 2:54 AM, Chaoyong He wrote: > >>> This patch series aims to speedup the DPDK application start by > >>> optimize the firmware loading process in sereval places. > >>> We also simplify the port name in multiple PF firmware case to make > >>> the customer happy. > >>> > >> > >> <...> > >> > >>> net/nfp: add the elf module > >>> net/nfp: reload the firmware only when firmware changed > >> > >> Above commit adds elf parser capability and second one loads firmware > >> when build time is different. > >> > >> I can see this is an optimization effort, to understand FW status > >> before loading FW, but relying on build time seems fragile. Does it > >> help to add a new section to store version information and evaluate based > on this information? > >> > > > > We have a branch of firmware (several app type combined with > > NFD3/NFDk) with the same version information(monthly publish), so the > version information can't help us, because we can't distinguish among them. > > > > But the build time is different for every firmware, and that's the reason we > choose it. > > > > If version is same although FW itself is different, isn't this problem on its own? > Perhaps an additional field is required in version syntax. Actually, it's just the role the build time which embed in the firmware plays, which is unique for every firmware, and which can't be modified once the firmware was published. What you said also has its mean, but in practice we can't accept(at least can't do it immediately), which needs to discuss with firmware team. If you insist that we should change the design, maybe we can just kick off two commits, and upstream the other commits? - net/nfp: add the elf module - net/nfp: reload the firmware only when firmware changed
On 1/23/2024 11:27 AM, Chaoyong He wrote: >>>> -----Original Message----- >>>> From: Ferruh Yigit <ferruh.yigit@amd.com> >>>> Sent: Monday, January 22, 2024 11:09 PM >>>> To: Chaoyong He <chaoyong.he@corigine.com>; dev@dpdk.org >>>> Cc: oss-drivers <oss-drivers@corigine.com> >>>> Subject: Re: [PATCH 0/8] optimize the firmware loading process >>>> >>>> On 1/15/2024 2:54 AM, Chaoyong He wrote: >>>>> This patch series aims to speedup the DPDK application start by >>>>> optimize the firmware loading process in sereval places. >>>>> We also simplify the port name in multiple PF firmware case to make >>>>> the customer happy. >>>>> >>>> >>>> <...> >>>> >>>>> net/nfp: add the elf module >>>>> net/nfp: reload the firmware only when firmware changed >>>> >>>> Above commit adds elf parser capability and second one loads firmware >>>> when build time is different. >>>> >>>> I can see this is an optimization effort, to understand FW status >>>> before loading FW, but relying on build time seems fragile. Does it >>>> help to add a new section to store version information and evaluate based >> on this information? >>>> >>> >>> We have a branch of firmware (several app type combined with >>> NFD3/NFDk) with the same version information(monthly publish), so the >> version information can't help us, because we can't distinguish among them. >>> >>> But the build time is different for every firmware, and that's the reason we >> choose it. >>> >> >> If version is same although FW itself is different, isn't this problem on its own? >> Perhaps an additional field is required in version syntax. > > Actually, it's just the role the build time which embed in the firmware plays, which is unique for every firmware, and which can't be modified once the firmware was published. > I see it is already in the elf binary but relying on build time of a FW to decide to load it or not looks a weak method to me, and fragile as stated before. > What you said also has its mean, but in practice we can't accept(at least can't do it immediately), which needs to discuss with firmware team. > As it is an optimization I assume it is not urgent, so would you mind discussing the issue with the FW team, perhaps it can lead to a better solution, we can proceed after that. Meanwhile I will continue with remaining patches, excluding these two patches. > If you insist that we should change the design, maybe we can just kick off two commits, and upstream the other commits? > - net/nfp: add the elf module > - net/nfp: reload the firmware only when firmware changed
On 1/15/2024 2:54 AM, Chaoyong He wrote: > This patch series aims to speedup the DPDK application start by optimize > the firmware loading process in sereval places. > We also simplify the port name in multiple PF firmware case to make the > customer happy. > > Peng Zhang (8): > net/nfp: add the interface for getting the firmware name > net/nfp: speed up the firmware loading process > net/nfp: optimize loading the firmware process > net/nfp: enlarge the range of skipping loading the firmware > net/nfp: add the step of clearing the beat time > net/nfp: add the elf module > net/nfp: reload the firmware only when firmware changed > net/nfp: simplify the port name for multiple PFs > Except 6/8 & 7/8, Series applied to dpdk-next-net/main, thanks.
> On 1/25/2024 2:06 AM, Chaoyong He wrote: > >>>>>> On 1/15/2024 2:54 AM, Chaoyong He wrote: > >>>>>>> This patch series aims to speedup the DPDK application start by > >>>>>>> optimize the firmware loading process in sereval places. > >>>>>>> We also simplify the port name in multiple PF firmware case to > >>>>>>> make the customer happy. > >>>>>>> > >>>>>> > >>>>>> <...> > >>>>>> > >>>>>>> net/nfp: add the elf module > >>>>>>> net/nfp: reload the firmware only when firmware changed > >>>>>> > >>>>>> Above commit adds elf parser capability and second one loads > >>>>>> firmware when build time is different. > >>>>>> > >>>>>> I can see this is an optimization effort, to understand FW status > >>>>>> before loading FW, but relying on build time seems fragile. Does > >>>>>> it help to add a new section to store version information and > >>>>>> evaluate based > >>>> on this information? > >>>>>> > >>>>> > >>>>> We have a branch of firmware (several app type combined with > >>>>> NFD3/NFDk) with the same version information(monthly publish), so > >>>>> the > >>>> version information can't help us, because we can't distinguish > >>>> among > >> them. > >>>>> > >>>>> But the build time is different for every firmware, and that's the > >>>>> reason we > >>>> choose it. > >>>>> > >>>> > >>>> If version is same although FW itself is different, isn't this > >>>> problem on its > >> own? > >>>> Perhaps an additional field is required in version syntax. > >>> > >>> Actually, it's just the role the build time which embed in the > >>> firmware plays, > >> which is unique for every firmware, and which can't be modified once > >> the firmware was published. > >>> > >> > >> I see it is already in the elf binary but relying on build time of a > >> FW to decide to load it or not looks a weak method to me, and fragile as > stated before. > >> > >>> What you said also has its mean, but in practice we can't accept(at > >>> least can't > >> do it immediately), which needs to discuss with firmware team. > >>> > >> > >> As it is an optimization I assume it is not urgent, so would you mind > >> discussing the issue with the FW team, perhaps it can lead to a > >> better solution, we can proceed after that. > > > > After discussing with the FW team, seems we still can't just use version > because our firmware are published monthly. > > > > Between two public version, we also have internal versions like 'rc0, rc1' > scheme just as DPDK. > > But the problem is, we may compile and share many firmware in daily > development. > > They are maybe only valid for one time and will never publish, so we won't > assign a version for them. > > > > So is my understanding correct that this effort is not for customers and not for > published FWs, but mostly for developers with development FWs. > > If so perhaps it can be simplified even more, there can be a devarg that force > loads the FW, for development scenario. > By default, driver checks the FW version and loads according, but if flag is set it > loads the FW even with same version. When a new development FW is out, > developer can run DPDK app with this parameter and it loads the FW to test, > does this make sense. Yeah, it's a perfect method, thanks. > > I am not trying to be difficult, just the proposed approach didn't satisfy me I > am trying to understand it and help if I can. And if you please continue > discussion in the mailing list it enables others to comment and perhaps > provide a better option. > > > > So the build time is the only information we can distinguish them, if just > using version, PMD will not reload the firmware which needs to test and > debug. > > > > How about we first using version to check, and then using build time to > check for the same version? > > > > Nope, I though elf parsing and relying on build time can be removed, if you > have them anyway, no need to add the version check, can use just the build > time to check. > > > And another related question, if developers are using daily FWs with exact > same version, when a developer had an unexpected behavior, how she will > know exactly which version of the FW (in the device), this maybe required to > track down the problem. Shouldn't each FW have a unique identifier, except > the "build time" info which is stored in the elf binary not FW itself? We will use the devarg and version as your advice, and remove the build time logics. > > >> > >> Meanwhile I will continue with remaining patches, excluding these two > >> patches. > >> > >>> If you insist that we should change the design, maybe we can just > >>> kick off > >> two commits, and upstream the other commits? > >>> - net/nfp: add the elf module > >>> - net/nfp: reload the firmware only when firmware changed > >