From: Shannon Nelson <snelson@pensando.io>
To: "Keller, Jacob E" <jacob.e.keller@intel.com>,
Jakub Kicinski <kuba@kernel.org>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"davem@davemloft.net" <davem@davemloft.net>
Subject: Re: [PATCH v3 net-next 2/2] ionic: add devlink firmware update
Date: Mon, 14 Sep 2020 18:14:22 -0700 [thread overview]
Message-ID: <f4e4e9c3-b293-cef1-bb84-db7fe691882a@pensando.io> (raw)
In-Reply-To: <7e44037cedb946d4a72055dd0898ab1d@intel.com>
On 9/14/20 5:53 PM, Keller, Jacob E wrote:
>
>> -----Original Message-----
>> From: Shannon Nelson <snelson@pensando.io>
>> Sent: Monday, September 14, 2020 4:47 PM
>> To: Jakub Kicinski <kuba@kernel.org>; Keller, Jacob E <jacob.e.keller@intel.com>
>> Cc: netdev@vger.kernel.org; davem@davemloft.net
>> Subject: Re: [PATCH v3 net-next 2/2] ionic: add devlink firmware update
>>
>> On 9/14/20 4:36 PM, Jakub Kicinski wrote:
>>> On Mon, 14 Sep 2020 16:15:28 -0700 Jacob Keller wrote:
>>>> On 9/10/2020 10:56 AM, Jakub Kicinski wrote:
>>>>> IOW drop the component parameter from the normal helper, cause almost
>>>>> nobody uses that. The add a more full featured __ version, which would
>>>>> take the arg struct, the struct would include the timeout value.
>>>>>
>>>> I would point out that the ice driver does use it to help indicate which
>>>> section of the flash is currently being updated.
>>>>
>>>> i.e.
>>>>
>>>> $ devlink dev flash pci/0000:af:00.0 file firmware.bin
>>>> Preparing to flash
>>>> [fw.mgmt] Erasing
>>>> [fw.mgmt] Erasing done
>>>> [fw.mgmt] Flashing 100%
>>>> [fw.mgmt] Flashing done 100%
>>>> [fw.undi] Erasing
>>>> [fw.undi] Erasing done
>>>> [fw.undi] Flashing 100%
>>>> [fw.undi] Flashing done 100%
>>>> [fw.netlist] Erasing
>>>> [fw.netlist] Erasing done
>>>> [fw.netlist] Flashing 100%
>>>> [fw.netlist] Flashing done 100%
>>>>
>>>> I'd like to keep that, as it helps tell which component is currently
>>>> being updated. If we drop this, then either I have to manually build
>>>> strings which include the component name, or we lose this information on
>>>> display.
>>> Thanks for pointing that out. My recollection was that ice and netdevsim
>>> were the only two users, so I thought those could use the full __*
>>> helper and pass an arg struct. But no strong feelings.
>> Thanks, both.
>>
>> I'd been going back and forth all morning about whether a simple single
>> timeout or a timeout for each "chunk" would be appropriate. I'll try to
>> be back in another day or three with an RFC.
>>
>> sln
> For ice, a timeout for each message/chunk makes the most sense, but I could see a different reasoning when you have multiple steps all bounded by the same timeout
>
> Thanks,
> Jake
>
So now we're beginning to dance around timeout boundaries - how can we
define the beginning and end of a timeout boundary, and how do they
relate to the component and label? Currently, if either the component
or status_msg changes, the devlink user program does a newline to start
a new status line. The done and total values are used from each notify
message to create a % value displayed, but are not dependent on any
previous done or total values, so the total doesn't need to be the same
value from status message to status message, even if the component and
label remain the same, devlink will just print whatever % gets
calculated that time.
I'm thinking that the behavior of the timeout value should remain
separate from the component and status_msg values, such that once given,
then the userland countdown continues on that timeout. Each subsequent
notify, regardless of component or label changes, should continue
reporting that same timeout value for as long as it applies to the
action. If a new timeout value is reported, the countdown starts over.
This continues until either the countdown finishes or the driver reports
the flash as completed. I think this allows is the flexibility for
multiple steps that Jake alludes to above. Does this make sense?
What should the userland program do when the timeout expires? Start
counting backwards? Stop waiting? Do we care to define this at the moment?
sln
next prev parent reply other threads:[~2020-09-15 1:14 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-08 22:48 [PATCH v3 net-next 0/2] ionic: add devlink dev flash support Shannon Nelson
2020-09-08 22:48 ` [PATCH v3 net-next 1/2] ionic: update the fw update api Shannon Nelson
2020-09-08 22:48 ` [PATCH v3 net-next 2/2] ionic: add devlink firmware update Shannon Nelson
2020-09-08 23:54 ` Jakub Kicinski
2020-09-09 16:23 ` Shannon Nelson
2020-09-09 16:44 ` Jakub Kicinski
2020-09-09 17:58 ` Shannon Nelson
2020-09-09 19:22 ` Jakub Kicinski
2020-09-10 1:34 ` Shannon Nelson
2020-09-10 17:56 ` Jakub Kicinski
2020-09-14 22:02 ` Shannon Nelson
2020-09-14 22:59 ` Jakub Kicinski
2020-09-14 23:15 ` Jacob Keller
2020-09-14 23:36 ` Jakub Kicinski
2020-09-14 23:47 ` Shannon Nelson
[not found] ` <7e44037cedb946d4a72055dd0898ab1d@intel.com>
2020-09-15 1:14 ` Shannon Nelson [this message]
2020-09-15 15:50 ` Jakub Kicinski
2020-09-15 16:50 ` Keller, Jacob E
2020-09-15 17:20 ` Shannon Nelson
2020-09-15 17:39 ` Jakub Kicinski
2020-09-15 18:44 ` Jacob Keller
2020-09-15 19:00 ` Jakub Kicinski
2020-09-15 22:11 ` Shannon Nelson
2020-09-15 22:27 ` Jakub Kicinski
2020-09-15 0:52 ` Keller, Jacob E
2020-09-14 23:19 ` Jacob Keller
2020-09-09 21:30 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f4e4e9c3-b293-cef1-bb84-db7fe691882a@pensando.io \
--to=snelson@pensando.io \
--cc=davem@davemloft.net \
--cc=jacob.e.keller@intel.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).