Logo

Linux内核

6.13.0-rc6

快速搜索

目录

  • 开发流程
  • 提交补丁
  • 行为准则
  • 维护者手册
  • 所有开发流程文档
  • 核心 API
  • 驱动 API
  • 子系统
    • 核心子系统
    • 人机接口
    • 网络接口
      • 网络
      • NetLabel
      • InfiniBand
      • ISDN
      • MHI
    • 存储接口
    • 其他子系统
  • 锁定
  • 许可规则
  • 编写文档
  • 开发工具
  • 测试指南
  • 黑客指南
  • 跟踪
  • 故障注入
  • 热补丁
  • Rust
  • 管理
  • 构建系统
  • 报告问题
  • 用户空间工具
  • 用户空间 API
  • 固件
  • 固件和设备树
  • CPU 架构
  • 未分类文档
  • 翻译

本页

  • 显示源文件

Devlink Reload¶

devlink-reload 提供了重新初始化驱动程序实体的机制,应用 devlink-params 和 devlink-resources 的新值。它还提供了激活固件的机制。

重新加载操作¶

用户可以选择一个重新加载操作。默认情况下,选择 driver_reinit 操作。

可能的重新加载操作¶

名称

描述

driver-reinit

Devlink 驱动程序实体重新初始化,包括将新值应用于在驱动程序加载期间使用的 devlink 实体,这些实体包括:

  • 处于配置模式 driverinit 的 devlink-params

  • devlink-resources

其他 devlink 实体可以在重新初始化期间保留。

  • devlink-health-reporter

  • devlink-region

其余的 devlink 实体必须移除并重新添加。

fw_activate

固件激活。如果存储了新的固件镜像并且正在等待激活,则激活新的固件。如果未指定限制,此操作可能涉及固件重置。如果没有新的镜像正在等待,此操作将重新加载当前的固件镜像。

请注意,即使使用者请求特定的操作,驱动程序实现可能需要执行其他操作。例如,某些驱动程序不支持在不激活固件的情况下执行驱动程序重新初始化。因此,devlink reload 命令会返回实际执行的操作列表。

重新加载限制¶

默认情况下,重新加载操作不受限制,并且驱动程序实现可以根据需要进行重置或停机以执行操作。

但是,某些驱动程序支持操作限制,这会将操作实现限制为特定约束。

可能的重新加载限制¶

名称

描述

no_reset

不允许重置,不允许停机,不允许链路抖动,并且不会丢失配置。

更改命名空间¶

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
©内核开发社区。 | 由 Sphinx 5.3.0 和 Alabaster 0.7.16 驱动 | 页面源文件