Re: [RFC v2 net-next] devlink: Add reset subcommand.
From: Jiri Pirko <jiri@resnulli.us>
Date: 2020-07-21 12:19:47
Tue, Jul 21, 2020 at 11:51:21AM CEST, vasundhara-v.volam@broadcom.com wrote:
On Wed, Jul 1, 2020 at 3:17 PM Jiri Pirko [off-list ref] wrote:quoted
Wed, Jul 01, 2020 at 11:25:50AM CEST, vasundhara-v.volam@broadcom.com wrote:quoted
On Wed, Jul 1, 2020 at 11:21 AM Jiri Pirko [off-list ref] wrote:quoted
Tue, Jun 30, 2020 at 05:15:18PM CEST, vasundhara-v.volam@broadcom.com wrote:quoted
On Tue, Jun 30, 2020 at 6:23 PM Jiri Pirko [off-list ref] wrote:quoted
Tue, Jun 30, 2020 at 01:34:06PM CEST, vasundhara-v.volam@broadcom.com wrote:quoted
Advanced NICs support live reset of some of the hardware components, that resets the device immediately with all the host drivers loaded. Add devlink reset subcommand to support live and deferred modes of reset. It allows to reset the hardware components of the entire device and supports the following fields: component: ---------- 1. MGMT : Management processor. 2. DMA : DMA engine. 3. RAM : RAM shared between multiple components. 4. AP : Application processor. 5. ROCE : RoCE management processor. 6. All : All possible components. Drivers are allowed to reset only a subset of requested components.I don't understand why would user ever want to do this. He does not care about some magic hw entities. He just expects the hw to work. I don't undestand the purpose of exposing something like this. Could you please explain in details? Thanks!If a user requests multiple components and if the driver is only able to honor a subset, the driver will return the components unset which it is able to reset. For example, if a user requests MGMT, RAM and ROCE components to be reset and driver resets only MGMT and ROCE. Driver will unset only MGMT and ROCE bits and notifies the user that RAM is not reset. This will be useful for drivers to reset only a subset of components requested instead of returning error or silently doing only a subset of components. Also, this will be helpful as user will not know the components supported by different vendors.Your reply does not seem to be related to my question :/I thought that you were referring to: "Drivers are allowed to reset only a subset of requested components." or were you referring to components? If yes, the user can select the components that he wants to go for reset. This will be useful in the case where, if the user flashed only a certain component and he wants to reset that particular component. For example, in the case of SOC there are 2 components: MGMT and AP. If a user flashes only application processor, he can choose to reset only application processor.We already have notion of "a component" in "devlink dev flash". I think that the reset component name should be in-sync with the flash. Thinking about it a bit more, we can extend the flash command by "reset" attribute that would indicate use wants to do flash&reset right away. Also, thinking how this all aligns with "devlink dev reload" which we currently have. The purpose of it is to re-instantiate driver instances, but in case of mlxsw it means friggering FW reset as well. Moshe (cced) is now working on "devlink dev reload" extension that would allow user to ask for a certain level of reload: driver instances only, fw reset too, live fw patching, etc. Not sure how this overlaps with your intentions. I think it would be great to see Moshe's RFC here as well so we can aligh the efforts.Are the patches posted yet?
I don't think so. Moshe?