| 1 | |
| 2 |
|
| 3 | ==============
|
| 4 | Devlink Reload
|
| 5 | ==============
|
| 6 |
|
| 7 | ``devlink-reload`` provides mechanism to reinit driver entities, applying
|
| 8 | ``devlink-params`` and ``devlink-resources`` new values. It also provides
|
| 9 | mechanism to activate firmware.
|
| 10 |
|
| 11 | Reload Actions
|
| 12 | ==============
|
| 13 |
|
| 14 | User may select a reload action.
|
| 15 | By default ``driver_reinit`` action is selected.
|
| 16 |
|
| 17 | .. list-table:: Possible reload actions
|
| 18 | :widths: 5 90
|
| 19 |
|
| 20 | * - Name
|
| 21 | - Description
|
| 22 | * - ``driver-reinit``
|
| 23 | - Devlink driver entities re-initialization, including applying
|
| 24 | new values to devlink entities which are used during driver
|
| 25 | load which are:
|
| 26 |
|
| 27 | * ``devlink-params`` in configuration mode ``driverinit``
|
| 28 | * ``devlink-resources``
|
| 29 |
|
| 30 | Other devlink entities may stay over the re-initialization:
|
| 31 |
|
| 32 | * ``devlink-health-reporter``
|
| 33 | * ``devlink-region``
|
| 34 |
|
| 35 | The rest of the devlink entities have to be removed and readded.
|
| 36 | * - ``fw_activate``
|
| 37 | - Firmware activate. Activates new firmware if such image is stored and
|
| 38 | pending activation. If no limitation specified this action may involve
|
| 39 | firmware reset. If no new image pending this action will reload current
|
| 40 | firmware image.
|
| 41 |
|
| 42 | Note that even though user asks for a specific action, the driver
|
| 43 | implementation might require to perform another action alongside with
|
| 44 | it. For example, some driver do not support driver reinitialization
|
| 45 | being performed without fw activation. Therefore, the devlink reload
|
| 46 | command returns the list of actions which were actrually performed.
|
| 47 |
|
| 48 | Reload Limits
|
| 49 | =============
|
| 50 |
|
| 51 | By default reload actions are not limited and driver implementation may
|
| 52 | include reset or downtime as needed to perform the actions.
|
| 53 |
|
| 54 | However, some drivers support action limits, which limit the action
|
| 55 | implementation to specific constraints.
|
| 56 |
|
| 57 | .. list-table:: Possible reload limits
|
| 58 | :widths: 5 90
|
| 59 |
|
| 60 | * - Name
|
| 61 | - Description
|
| 62 | * - ``no_reset``
|
| 63 | - No reset allowed, no down time allowed, no link flap and no
|
| 64 | configuration is lost.
|
| 65 |
|
| 66 | Change Namespace
|
| 67 | ================
|
| 68 |
|
| 69 | The netns option allows user to be able to move devlink instances into
|
| 70 | namespaces during devlink reload operation.
|
| 71 | By default all devlink instances are created in init_net and stay there.
|
| 72 |
|
| 73 | example usage
|
| 74 | -------------
|
| 75 |
|
| 76 | .. code:: shell
|
| 77 |
|
| 78 | $ devlink dev reload help
|
| 79 | $ devlink dev reload DEV [ netns { PID | NAME | ID } ] [ action { driver_reinit | fw_activate } ] [ limit no_reset ]
|
| 80 |
|
| 81 | # Run reload command for devlink driver entities re-initialization:
|
| 82 | $ devlink dev reload pci/0000:82:00.0 action driver_reinit
|
| 83 | reload_actions_performed:
|
| 84 | driver_reinit
|
| 85 |
|
| 86 | # Run reload command to activate firmware:
|
| 87 | # Note that mlx5 driver reloads the driver while activating firmware
|
| 88 | $ devlink dev reload pci/0000:82:00.0 action fw_activate
|
| 89 | reload_actions_performed:
|
| 90 | driver_reinit fw_activate
|