diff options
author | Jiri Pirko <jiri@nvidia.com> | 2023-10-13 14:10:27 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2023-10-18 10:23:01 +0200 |
commit | b6f23b319aadae50a03b06c3067bc7e4a659e43b (patch) | |
tree | db647128fa0f811da74aaf5bb5942a34837265db /Documentation | |
parent | devlink: don't take instance lock for nested handle put (diff) | |
download | linux-b6f23b319aadae50a03b06c3067bc7e4a659e43b.tar.xz linux-b6f23b319aadae50a03b06c3067bc7e4a659e43b.zip |
Documentation: devlink: add nested instance section
Add a part talking about nested devlink instances describing
the helpers and locking ordering.
Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/networking/devlink/index.rst | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/Documentation/networking/devlink/index.rst b/Documentation/networking/devlink/index.rst index b49749e2b9a6..52e52a1b603d 100644 --- a/Documentation/networking/devlink/index.rst +++ b/Documentation/networking/devlink/index.rst @@ -18,6 +18,30 @@ netlink commands. Drivers are encouraged to use the devlink instance lock for their own needs. +Nested instances +---------------- + +Some objects, like linecards or port functions, could have another +devlink instances created underneath. In that case, drivers should make +sure to respect following rules: + + - Lock ordering should be maintained. If driver needs to take instance + lock of both nested and parent instances at the same time, devlink + instance lock of the parent instance should be taken first, only then + instance lock of the nested instance could be taken. + - Driver should use object-specific helpers to setup the + nested relationship: + + - ``devl_nested_devlink_set()`` - called to setup devlink -> nested + devlink relationship (could be user for multiple nested instances. + - ``devl_port_fn_devlink_set()`` - called to setup port function -> + nested devlink relationship. + - ``devlink_linecard_nested_dl_set()`` - called to setup linecard -> + nested devlink relationship. + +The nested devlink info is exposed to the userspace over object-specific +attributes of devlink netlink. + Interface documentation ----------------------- |