Logo

Linux 内核

6.16.0-rc4

快速搜索

目录

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

本页

  • 显示源代码

Linux Devlink 文档¶

devlink 是一个 API,用于公开与任何设备类不直接相关的设备信息和资源,例如芯片范围/交换机 ASIC 范围的配置。

锁¶

面向驱动程序的 API 当前正在转换,以允许更显式的锁。 驱动程序可以使用现有的 devlink_* API 集合,或以 devl_* 为前缀的新 API。 较旧的 API 处理 devlink 核心中的所有锁定,但是一旦主 devlink 对象本身已注册,就不允许注册大多数子对象。 较新的 devl_* API 假定 devlink 实例锁已被持有。 驱动程序可以通过调用 devl_lock() 来获取实例锁。 它也持有 devlink netlink 命令的所有回调。

鼓励驱动程序将 devlink 实例锁用于自己的需求。

驱动程序在同时获取 devlink 实例锁和 RTNL 锁时需要小心。 需要先获取 Devlink 实例锁,只有在此之后才能获取 RTNL 锁。

嵌套实例¶

某些对象,例如线卡或端口功能,可以在下面创建另一个 devlink 实例。 在这种情况下,驱动程序应确保遵守以下规则

  • 应保持锁顺序。 如果驱动程序需要同时获取嵌套实例和父实例的实例锁,则应首先获取父实例的 devlink 实例锁,然后才能获取嵌套实例的实例锁。

  • 驱动程序应使用特定于对象的辅助程序来设置嵌套关系

    • devl_nested_devlink_set() - 用于设置 devlink -> 嵌套 devlink 关系(可以用于多个嵌套实例。

    • devl_port_fn_devlink_set() - 用于设置端口功能 -> 嵌套 devlink 关系。

    • devlink_linecard_nested_dl_set() - 用于设置线卡 -> 嵌套 devlink 关系。

嵌套的 devlink 信息通过 devlink netlink 的特定于对象的属性公开给用户空间。

接口文档¶

以下页面描述了通常可以通过 devlink 获得的各种接口。

  • Devlink DPIPE
  • Devlink Health
  • Devlink Info
  • Devlink Flash
  • Devlink Params
  • Devlink Port
  • Devlink Region
  • Devlink Resource
  • Devlink Reload
  • Devlink Selftests
  • Devlink Trap
  • Devlink 线卡
  • Devlink E-Switch 属性

特定于驱动程序的文档¶

期望实现 devlink 的每个驱动程序都记录其支持的参数、信息版本和其他功能。

  • bnxt devlink 支持
  • etas_es58x devlink 支持
  • hns3 devlink 支持
  • i40e devlink 支持
  • ionic devlink 支持
  • ice devlink 支持
  • ixgbe devlink 支持
  • mlx4 devlink 支持
  • mlx5 devlink 支持
  • mlxsw devlink 支持
  • mv88e6xxx devlink 支持
  • netdevsim devlink 支持
  • nfp devlink 支持
  • qed devlink 支持
  • ti-cpsw-switch devlink 支持
  • am65-cpsw-nuss devlink 支持
  • prestera devlink 支持
  • iosm devlink 支持
  • octeontx2 devlink 支持
  • sfc devlink 支持
©内核开发社区。| 由 Sphinx 5.3.0 & Alabaster 0.7.16 驱动 | 页面源