1 .. SPDX-License-Identifier: GPL-2.0 1 .. SPDX-License-Identifier: GPL-2.0 2 2 3 ================ 3 ================ 4 Devlink Resource 4 Devlink Resource 5 ================ 5 ================ 6 6 7 ``devlink`` provides the ability for drivers t 7 ``devlink`` provides the ability for drivers to register resources, which 8 can allow administrators to see the device res 8 can allow administrators to see the device restrictions for a given 9 resource, as well as how much of the given res 9 resource, as well as how much of the given resource is currently 10 in use. Additionally, these resources can opti 10 in use. Additionally, these resources can optionally have configurable size. 11 This could enable the administrator to limit t 11 This could enable the administrator to limit the number of resources that 12 are used. 12 are used. 13 13 14 For example, the ``netdevsim`` driver enables 14 For example, the ``netdevsim`` driver enables ``/IPv4/fib`` and 15 ``/IPv4/fib-rules`` as resources to limit the 15 ``/IPv4/fib-rules`` as resources to limit the number of IPv4 FIB entries and 16 rules for a given device. 16 rules for a given device. 17 17 18 Resource Ids 18 Resource Ids 19 ============ 19 ============ 20 20 21 Each resource is represented by an id, and con 21 Each resource is represented by an id, and contains information about its 22 current size and related sub resources. To acc 22 current size and related sub resources. To access a sub resource, you 23 specify the path of the resource. For example 23 specify the path of the resource. For example ``/IPv4/fib`` is the id for 24 the ``fib`` sub-resource under the ``IPv4`` re 24 the ``fib`` sub-resource under the ``IPv4`` resource. 25 25 26 Generic Resources 26 Generic Resources 27 ================= 27 ================= 28 28 29 Generic resources are used to describe resourc 29 Generic resources are used to describe resources that can be shared by multiple 30 device drivers and their description must be a 30 device drivers and their description must be added to the following table: 31 31 32 .. list-table:: List of Generic Resources 32 .. list-table:: List of Generic Resources 33 :widths: 10 90 33 :widths: 10 90 34 34 35 * - Name 35 * - Name 36 - Description 36 - Description 37 * - ``physical_ports`` 37 * - ``physical_ports`` 38 - A limited capacity of physical ports th 38 - A limited capacity of physical ports that the switch ASIC can support 39 39 40 example usage 40 example usage 41 ------------- 41 ------------- 42 42 43 The resources exposed by the driver can be obs 43 The resources exposed by the driver can be observed, for example: 44 44 45 .. code:: shell 45 .. code:: shell 46 46 47 $devlink resource show pci/0000:03:00.0 47 $devlink resource show pci/0000:03:00.0 48 pci/0000:03:00.0: 48 pci/0000:03:00.0: 49 name kvd size 245760 unit entry 49 name kvd size 245760 unit entry 50 resources: 50 resources: 51 name linear size 98304 occ 0 unit en 51 name linear size 98304 occ 0 unit entry size_min 0 size_max 147456 size_gran 128 52 name hash_double size 60416 unit ent 52 name hash_double size 60416 unit entry size_min 32768 size_max 180224 size_gran 128 53 name hash_single size 87040 unit ent 53 name hash_single size 87040 unit entry size_min 65536 size_max 212992 size_gran 128 54 54 55 Some resource's size can be changed. Examples: 55 Some resource's size can be changed. Examples: 56 56 57 .. code:: shell 57 .. code:: shell 58 58 59 $devlink resource set pci/0000:03:00.0 pat 59 $devlink resource set pci/0000:03:00.0 path /kvd/hash_single size 73088 60 $devlink resource set pci/0000:03:00.0 pat 60 $devlink resource set pci/0000:03:00.0 path /kvd/hash_double size 74368 61 61 62 The changes do not apply immediately, this can 62 The changes do not apply immediately, this can be validated by the 'size_new' 63 attribute, which represents the pending change 63 attribute, which represents the pending change in size. For example: 64 64 65 .. code:: shell 65 .. code:: shell 66 66 67 $devlink resource show pci/0000:03:00.0 67 $devlink resource show pci/0000:03:00.0 68 pci/0000:03:00.0: 68 pci/0000:03:00.0: 69 name kvd size 245760 unit entry size_val 69 name kvd size 245760 unit entry size_valid false 70 resources: 70 resources: 71 name linear size 98304 size_new 147456 71 name linear size 98304 size_new 147456 occ 0 unit entry size_min 0 size_max 147456 size_gran 128 72 name hash_double size 60416 unit entry 72 name hash_double size 60416 unit entry size_min 32768 size_max 180224 size_gran 128 73 name hash_single size 87040 unit entry 73 name hash_single size 87040 unit entry size_min 65536 size_max 212992 size_gran 128 74 74 75 Note that changes in resource size may require 75 Note that changes in resource size may require a device reload to properly 76 take effect. 76 take effect.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.