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.
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
Drivers are encouraged to use the devlink instance lock for their own needs.
The following pages describe various interfaces available through devlink in
Each driver that implements
devlink is expected to document what
parameters, info versions, and other features it supports.