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 驅動 | 頁面源