Devlink 重新加载¶
devlink-reload
提供了一种机制来重新初始化驱动程序实体,应用 devlink-params
和 devlink-resources
的新值。它还提供了一种激活固件的机制。
重新加载操作¶
用户可以选择一个重新加载操作。默认选择 driver_reinit
操作。
名称 |
描述 |
|
Devlink 驱动程序实体重新初始化,包括将新值应用于驱动程序加载期间使用的 devlink 实体,这些实体包括
其他 devlink 实体可能在重新初始化后保留
其余的 devlink 实体必须被移除并重新添加。 |
|
固件激活。如果存储了新的固件镜像并等待激活,则激活它。如果未指定限制,此操作可能涉及固件重置。如果没有新的镜像等待,此操作将重新加载当前固件镜像。 |
请注意,即使用户请求特定操作,驱动程序实现也可能需要同时执行其他操作。例如,某些驱动程序不支持在不激活固件的情况下执行驱动程序重新初始化。因此,devlink 重新加载命令返回实际执行的操作列表。
重新加载限制¶
默认情况下,重新加载操作不受限制,驱动程序实现可以根据需要包含重置或停机时间以执行操作。
但是,某些驱动程序支持操作限制,这会将操作实现限制在特定约束内。
名称 |
描述 |
|
不允许重置,不允许停机,不发生链路抖动,不丢失配置。 |
更改命名空间¶
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