€•/‡Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ./translations/zh_CN/admin-guide/cgroup-v1/rdma”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/zh_TW/admin-guide/cgroup-v1/rdma”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/it_IT/admin-guide/cgroup-v1/rdma”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/ja_JP/admin-guide/cgroup-v1/rdma”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/ko_KR/admin-guide/cgroup-v1/rdma”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/pt_BR/admin-guide/cgroup-v1/rdma”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/sp_SP/admin-guide/cgroup-v1/rdma”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒRDMA Controller”h]”hŒRDMA Controller”…””}”(hh¼h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hŗhh·h²hh³ŒH/var/lib/git/docbuild/linux/Documentation/admin-guide/cgroup-v1/rdma.rst”h“KubhŒcomment”“”)”}”(hŒ­Contents 1. Overview 1-1. What is RDMA controller? 1-2. Why RDMA controller needed? 1-3. How is RDMA controller implemented? 2. Usage Examples 3. RDMA Interface Files”h]”hŒ­Contents 1. Overview 1-1. What is RDMA controller? 1-2. Why RDMA controller needed? 1-3. How is RDMA controller implemented? 2. Usage Examples 3. RDMA Interface Files”…””}”hhĶsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hĖhh·h²hh³hŹh“K ubh¶)”}”(hhh]”(h»)”}”(hŒ 1. Overview”h]”hŒ 1. Overview”…””}”(hhąh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hŗhhŻh²hh³hŹh“Kubh¶)”}”(hhh]”(h»)”}”(hŒ1-1. What is RDMA controller?”h]”hŒ1-1. What is RDMA controller?”…””}”(hhńh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hŗhhīh²hh³hŹh“KubhŒ paragraph”“”)”}”(hŒ™RDMA controller allows user to limit RDMA/IB specific resources that a given set of processes can use. These processes are grouped using RDMA controller.”h]”hŒ™RDMA controller allows user to limit RDMA/IB specific resources that a given set of processes can use. These processes are grouped using RDMA controller.”…””}”(hjh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“Khhīh²hubj)”}”(hŒURDMA controller defines two resources which can be limited for processes of a cgroup.”h]”hŒURDMA controller defines two resources which can be limited for processes of a cgroup.”…””}”(hjh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“Khhīh²hubeh}”(h]”Œwhat-is-rdma-controller”ah ]”h"]”Œ1-1. what is rdma controller?”ah$]”h&]”uh1hµhhŻh²hh³hŹh“Kubh¶)”}”(hhh]”(h»)”}”(hŒ 1-2. Why RDMA controller needed?”h]”hŒ 1-2. Why RDMA controller needed?”…””}”(hj(h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hŗhj%h²hh³hŹh“Kubj)”}”(hXCurrently user space applications can easily take away all the rdma verb specific resources such as AH, CQ, QP, MR etc. Due to which other applications in other cgroup or kernel space ULPs may not even get chance to allocate any rdma resources. This can lead to service unavailability.”h]”hXCurrently user space applications can easily take away all the rdma verb specific resources such as AH, CQ, QP, MR etc. Due to which other applications in other cgroup or kernel space ULPs may not even get chance to allocate any rdma resources. This can lead to service unavailability.”…””}”(hj6h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“Khj%h²hubj)”}”(hŒ¦Therefore RDMA controller is needed through which resource consumption of processes can be limited. Through this controller different rdma resources can be accounted.”h]”hŒ¦Therefore RDMA controller is needed through which resource consumption of processes can be limited. Through this controller different rdma resources can be accounted.”…””}”(hjDh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“K"hj%h²hubeh}”(h]”Œwhy-rdma-controller-needed”ah ]”h"]”Œ 1-2. why rdma controller needed?”ah$]”h&]”uh1hµhhŻh²hh³hŹh“Kubh¶)”}”(hhh]”(h»)”}”(hŒ(1-3. How is RDMA controller implemented?”h]”hŒ(1-3. How is RDMA controller implemented?”…””}”(hj]h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hŗhjZh²hh³hŹh“K'ubj)”}”(hXRDMA cgroup allows limit configuration of resources. Rdma cgroup maintains resource accounting per cgroup, per device using resource pool structure. Each such resource pool is limited up to 64 resources in given resource pool by rdma cgroup, which can be extended later if required.”h]”hXRDMA cgroup allows limit configuration of resources. Rdma cgroup maintains resource accounting per cgroup, per device using resource pool structure. Each such resource pool is limited up to 64 resources in given resource pool by rdma cgroup, which can be extended later if required.”…””}”(hjkh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“K)hjZh²hubj)”}”(hX\This resource pool object is linked to the cgroup css. Typically there are 0 to 4 resource pool instances per cgroup, per device in most use cases. But nothing limits to have it more. At present hundreds of RDMA devices per single cgroup may not be handled optimally, however there is no known use case or requirement for such configuration either.”h]”hX\This resource pool object is linked to the cgroup css. Typically there are 0 to 4 resource pool instances per cgroup, per device in most use cases. But nothing limits to have it more. At present hundreds of RDMA devices per single cgroup may not be handled optimally, however there is no known use case or requirement for such configuration either.”…””}”(hjyh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“K.hjZh²hubj)”}”(hXRSince RDMA resources can be allocated from any process and can be freed by any of the child processes which shares the address space, rdma resources are always owned by the creator cgroup css. This allows process migration from one to other cgroup without major complexity of transferring resource ownership; because such ownership is not really present due to shared nature of rdma resources. Linking resources around css also ensures that cgroups can be deleted after processes migrated. This allow progress migration as well with active resources, even though that is not a primary use case.”h]”hXRSince RDMA resources can be allocated from any process and can be freed by any of the child processes which shares the address space, rdma resources are always owned by the creator cgroup css. This allows process migration from one to other cgroup without major complexity of transferring resource ownership; because such ownership is not really present due to shared nature of rdma resources. Linking resources around css also ensures that cgroups can be deleted after processes migrated. This allow progress migration as well with active resources, even though that is not a primary use case.”…””}”(hj‡h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“K4hjZh²hubj)”}”(hXžWhenever RDMA resource charging occurs, owner rdma cgroup is returned to the caller. Same rdma cgroup should be passed while uncharging the resource. This also allows process migrated with active RDMA resource to charge to new owner cgroup for new resource. It also allows to uncharge resource of a process from previously charged cgroup which is migrated to new cgroup, even though that is not a primary use case.”h]”hXžWhenever RDMA resource charging occurs, owner rdma cgroup is returned to the caller. Same rdma cgroup should be passed while uncharging the resource. This also allows process migrated with active RDMA resource to charge to new owner cgroup for new resource. It also allows to uncharge resource of a process from previously charged cgroup which is migrated to new cgroup, even though that is not a primary use case.”…””}”(hj•h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“K=hjZh²hubj)”}”(hX­Resource pool object is created in following situations. (a) User sets the limit and no previous resource pool exist for the device of interest for the cgroup. (b) No resource limits were configured, but IB/RDMA stack tries to charge the resource. So that it correctly uncharge them when applications are running without limits and later on when limits are enforced during uncharging, otherwise usage count will drop to negative.”h]”hX­Resource pool object is created in following situations. (a) User sets the limit and no previous resource pool exist for the device of interest for the cgroup. (b) No resource limits were configured, but IB/RDMA stack tries to charge the resource. So that it correctly uncharge them when applications are running without limits and later on when limits are enforced during uncharging, otherwise usage count will drop to negative.”…””}”(hj£h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“KDhjZh²hubj)”}”(hŒuResource pool is destroyed if all the resource limits are set to max and it is the last resource getting deallocated.”h]”hŒuResource pool is destroyed if all the resource limits are set to max and it is the last resource getting deallocated.”…””}”(hj±h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“KLhjZh²hubj)”}”(hŒyUser should set all the limit to max value if it intents to remove/unconfigure the resource pool for a particular device.”h]”hŒyUser should set all the limit to max value if it intents to remove/unconfigure the resource pool for a particular device.”…””}”(hjæh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“KOhjZh²hubj)”}”(hŒāIB stack honors limits enforced by the rdma controller. When application query about maximum resource limits of IB device, it returns minimum of what is configured by user for a given cgroup and what is supported by IB device.”h]”hŒāIB stack honors limits enforced by the rdma controller. When application query about maximum resource limits of IB device, it returns minimum of what is configured by user for a given cgroup and what is supported by IB device.”…””}”(hjĶh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“KRhjZh²hubj)”}”(hŒ8Following resources can be accounted by rdma controller.”h]”hŒ8Following resources can be accounted by rdma controller.”…””}”(hjŪh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“KWhjZh²hubhŒ block_quote”“”)”}”(hŒ°========== ============================= hca_handle Maximum number of HCA Handles hca_object Maximum number of HCA Objects ========== ============================= ”h]”hŒtable”“”)”}”(hhh]”hŒtgroup”“”)”}”(hhh]”(hŒcolspec”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1jłhjöubjś)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jłhjöubhŒtbody”“”)”}”(hhh]”(hŒrow”“”)”}”(hhh]”(hŒentry”“”)”}”(hhh]”j)”}”(hŒ hca_handle”h]”hŒ hca_handle”…””}”(hjh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“KZhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)”}”(hhh]”j)”}”(hŒMaximum number of HCA Handles”h]”hŒMaximum number of HCA Handles”…””}”(hj5h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“KZhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubj)”}”(hhh]”(j)”}”(hhh]”j)”}”(hŒ hca_object”h]”hŒ hca_object”…””}”(hjUh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“K[hjRubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjOubj)”}”(hhh]”j)”}”(hŒMaximum number of HCA Objects”h]”hŒMaximum number of HCA Objects”…””}”(hjlh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“K[hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjöubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jōhjńubah}”(h]”h ]”h"]”h$]”h&]”uh1jļhjėubah}”(h]”h ]”h"]”h$]”h&]”uh1jéh³hŹh“KYhjZh²hubj)”}”(hX¢RDMA devices from all network namespaces are listed. Each line starts with the device name. If more than one device has the same name, ``index=N`` follows the name, where ``N`` is the system-wide RDMA device index, unique among registered devices. When configuring a limit, the index is optional for a globally unique name and required for a duplicate name. A write without the required index fails with ``-ENOTUNIQ``.”h]”(hŒ‡RDMA devices from all network namespaces are listed. Each line starts with the device name. If more than one device has the same name, ”…””}”(hjŸh²hh³Nh“NubhŒliteral”“”)”}”(hŒ ``index=N``”h]”hŒindex=N”…””}”(hj©h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjŸubhŒ follows the name, where ”…””}”(hjŸh²hh³Nh“NubjØ)”}”(hŒ``N``”h]”hŒN”…””}”(hj»h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjŸubhŒä is the system-wide RDMA device index, unique among registered devices. When configuring a limit, the index is optional for a globally unique name and required for a duplicate name. A write without the required index fails with ”…””}”(hjŸh²hh³Nh“NubjØ)”}”(hŒ ``-ENOTUNIQ``”h]”hŒ -ENOTUNIQ”…””}”(hjĶh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j§hjŸubhŒ.”…””}”(hjŸh²hh³Nh“Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“K^hjZh²hubeh}”(h]”Œ"how-is-rdma-controller-implemented”ah ]”h"]”Œ(1-3. how is rdma controller implemented?”ah$]”h&]”uh1hµhhŻh²hh³hŹh“K'ubeh}”(h]”Œoverview”ah ]”h"]”Œ 1. overview”ah$]”h&]”uh1hµhh·h²hh³hŹh“Kubh¶)”}”(hhh]”(h»)”}”(hŒ2. Usage Examples”h]”hŒ2. Usage Examples”…””}”(hjųh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hŗhjõh²hh³hŹh“KfubhŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒļConfigure resource limit:: echo mlx4_0 hca_handle=2 hca_object=2000 > /sys/fs/cgroup/rdma/1/rdma.max echo ocrdma1 hca_handle=3 > /sys/fs/cgroup/rdma/2/rdma.max echo "rxe0 index=5 hca_handle=2" > /sys/fs/cgroup/rdma/3/rdma.max ”h]”(j)”}”(hŒConfigure resource limit::”h]”hŒConfigure resource limit:”…””}”(hjh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“Khhj ubhŒ literal_block”“”)”}”(hŒĘecho mlx4_0 hca_handle=2 hca_object=2000 > /sys/fs/cgroup/rdma/1/rdma.max echo ocrdma1 hca_handle=3 > /sys/fs/cgroup/rdma/2/rdma.max echo "rxe0 index=5 hca_handle=2" > /sys/fs/cgroup/rdma/3/rdma.max”h]”hŒĘecho mlx4_0 hca_handle=2 hca_object=2000 > /sys/fs/cgroup/rdma/1/rdma.max echo ocrdma1 hca_handle=3 > /sys/fs/cgroup/rdma/2/rdma.max echo "rxe0 index=5 hca_handle=2" > /sys/fs/cgroup/rdma/3/rdma.max”…””}”hj!sbah}”(h]”h ]”h"]”h$]”h&]”hŪhÜuh1jh³hŹh“Kjhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j hjh²hh³hŹh“Nubj )”}”(hŒœQuery resource limit:: cat /sys/fs/cgroup/rdma/2/rdma.max #Output: mlx4_0 hca_handle=2 hca_object=2000 ocrdma1 hca_handle=3 hca_object=max ”h]”(j)”}”(hŒQuery resource limit::”h]”hŒQuery resource limit:”…””}”(hj9h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“Knhj5ubj )”}”(hŒscat /sys/fs/cgroup/rdma/2/rdma.max #Output: mlx4_0 hca_handle=2 hca_object=2000 ocrdma1 hca_handle=3 hca_object=max”h]”hŒscat /sys/fs/cgroup/rdma/2/rdma.max #Output: mlx4_0 hca_handle=2 hca_object=2000 ocrdma1 hca_handle=3 hca_object=max”…””}”hjGsbah}”(h]”h ]”h"]”h$]”h&]”hŪhÜuh1jh³hŹh“Kphj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j hjh²hh³hŹh“Nubj )”}”(hŒœQuery current usage:: cat /sys/fs/cgroup/rdma/2/rdma.current #Output: mlx4_0 hca_handle=1 hca_object=20 ocrdma1 hca_handle=1 hca_object=23 ”h]”(j)”}”(hŒQuery current usage::”h]”hŒQuery current usage:”…””}”(hj_h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“Kuhj[ubj )”}”(hŒtcat /sys/fs/cgroup/rdma/2/rdma.current #Output: mlx4_0 hca_handle=1 hca_object=20 ocrdma1 hca_handle=1 hca_object=23”h]”hŒtcat /sys/fs/cgroup/rdma/2/rdma.current #Output: mlx4_0 hca_handle=1 hca_object=20 ocrdma1 hca_handle=1 hca_object=23”…””}”hjmsbah}”(h]”h ]”h"]”h$]”h&]”hŪhÜuh1jh³hŹh“Kwhj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j hjh²hh³hŹh“Nubj )”}”(hŒhDelete resource limit:: echo mlx4_0 hca_handle=max hca_object=max > /sys/fs/cgroup/rdma/1/rdma.max ”h]”(j)”}”(hŒDelete resource limit::”h]”hŒDelete resource limit:”…””}”(hj…h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“K|hjubj )”}”(hŒJecho mlx4_0 hca_handle=max hca_object=max > /sys/fs/cgroup/rdma/1/rdma.max”h]”hŒJecho mlx4_0 hca_handle=max hca_object=max > /sys/fs/cgroup/rdma/1/rdma.max”…””}”hj“sbah}”(h]”h ]”h"]”h$]”h&]”hŪhÜuh1jh³hŹh“K~hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j hjh²hh³hŹh“Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œ loweralpha”Œprefix”Œ(”Œsuffix”Œ)”uh1jhjõh²hh³hŹh“Khubeh}”(h]”Œusage-examples”ah ]”h"]”Œ2. usage examples”ah$]”h&]”uh1hµhh·h²hh³hŹh“Kfubh¶)”}”(hhh]”(h»)”}”(hŒ3. RDMA Interface Files”h]”hŒ3. RDMA Interface Files”…””}”(hj¾h²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hŗhj»h²hh³hŹh“Kubj)”}”(hŒIThe following interface files are available in each non-root RDMA cgroup.”h]”hŒIThe following interface files are available in each non-root RDMA cgroup.”…””}”(hjĢh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“Kƒhj»h²hubjź)”}”(hXśrdma.max A read-write file which describes the configured resource limit for an RDMA/IB device. See the Usage Examples above. rdma.current A read-only file which describes the current resource usage. rdma.peak A read-only nested-keyed file which shows the historical high watermark of resource usage per device since the cgroup was created. An example for mlx4 and ocrdma device follows:: mlx4_0 hca_handle=1 hca_object=20 ocrdma1 hca_handle=0 hca_object=23 rdma.events A read-only nested-keyed file which exists on non-root cgroups and contains the following keys: max The number of times a process in this cgroup or its descendants attempted an RDMA resource allocation that was rejected because a rdma.max limit in the subtree was reached. This is a hierarchical counter propagated upward to all ancestor cgroups. A value change in this file generates a file modified event. alloc_fail The number of RDMA resource allocation attempts that originated in this cgroup or its descendants and failed due to a rdma.max limit being reached. This is a hierarchical counter propagated upward. An example for mlx4 device follows:: mlx4_0 hca_handle.max=5 hca_handle.alloc_fail=3 hca_object.max=0 hca_object.alloc_fail=0 rdma.events.local Similar to rdma.events but the fields are local to the cgroup, i.e. not hierarchical. The file modified event generated on this file reflects only the local events. The following nested keys are defined. max The number of times a process in this cgroup or its descendants attempted an RDMA resource allocation that was rejected because this cgroup's own rdma.max limit was reached. alloc_fail The number of RDMA resource allocation attempts originating from this cgroup that failed due to this cgroup's or an ancestor's rdma.max limit. An example for mlx4 device follows:: mlx4_0 hca_handle.max=5 hca_handle.alloc_fail=0 hca_object.max=0 hca_object.alloc_fail=0”h]”hŒdefinition_list”“”)”}”(hhh]”(hŒdefinition_list_item”“”)”}”(hŒrdma.max A read-write file which describes the configured resource limit for an RDMA/IB device. See the Usage Examples above. ”h]”(hŒterm”“”)”}”(hŒrdma.max”h]”hŒrdma.max”…””}”(hjėh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéh³hŹh“K‡hjåubhŒ definition”“”)”}”(hhh]”j)”}”(hŒuA read-write file which describes the configured resource limit for an RDMA/IB device. See the Usage Examples above.”h]”hŒuA read-write file which describes the configured resource limit for an RDMA/IB device. See the Usage Examples above.”…””}”(hjžh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h’h³hŹh“K†hjūubah}”(h]”h ]”h"]”h$]”h&]”uh1jłhjåubeh}”(h]”h ]”h"]”h$]”h&]”uh1jćh³hŹh“K‡hjąubjä)”}”(hŒJrdma.current A read-only file which describes the current resource usage. ”h]”(jź)”}”(hŒ rdma.current”h]”hŒ rdma.current”…””}”(hjh²hh³Nh“Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jéh³hŹh“KŠhjubjś)”}”(hhh]”j)”}”(hŒ