162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci==============
462306a36Sopenharmony_ciDevlink Reload
562306a36Sopenharmony_ci==============
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci``devlink-reload`` provides mechanism to reinit driver entities, applying
862306a36Sopenharmony_ci``devlink-params`` and ``devlink-resources`` new values. It also provides
962306a36Sopenharmony_cimechanism to activate firmware.
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciReload Actions
1262306a36Sopenharmony_ci==============
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciUser may select a reload action.
1562306a36Sopenharmony_ciBy default ``driver_reinit`` action is selected.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci.. list-table:: Possible reload actions
1862306a36Sopenharmony_ci   :widths: 5 90
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci   * - Name
2162306a36Sopenharmony_ci     - Description
2262306a36Sopenharmony_ci   * - ``driver-reinit``
2362306a36Sopenharmony_ci     - Devlink driver entities re-initialization, including applying
2462306a36Sopenharmony_ci       new values to devlink entities which are used during driver
2562306a36Sopenharmony_ci       load such as ``devlink-params`` in configuration mode
2662306a36Sopenharmony_ci       ``driverinit`` or ``devlink-resources``
2762306a36Sopenharmony_ci   * - ``fw_activate``
2862306a36Sopenharmony_ci     - Firmware activate. Activates new firmware if such image is stored and
2962306a36Sopenharmony_ci       pending activation. If no limitation specified this action may involve
3062306a36Sopenharmony_ci       firmware reset. If no new image pending this action will reload current
3162306a36Sopenharmony_ci       firmware image.
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciNote that even though user asks for a specific action, the driver
3462306a36Sopenharmony_ciimplementation might require to perform another action alongside with
3562306a36Sopenharmony_ciit. For example, some driver do not support driver reinitialization
3662306a36Sopenharmony_cibeing performed without fw activation. Therefore, the devlink reload
3762306a36Sopenharmony_cicommand returns the list of actions which were actrually performed.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciReload Limits
4062306a36Sopenharmony_ci=============
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciBy default reload actions are not limited and driver implementation may
4362306a36Sopenharmony_ciinclude reset or downtime as needed to perform the actions.
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciHowever, some drivers support action limits, which limit the action
4662306a36Sopenharmony_ciimplementation to specific constraints.
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci.. list-table:: Possible reload limits
4962306a36Sopenharmony_ci   :widths: 5 90
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci   * - Name
5262306a36Sopenharmony_ci     - Description
5362306a36Sopenharmony_ci   * - ``no_reset``
5462306a36Sopenharmony_ci     - No reset allowed, no down time allowed, no link flap and no
5562306a36Sopenharmony_ci       configuration is lost.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciChange Namespace
5862306a36Sopenharmony_ci================
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciThe netns option allows user to be able to move devlink instances into
6162306a36Sopenharmony_cinamespaces during devlink reload operation.
6262306a36Sopenharmony_ciBy default all devlink instances are created in init_net and stay there.
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ciexample usage
6562306a36Sopenharmony_ci-------------
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci.. code:: shell
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci    $ devlink dev reload help
7062306a36Sopenharmony_ci    $ devlink dev reload DEV [ netns { PID | NAME | ID } ] [ action { driver_reinit | fw_activate } ] [ limit no_reset ]
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci    # Run reload command for devlink driver entities re-initialization:
7362306a36Sopenharmony_ci    $ devlink dev reload pci/0000:82:00.0 action driver_reinit
7462306a36Sopenharmony_ci    reload_actions_performed:
7562306a36Sopenharmony_ci      driver_reinit
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci    # Run reload command to activate firmware:
7862306a36Sopenharmony_ci    # Note that mlx5 driver reloads the driver while activating firmware
7962306a36Sopenharmony_ci    $ devlink dev reload pci/0000:82:00.0 action fw_activate
8062306a36Sopenharmony_ci    reload_actions_performed:
8162306a36Sopenharmony_ci      driver_reinit fw_activate
82