Devlink Reload¶
devlink-reload
提供了重新初始化驱动程序实体的机制,应用 devlink-params
和 devlink-resources
的新值。它还提供了激活固件的机制。
重新加载操作¶
用户可以选择一个重新加载操作。默认情况下,选择 driver_reinit
操作。
名称 |
描述 |
|
Devlink 驱动程序实体重新初始化,包括将新值应用于在驱动程序加载期间使用的 devlink 实体,这些实体包括:
其他 devlink 实体可以在重新初始化期间保留。
其余的 devlink 实体必须移除并重新添加。 |
|
固件激活。如果存储了新的固件镜像并且正在等待激活,则激活新的固件。如果未指定限制,此操作可能涉及固件重置。如果没有新的镜像正在等待,此操作将重新加载当前的固件镜像。 |
请注意,即使使用者请求特定的操作,驱动程序实现可能需要执行其他操作。例如,某些驱动程序不支持在不激活固件的情况下执行驱动程序重新初始化。因此,devlink reload 命令会返回实际执行的操作列表。
重新加载限制¶
默认情况下,重新加载操作不受限制,并且驱动程序实现可以根据需要进行重置或停机以执行操作。
但是,某些驱动程序支持操作限制,这会将操作实现限制为特定约束。
名称 |
描述 |
|
不允许重置,不允许停机,不允许链路抖动,并且不会丢失配置。 |
更改命名空间¶
netns 选项允许用户在 devlink 重新加载操作期间将 devlink 实例移动到命名空间中。默认情况下,所有 devlink 实例都在 init_net 中创建并保留在那里。
示例用法¶
$ devlink dev reload help
$ devlink dev reload DEV [ netns { PID | NAME | ID } ] [ action { driver_reinit | fw_activate } ] [ limit no_reset ]
# Run reload command for devlink driver entities re-initialization:
$ devlink dev reload pci/0000:82:00.0 action driver_reinit
reload_actions_performed:
driver_reinit
# Run reload command to activate firmware:
# Note that mlx5 driver reloads the driver while activating firmware
$ devlink dev reload pci/0000:82:00.0 action fw_activate
reload_actions_performed:
driver_reinit fw_activate