From: Jakub Kicinski <kuba@kernel.org>
To: Shannon Nelson <shannon.nelson@amd.com>
Cc: netdev@vger.kernel.org, davem@davemloft.net, jiri@nvidia.com
Subject: Re: [PATCH net-next 1/2] devlink: add fw bank select parameter
Date: Thu, 8 Dec 2022 17:15:40 -0800 [thread overview]
Message-ID: <20221208171540.17f26cdb@kernel.org> (raw)
In-Reply-To: <06865416-5094-e34f-d031-fa7d8b96ed9b@amd.com>
On Thu, 8 Dec 2022 10:44:50 -0800 Shannon Nelson wrote:
> >> I think this is a nice guideline, but I'm not sure all physical devices
> >> will work this way.
> >
> > Shouldn't it be entirely in SW control? (possibly "FW" category of SW)
>
> Sadly, not all HW/FW works the way driver writers would like, nor gives
> us all the features options we want. Especially that FW that was built
> before we driver writers had an opinion about how this should work.
>
> My comment here mainly is that we need to be able to manage the older FW
> as well as the newer, and be able to make allowances for FW that doesn't
> play along as well.
How do we steer new folks towards this design, tho?
The only idea I have would break backward compat for you - we keep what
I described as default, and for devices which can't do that we require
sort of a manual opt out, for example user must request "don't set to
active" if the driver can't auto-change the active. And explicitly
select the bank if the driver can't provide the stable next-flash
semantics?
IDK what exact pieces of info you're working with and how much of the
semantics you can "fake" in the driver?
> >> How about a new info item
> >> DEVLINK_ATTR_INFO_ACTIVE_BANK
> >> which would need a new api function something like
> >> devlink_info_active_bank_put()
> >
> > Yes, definitely. But I think the next-to-write is also needed, because
> > we will need to use the next-to-write bank to populate the JSON for
> > stored FW to keep backward compat.
> >
> > In CLI we can be more loose but the algo in the docs must work and not
> > risk overwriting all the banks if machine gets multiple update cycles
> > before getting drained.
>
> If we are going to have multiple "stored" (banks) sections, then we need
> an api that allows for signifying which stored section are we adding a
> fw version to, and to be able to add the "active" and "flash-target" and
> whatever other attributes can get added onto the stored bank.
>
> One option is to assume a bank context gets set by a call to something
> like devlink_info_stored_bank_put(), and add a bitmask of attributes
> (ACTIVE, FLASH_TARGET, CURRENT, ...) that can be added to in the future
> as needed.
> int devlink_info_stored_bank_put(struct devlink_info_req *req,
> uint bank_id,
> u32 option_mask)
Yup, that's an option. Dunno if the mask is easier to use than just
separate call per attribute, but I guess you'll be the one to test
this API so you'll find out :)
At the netlink level we'd have a separate nla for active, target,
current banks, so no masks there.. right?
next prev parent reply other threads:[~2022-12-09 1:15 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-05 17:26 [PATCH net-next 0/2] devlink: add params FW_BANK and ENABLE_MIGRATION Shannon Nelson
2022-12-05 17:26 ` [PATCH net-next 1/2] devlink: add fw bank select parameter Shannon Nelson
2022-12-06 9:07 ` Jiri Pirko
2022-12-06 18:18 ` Shannon Nelson
2022-12-07 13:34 ` Jiri Pirko
2022-12-07 1:41 ` Jakub Kicinski
2022-12-07 19:29 ` Shannon Nelson
2022-12-08 0:36 ` Jakub Kicinski
2022-12-08 18:44 ` Shannon Nelson
2022-12-09 0:47 ` Jacob Keller
2022-12-09 1:24 ` Jakub Kicinski
2022-12-12 18:04 ` Jacob Keller
2022-12-12 18:34 ` Jakub Kicinski
2022-12-09 1:15 ` Jakub Kicinski [this message]
2022-12-05 17:26 ` [PATCH net-next 2/2] devlink: add enable_migration parameter Shannon Nelson
2022-12-06 9:04 ` Jiri Pirko
2022-12-06 18:28 ` Shannon Nelson
2022-12-07 13:33 ` Jiri Pirko
2022-12-05 18:22 ` [PATCH net-next 0/2] devlink: add params FW_BANK and ENABLE_MIGRATION Leon Romanovsky
2022-12-05 18:55 ` Shannon Nelson
2022-12-06 8:13 ` Leon Romanovsky
2022-12-06 9:00 ` Jiri Pirko
2022-12-06 18:21 ` Shannon Nelson
2022-12-07 13:32 ` Jiri Pirko
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=20221208171540.17f26cdb@kernel.org \
--to=kuba@kernel.org \
--cc=davem@davemloft.net \
--cc=jiri@nvidia.com \
--cc=netdev@vger.kernel.org \
--cc=shannon.nelson@amd.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.