The Linux Kernel
4.18.0-553.58.1.el8_10.x86_64
  • Linux kernel licensing rules
  • The Linux kernel user’s and administrator’s guide
  • The Linux kernel user-space API guide
  • Working with the kernel development community
  • Development tools for the kernel
  • How to write kernel documentation
  • Kernel Hacking Guides
  • Linux Tracing Technologies
  • Kernel Maintainer Handbook
  • The Linux driver implementer’s API guide
  • Core API Documentation
  • InfiniBand
  • Linux Media Subsystem Documentation
  • Linux Networking Documentation
  • The Linux Input Documentation
  • Linux GPU Driver Developer’s Guide
  • Security Documentation
  • Linux Sound Subsystem Documentation
  • Linux Kernel Crypto API
  • Linux Filesystems API
  • Linux Memory Management Documentation
  • BPF Documentation
  • Linux PCI Bus Subsystem
  • Assembler Annotations
  • SuperH Interfaces Guide
  • x86 architecture specifics
  • Korean translations
  • Chinese translations
  • Japanese translations
The Linux Kernel
  • Docs »
  • Linux Devlink Documentation
  • View page source

Linux Devlink Documentation¶

devlink is an API to expose device information and resources not directly related to any device class, such as chip-wide/switch-ASIC-wide configuration.

Locking¶

Driver facing APIs are currently transitioning to allow more explicit locking. Drivers can use the existing devlink_* set of APIs, or new APIs prefixed by devl_*. The older APIs handle all the locking in devlink core, but don’t allow registration of most sub-objects once the main devlink object is itself registered. The newer devl_* APIs assume the devlink instance lock is already held. Drivers can take the instance lock by calling devl_lock(). It is also held in most of the callbacks. Eventually all callbacks will be invoked under the devlink instance lock, refer to the use of the DEVLINK_NL_FLAG_NO_LOCK flag in devlink core to find out which callbacks are not converted, yet.

Drivers are encouraged to use the devlink instance lock for their own needs.

Interface documentation¶

The following pages describe various interfaces available through devlink in general.

  • Devlink DPIPE
  • Devlink Health
  • Devlink Info
  • Devlink Flash
  • Devlink Params
  • Devlink Port
  • Devlink Region
  • Devlink Resource
  • Devlink Reload
  • Devlink Selftests
  • Devlink Trap

Driver-specific documentation¶

Each driver that implements devlink is expected to document what parameters, info versions, and other features it supports.

  • bnxt devlink support
  • ionic devlink support
  • mlx4 devlink support
  • mlx5 devlink support
  • mlxsw devlink support
  • mv88e6xxx devlink support
  • netdevsim devlink support
  • nfp devlink support
  • sja1105 devlink support
  • qed devlink support
  • ti-cpsw-switch devlink support

© Copyright The kernel development community.

Built with Sphinx using a theme provided by Read the Docs.