The Linux Kernel

6.5.0

Quick search

Contents

  • A guide to the Kernel Development Process
  • Submitting patches: the essential guide to getting your code into the kernel
  • Code of conduct
  • Kernel Maintainer Handbook
  • All development-process docs
  • Core API Documentation
  • Driver implementer's API guide
  • Kernel subsystem documentation
    • Human interfaces
    • Storage interfaces
      • Filesystems in the Linux kernel
      • Block
      • CD-ROM
      • SCSI Subsystem
      • TCM Virtual Device
      • Driver implementer's API guide
      • Core API Documentation
      • Locking
      • Accounting
      • CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel
      • FPGA
      • I2C/SMBus Subsystem
      • Industrial I/O
      • ISDN
      • InfiniBand
      • LEDs
      • NetLabel
      • Networking
      • PCMCIA
      • Power Management
      • Timers
      • Serial Peripheral Interface (SPI)
      • 1-Wire Subsystem
      • Watchdog Support
      • Virtualization Support
      • Hardware Monitoring
      • Compute Accelerators
      • Security Documentation
      • Crypto API
      • Memory Management Documentation
      • BPF Documentation
      • USB support
      • PCI Bus Subsystem
      • Assorted Miscellaneous Devices Documentation
      • Scheduler
      • MHI
      • PECI Subsystem
      • WMI Subsystem
  • Locking in the kernel
  • Linux kernel licensing rules
  • How to write kernel documentation
  • Development tools for the kernel
  • Kernel Testing Guide
  • Kernel Hacking Guides
  • Linux Tracing Technologies
  • fault-injection
  • Kernel Livepatching
  • Rust
  • The Linux kernel user's and administrator's guide
  • The kernel build system
  • Reporting issues
  • User-space tools
  • The Linux kernel user-space API guide
  • The Linux kernel firmware guide
  • Open Firmware and Devicetree
  • CPU Architectures
  • Unsorted Documentation
  • Translations

This Page

  • Show 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 all callbacks of devlink netlink commands.

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
  • Devlink Line card

Driver-specific documentation¶

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

  • bnxt devlink support
  • etas_es58x devlink support
  • hns3 devlink support
  • ionic devlink support
  • ice devlink support
  • mlx4 devlink support
  • mlx5 devlink support
  • mlxsw devlink support
  • mv88e6xxx devlink support
  • netdevsim devlink support
  • nfp devlink support
  • qed devlink support
  • ti-cpsw-switch devlink support
  • am65-cpsw-nuss devlink support
  • prestera devlink support
  • iosm devlink support
  • octeontx2 devlink support
  • sfc devlink support
©The kernel development community. | Powered by Sphinx 5.0.1 & Alabaster 0.7.12 | Page source