Messages in this thread | | | Subject | Re: [PATCH net-next RFC v3 00/14] Add devlink reload action option | From | Moshe Shemesh <> | Date | Tue, 1 Sep 2020 23:05:59 +0300 |
| |
On 8/31/2020 1:49 PM, Jiri Pirko wrote: > Sun, Aug 30, 2020 at 05:27:20PM CEST, moshe@mellanox.com wrote: >> Introduce new option on devlink reload API to enable the user to select the >> reload action required. Complete support for all actions in mlx5. >> The following reload actions are supported: >> driver_reinit: driver entities re-initialization, applying devlink-param >> and devlink-resource values. >> fw_activate: firmware activate. >> fw_activate_no_reset: Activate new firmware image without any reset. >> (also known as: firmware live patching). >> >> Each driver which support this command should expose the reload actions >> supported. >> The uAPI is backward compatible, if the reload action option is omitted > >from the reload command, the driver reinit action will be used. >> Note that when required to do firmware activation some drivers may need >> to reload the driver. On the other hand some drivers may need to reset >> the firmware to reinitialize the driver entities. Therefore, the devlink >> reload command returns the actions which were actually done. >> >> Add reload actions counters to hold the history per reload action type. >> For example, the number of times fw_activate has been done on this >> device since the driver module was added or if the firmware activation >> was done with or without reset. >> >> Patch 1 adds the new API reload action option to devlink. >> Patch 2 adds reload actions counters. >> Patch 3 exposes the reload actions counters on devlink dev get. >> Patches 4-9 add support on mlx5 for devlink reload action fw_activate >> and handle the firmware reset events. >> Patches 10-11 add devlink enable remote dev reset parameter and use it >> in mlx5. >> Patches 12-13 mlx5 add devlink reload action fw_activate_no_reset support >> and event handling. >> Patch 14 adds documentation file devlink-reload.rst >> >> command examples: >> $devlink dev reload pci/0000:82:00.0 action driver_reinit >> reload_actions_done: >> driver_reinit >> >> $devlink dev reload pci/0000:82:00.0 action fw_activate >> reload_actions_done: >> driver_reinit fw_activate >> >> $ devlink dev reload pci/0000:82:00.0 action fw_activate no_reset > You are missing "_". > I meant that no_reset is an option, so the uAPI is:
$ devlink dev reload DEV [ netns { PID | NAME | ID } ] [ action { driver_reinit | fw_activate [no_reset] } ]
Should have been as "--no_reset" or "-no_reset" but it seems that all options in devlink are global, not specific to command.
Probably there is a better way, please advise.
>> reload_actions_done: > No need to have "reload" word here. And maybe "performed" would be > better than "done". Idk: > "actions_performed" > ? >
Yes, that's better, I will fix.
>> fw_activate_no_reset >> >> v2 -> v3: >> - Replace fw_live_patch action by fw_activate_no_reset >> - Devlink reload returns the actions done over netlink reply >> - Add reload actions counters >> >> v1 -> v2: >> - Instead of reload levels driver,fw_reset,fw_live_patch have reload >> actions driver_reinit,fw_activate,fw_live_patch >> - Remove driver default level, the action driver_reinit is the default >> action for all drivers >> >> Moshe Shemesh (14): >> devlink: Add reload action option to devlink reload command >> devlink: Add reload actions counters >> devlink: Add reload actions counters to dev get >> net/mlx5: Add functions to set/query MFRL register >> net/mlx5: Set cap for pci sync for fw update event >> net/mlx5: Handle sync reset request event >> net/mlx5: Handle sync reset now event >> net/mlx5: Handle sync reset abort event >> net/mlx5: Add support for devlink reload action fw activate >> devlink: Add enable_remote_dev_reset generic parameter >> net/mlx5: Add devlink param enable_remote_dev_reset support >> net/mlx5: Add support for fw live patch event >> net/mlx5: Add support for devlink reload action fw activate no reset >> devlink: Add Documentation/networking/devlink/devlink-reload.rst >> >> .../networking/devlink/devlink-params.rst | 6 + >> .../networking/devlink/devlink-reload.rst | 68 +++ >> Documentation/networking/devlink/index.rst | 1 + >> drivers/net/ethernet/mellanox/mlx4/main.c | 14 +- >> .../net/ethernet/mellanox/mlx5/core/Makefile | 2 +- >> .../net/ethernet/mellanox/mlx5/core/devlink.c | 117 ++++- >> .../mellanox/mlx5/core/diag/fw_tracer.c | 31 ++ >> .../mellanox/mlx5/core/diag/fw_tracer.h | 1 + >> .../ethernet/mellanox/mlx5/core/fw_reset.c | 453 ++++++++++++++++++ >> .../ethernet/mellanox/mlx5/core/fw_reset.h | 19 + >> .../net/ethernet/mellanox/mlx5/core/health.c | 35 +- >> .../net/ethernet/mellanox/mlx5/core/main.c | 13 + >> .../ethernet/mellanox/mlx5/core/mlx5_core.h | 2 + >> drivers/net/ethernet/mellanox/mlxsw/core.c | 24 +- >> drivers/net/netdevsim/dev.c | 16 +- >> include/linux/mlx5/device.h | 1 + >> include/linux/mlx5/driver.h | 4 + >> include/net/devlink.h | 13 +- >> include/uapi/linux/devlink.h | 24 + >> net/core/devlink.c | 174 ++++++- >> 20 files changed, 967 insertions(+), 51 deletions(-) >> create mode 100644 Documentation/networking/devlink/devlink-reload.rst >> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c >> create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/fw_reset.h >> >> -- >> 2.17.1 >>
| |