sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget#/translations/zh_CN/core-api/cgroupmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/zh_TW/core-api/cgroupmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/it_IT/core-api/cgroupmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ja_JP/core-api/cgroupmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ko_KR/core-api/cgroupmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/sp_SP/core-api/cgroupmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hCgroup Kernel APIsh]hCgroup Kernel APIs}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhh=/var/lib/git/docbuild/linux/Documentation/core-api/cgroup.rsthKubh)}(hhh](h)}(h!Device Memory Cgroup API (dmemcg)h]h!Device Memory Cgroup API (dmemcg)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single-dmem_cgroup_state_evict_valuable (C function)"c.dmem_cgroup_state_evict_valuablehNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(hbool dmem_cgroup_state_evict_valuable (struct dmem_cgroup_pool_state *limit_pool, struct dmem_cgroup_pool_state *test_pool, bool ignore_low, bool *ret_hit_low)h]hdesc_signature_line)}(hbool dmem_cgroup_state_evict_valuable(struct dmem_cgroup_pool_state *limit_pool, struct dmem_cgroup_pool_state *test_pool, bool ignore_low, bool *ret_hit_low)h](hdesc_sig_keyword_type)}(hboolh]hbool}(hhhhhNhNubah}(h]h ]ktah"]h$]h&]uh1hhhhhhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM ubhdesc_sig_space)}(h h]h }(hhhhhNhNubah}(h]h ]wah"]h$]h&]uh1hhhhhhhhM ubh desc_name)}(h dmem_cgroup_state_evict_valuableh]h desc_sig_name)}(h dmem_cgroup_state_evict_valuableh]h dmem_cgroup_state_evict_valuable}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1j hhhhhhhM ubhdesc_parameterlist)}(hy(struct dmem_cgroup_pool_state *limit_pool, struct dmem_cgroup_pool_state *test_pool, bool ignore_low, bool *ret_hit_low)h](hdesc_parameter)}(h)struct dmem_cgroup_pool_state *limit_poolh](hdesc_sig_keyword)}(hstructh]hstruct}(hj<hhhNhNubah}(h]h ]kah"]h$]h&]uh1j:hj6ubh)}(h h]h }(hjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj6ubh)}(hhh]j)}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hj\hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetj^modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]jx ASTIdentifier)}jsjsb"c.dmem_cgroup_state_evict_valuableasbuh1hhj6ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj6ubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhj6ubj)}(h limit_poolh]h limit_pool}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj0ubj5)}(h(struct dmem_cgroup_pool_state *test_poolh](j;)}(hj>h]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjqreftypejs reftargetjmodnameN classnameNjwjz)}j}]j"c.dmem_cgroup_state_evict_valuableasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h test_poolh]h test_pool}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj0ubj5)}(hbool ignore_lowh](h)}(hhh]hbool}(hj-hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj)ubh)}(h h]h }(hj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj)ubj)}(h ignore_lowh]h ignore_low}(hjHhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj0ubj5)}(hbool *ret_hit_lowh](h)}(hhh]hbool}(hjahhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj]ubh)}(h h]h }(hjnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj]ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(h ret_hit_lowh]h ret_hit_low}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj0ubeh}(h]h ]h"]h$]h&]j,j-uh1j.hhhhhhhM ubeh}(h]h ]h"]h$]h&]j,j- add_permalinkuh1hsphinx_line_type declaratorhhhhhhhM ubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhhhM hhhhubh desc_content)}(hhh]h paragraph)}(h'Check if we should evict from test_poolh]h'Check if we should evict from test_pool}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chKhjhhubah}(h]h ]h"]h$]h&]uh1jhhhhhhhM ubeh}(h]h ](jqfunctioneh"]h$]h&]domainjqobjtypejdesctypejnoindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(hXS**Parameters** ``struct dmem_cgroup_pool_state *limit_pool`` The pool for which we hit limits ``struct dmem_cgroup_pool_state *test_pool`` The pool for which to test ``bool ignore_low`` Whether we have to respect low watermarks. ``bool *ret_hit_low`` Pointer to whether it makes sense to consider low watermark. **Description** This function returns true if we can evict from **test_pool**, false if not. When returning false and **ignore_low** is false, **ret_hit_low** may be set to true to indicate this function can be retried with **ignore_low** set to true. **Return** boolh](j)}(h**Parameters**h]hstrong)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubhdefinition_list)}(hhh](hdefinition_list_item)}(hO``struct dmem_cgroup_pool_state *limit_pool`` The pool for which we hit limits h](hterm)}(h-``struct dmem_cgroup_pool_state *limit_pool``h]hliteral)}(hjh]h)struct dmem_cgroup_pool_state *limit_pool}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chKhjubh definition)}(hhh]j)}(h The pool for which we hit limitsh]h The pool for which we hit limits}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'hKhj*ubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhj'hKhjubj)}(hH``struct dmem_cgroup_pool_state *test_pool`` The pool for which to test h](j )}(h,``struct dmem_cgroup_pool_state *test_pool``h]j)}(hjMh]h(struct dmem_cgroup_pool_state *test_pool}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjGubj))}(hhh]j)}(hThe pool for which to testh]hThe pool for which to test}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbhMhjcubah}(h]h ]h"]h$]h&]uh1j(hjGubeh}(h]h ]h"]h$]h&]uh1jhjbhMhjubj)}(h?``bool ignore_low`` Whether we have to respect low watermarks. h](j )}(h``bool ignore_low``h]j)}(hjh]hbool ignore_low}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj))}(hhh]j)}(h*Whether we have to respect low watermarks.h]h*Whether we have to respect low watermarks.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hS``bool *ret_hit_low`` Pointer to whether it makes sense to consider low watermark. h](j )}(h``bool *ret_hit_low``h]j)}(hjh]hbool *ret_hit_low}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj))}(hhh]j)}(hh]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hdmem_cgroup_regionh]hdmem_cgroup_region}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjqreftypejs reftargetj modnameN classnameNjwjz)}j}]j)}jsjsbc.dmem_cgroup_unregister_regionasbuh1hhjubh)}(h h]h }(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hregionh]hregion}(hjDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubah}(h]h ]h"]h$]h&]j,j-uh1j.hjhhhjhMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j)}(h*Unregister a previously registered region.h]h*Unregister a previously registered region.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjkhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jqfunctioneh"]h$]h&]jjqjjjjjjjuh1hhhhhhNhNubj)}(h**Parameters** ``struct dmem_cgroup_region *region`` The region to unregister. **Description** This function undoes dmem_cgroup_register_region.h](j)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj)}(hhh]j)}(h@``struct dmem_cgroup_region *region`` The region to unregister. h](j )}(h%``struct dmem_cgroup_region *region``h]j)}(hjh]h!struct dmem_cgroup_region *region}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj))}(hhh]j)}(hThe region to unregister.h]hThe region to unregister.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj)}(h1This function undoes dmem_cgroup_register_region.h]h1This function undoes dmem_cgroup_register_region.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ(dmem_cgroup_register_region (C function)c.dmem_cgroup_register_regionhNtauh1hhhhhhNhNubh)}(hhh](h)}(hXstruct dmem_cgroup_region * dmem_cgroup_register_region (u64 size, const char *fmt, ...)h]h)}(hVstruct dmem_cgroup_region *dmem_cgroup_register_region(u64 size, const char *fmt, ...)h](j;)}(hj>h]hstruct}(hj/hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj+hhhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMubh)}(h h]h }(hj=hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj+hhhj<hMubh)}(hhh]j)}(hdmem_cgroup_regionh]hdmem_cgroup_region}(hjNhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&] refdomainjqreftypejs reftargetjPmodnameN classnameNjwjz)}j}]j)}jsdmem_cgroup_register_regionsbc.dmem_cgroup_register_regionasbuh1hhj+hhhj<hMubh)}(h h]h }(hjohhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj+hhhj<hMubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj<hMubj)}(hdmem_cgroup_register_regionh]j)}(hjlh]hdmem_cgroup_register_region}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj+hhhj<hMubj/)}(h (u64 size, const char *fmt, ...)h](j5)}(hu64 sizeh](h)}(hhh]j)}(hu64h]hu64}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjqreftypejs reftargetjmodnameN classnameNjwjz)}j}]jjc.dmem_cgroup_register_regionasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubj5)}(hconst char *fmth](j;)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hcharh]hchar}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hfmth]hfmt}(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubj5)}(h...h]j)}(h...h]h...}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubeh}(h]h ]h"]h$]h&]j,j-uh1j.hj+hhhj<hMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj'hhhj<hMubah}(h]j"ah ](jjeh"]h$]h&]jj)jhuh1hhj<hMhj$hhubj)}(hhh]j)}(h"Register a regions for dev cgroup.h]h"Register a regions for dev cgroup.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjvhhubah}(h]h ]h"]h$]h&]uh1jhj$hhhj<hMubeh}(h]h ](jqfunctioneh"]h$]h&]jjqjjjjjjjuh1hhhhhhNhNubj)}(hXs**Parameters** ``u64 size`` Size of region to register, in bytes. ``const char *fmt`` Region parameters to register ``...`` variable arguments **Description** This function registers a node in the dmem cgroup with the name given. After calling this function, the region can be used for allocations. **Return** NULL or a struct on success, PTR_ERR on failure.h](j)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj)}(hhh](j)}(h3``u64 size`` Size of region to register, in bytes. h](j )}(h ``u64 size``h]j)}(hjh]hu64 size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj))}(hhh]j)}(h%Size of region to register, in bytes.h]h%Size of region to register, in bytes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h2``const char *fmt`` Region parameters to register h](j )}(h``const char *fmt``h]j)}(hjh]hconst char *fmt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj))}(hhh]j)}(hRegion parameters to registerh]hRegion parameters to register}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhj ubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``...`` variable arguments h](j )}(h``...``h]j)}(hj,h]h...}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhj&ubj))}(hhh]j)}(hvariable argumentsh]hvariable arguments}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAhMhjBubah}(h]h ]h"]h$]h&]uh1j(hj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(h**Description**h]j)}(hjgh]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj)}(hThis function registers a node in the dmem cgroup with the name given. After calling this function, the region can be used for allocations.h]hThis function registers a node in the dmem cgroup with the name given. After calling this function, the region can be used for allocations.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj)}(h0NULL or a struct on success, PTR_ERR on failure.h]h0NULL or a struct on success, PTR_ERR on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ'dmem_cgroup_pool_state_put (C function)c.dmem_cgroup_pool_state_puthNtauh1hhhhhhNhNubh)}(hhh](h)}(hEvoid dmem_cgroup_pool_state_put (struct dmem_cgroup_pool_state *pool)h]h)}(hDvoid dmem_cgroup_pool_state_put(struct dmem_cgroup_pool_state *pool)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubj)}(hdmem_cgroup_pool_state_puth]j)}(hdmem_cgroup_pool_state_puth]hdmem_cgroup_pool_state_put}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjhhhjhMubj/)}(h%(struct dmem_cgroup_pool_state *pool)h]j5)}(h#struct dmem_cgroup_pool_state *poolh](j;)}(hj>h]hstruct}(hj hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j)}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hj. hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj+ ubah}(h]h ]h"]h$]h&] refdomainjqreftypejs reftargetj0 modnameN classnameNjwjz)}j}]j)}jsjsbc.dmem_cgroup_pool_state_putasbuh1hhj ubh)}(h h]h }(hjN hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj\ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hpoolh]hpool}(hji hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj ubah}(h]h ]h"]h$]h&]j,j-uh1j.hjhhhjhMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j)}(h,Drop a reference to a dmem_cgroup_pool_stateh]h,Drop a reference to a dmem_cgroup_pool_state}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhj hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jqfunctioneh"]h$]h&]jjqjj jj jjjuh1hhhhhhNhNubj)}(h**Parameters** ``struct dmem_cgroup_pool_state *pool`` :c:type:`dmem_cgroup_pool_state` **Description** Called to drop a reference to the limiting pool returned by dmem_cgroup_try_charge().h](j)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhj ubj)}(hhh]j)}(hI``struct dmem_cgroup_pool_state *pool`` :c:type:`dmem_cgroup_pool_state` h](j )}(h'``struct dmem_cgroup_pool_state *pool``h]j)}(hj h]h#struct dmem_cgroup_pool_state *pool}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhj ubj))}(hhh]j)}(h :c:type:`dmem_cgroup_pool_state`h]h)}(hj h]j)}(hj h]hdmem_cgroup_pool_state}(hj hhhNhNubah}(h]h ](xrefjqc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdoccore-api/cgroup refdomainjqreftypetype refexplicitrefwarnjwjz)}j}]sb reftargetdmem_cgroup_pool_stateuh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj hMhj ubah}(h]h ]h"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(h**Description**h]j)}(hj/ h]h Description}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj- ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhj ubj)}(hUCalled to drop a reference to the limiting pool returned by dmem_cgroup_try_charge().h]hUCalled to drop a reference to the limiting pool returned by dmem_cgroup_try_charge().}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ!dmem_cgroup_uncharge (C function)c.dmem_cgroup_unchargehNtauh1hhhhhhNhNubh)}(hhh](h)}(hIvoid dmem_cgroup_uncharge (struct dmem_cgroup_pool_state *pool, u64 size)h]h)}(hHvoid dmem_cgroup_uncharge(struct dmem_cgroup_pool_state *pool, u64 size)h](h)}(hvoidh]hvoid}(hjt hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjp hhhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM;ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjp hhhj hM;ubj)}(hdmem_cgroup_unchargeh]j)}(hdmem_cgroup_unchargeh]hdmem_cgroup_uncharge}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjp hhhj hM;ubj/)}(h/(struct dmem_cgroup_pool_state *pool, u64 size)h](j5)}(h#struct dmem_cgroup_pool_state *poolh](j;)}(hj>h]hstruct}(hj hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j)}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjqreftypejs reftargetj modnameN classnameNjwjz)}j}]j)}jsj sbc.dmem_cgroup_unchargeasbuh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hpoolh]hpool}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj ubj5)}(hu64 sizeh](h)}(hhh]j)}(hu64h]hu64}(hj& hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj# ubah}(h]h ]h"]h$]h&] refdomainjqreftypejs reftargetj( modnameN classnameNjwjz)}j}]j c.dmem_cgroup_unchargeasbuh1hhj ubh)}(h h]h }(hjD hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hsizeh]hsize}(hjR hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj ubeh}(h]h ]h"]h$]h&]j,j-uh1j.hjp hhhj hM;ubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjl hhhj hM;ubah}(h]jg ah ](jjeh"]h$]h&]jj)jhuh1hhj hM;hji hhubj)}(hhh]j)}(hUncharge a pool.h]hUncharge a pool.}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM3hjy hhubah}(h]h ]h"]h$]h&]uh1jhji hhhj hM;ubeh}(h]h ](jqfunctioneh"]h$]h&]jjqjj jj jjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct dmem_cgroup_pool_state *pool`` Pool to uncharge. ``u64 size`` Size to uncharge. **Description** Undoes the effects of dmem_cgroup_try_charge. Must be called with the returned pool as argument, and same **index** and **size**.h](j)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM7hj ubj)}(hhh](j)}(h:``struct dmem_cgroup_pool_state *pool`` Pool to uncharge. h](j )}(h'``struct dmem_cgroup_pool_state *pool``h]j)}(hj h]h#struct dmem_cgroup_pool_state *pool}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM4hj ubj))}(hhh]j)}(hPool to uncharge.h]hPool to uncharge.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hM4hj ubah}(h]h ]h"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]uh1jhj hM4hj ubj)}(h``u64 size`` Size to uncharge. h](j )}(h ``u64 size``h]j)}(hj h]hu64 size}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM5hj ubj))}(hhh]j)}(hSize to uncharge.h]hSize to uncharge.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hM5hj ubah}(h]h ]h"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]uh1jhj hM5hj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(h**Description**h]j)}(hj1 h]h Description}(hj3 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM7hj ubj)}(hUndoes the effects of dmem_cgroup_try_charge. Must be called with the returned pool as argument, and same **index** and **size**.h](hjUndoes the effects of dmem_cgroup_try_charge. Must be called with the returned pool as argument, and same }(hjG hhhNhNubj)}(h **index**h]hindex}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG ubh and }(hjG hhhNhNubj)}(h**size**h]hsize}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG ubh.}(hjG hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM7hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ#dmem_cgroup_try_charge (C function)c.dmem_cgroup_try_chargehNtauh1hhhhhhNhNubh)}(hhh](h)}(hint dmem_cgroup_try_charge (struct dmem_cgroup_region *region, u64 size, struct dmem_cgroup_pool_state **ret_pool, struct dmem_cgroup_pool_state **ret_limit_pool)h]h)}(hint dmem_cgroup_try_charge(struct dmem_cgroup_region *region, u64 size, struct dmem_cgroup_pool_state **ret_pool, struct dmem_cgroup_pool_state **ret_limit_pool)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj hhhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMXubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hMXubj)}(hdmem_cgroup_try_chargeh]j)}(hdmem_cgroup_try_chargeh]hdmem_cgroup_try_charge}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj hhhj hMXubj/)}(h(struct dmem_cgroup_region *region, u64 size, struct dmem_cgroup_pool_state **ret_pool, struct dmem_cgroup_pool_state **ret_limit_pool)h](j5)}(h!struct dmem_cgroup_region *regionh](j;)}(hj>h]hstruct}(hj hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j)}(hdmem_cgroup_regionh]hdmem_cgroup_region}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjqreftypejs reftargetj modnameN classnameNjwjz)}j}]j)}jsj sbc.dmem_cgroup_try_chargeasbuh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj# hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hregionh]hregion}(hj0 hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj ubj5)}(hu64 sizeh](h)}(hhh]j)}(hu64h]hu64}(hjL hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjI ubah}(h]h ]h"]h$]h&] refdomainjqreftypejs reftargetjN modnameN classnameNjwjz)}j}]j c.dmem_cgroup_try_chargeasbuh1hhjE ubh)}(h h]h }(hjj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjE ubj)}(hsizeh]hsize}(hjx hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjE ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj ubj5)}(h(struct dmem_cgroup_pool_state **ret_poolh](j;)}(hj>h]hstruct}(hj hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j)}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjqreftypejs reftargetj modnameN classnameNjwjz)}j}]j c.dmem_cgroup_try_chargeasbuh1hhj ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hret_poolh]hret_pool}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj ubj5)}(h.struct dmem_cgroup_pool_state **ret_limit_poolh](j;)}(hj>h]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubh)}(hhh]j)}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hj,hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&] refdomainjqreftypejs reftargetj.modnameN classnameNjwjz)}j}]j c.dmem_cgroup_try_chargeasbuh1hhj ubh)}(h h]h }(hjJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hret_limit_poolh]hret_limit_pool}(hjrhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj ubeh}(h]h ]h"]h$]h&]j,j-uh1j.hj hhhj hMXubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj hhhj hMXubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1hhj hMXhj hhubj)}(hhh]j)}(h*Try charging a new allocation to a region.h]h*Try charging a new allocation to a region.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMFhjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hMXubeh}(h]h ](jqfunctioneh"]h$]h&]jjqjjjjjjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct dmem_cgroup_region *region`` dmem region to charge ``u64 size`` Size (in bytes) to charge. ``struct dmem_cgroup_pool_state **ret_pool`` On succesfull allocation, the pool that is charged. ``struct dmem_cgroup_pool_state **ret_limit_pool`` On a failed allocation, the limiting pool. **Description** This function charges the **region** region for a size of **size** bytes. If the function succeeds, **ret_pool** is set, which must be passed to dmem_cgroup_uncharge() when undoing the allocation. When this function fails with -EAGAIN and **ret_limit_pool** is non-null, it will be set to the pool for which the limit is hit. This can be used for eviction as argument to dmem_cgroup_evict_valuable(). This reference must be freed with **dmem_cgroup_pool_state_put\(\)**. **Return** 0 on success, -EAGAIN on hitting a limit, or a negative errno on failure.h](j)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMJhjubj)}(hhh](j)}(h<``struct dmem_cgroup_region *region`` dmem region to charge h](j )}(h%``struct dmem_cgroup_region *region``h]j)}(hjh]h!struct dmem_cgroup_region *region}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMGhjubj))}(hhh]j)}(hdmem region to chargeh]hdmem region to charge}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMGhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMGhjubj)}(h(``u64 size`` Size (in bytes) to charge. h](j )}(h ``u64 size``h]j)}(hjh]hu64 size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMHhjubj))}(hhh]j)}(hSize (in bytes) to charge.h]hSize (in bytes) to charge.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+hMHhj,ubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhj+hMHhjubj)}(ha``struct dmem_cgroup_pool_state **ret_pool`` On succesfull allocation, the pool that is charged. h](j )}(h,``struct dmem_cgroup_pool_state **ret_pool``h]j)}(hjOh]h(struct dmem_cgroup_pool_state **ret_pool}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMIhjIubj))}(hhh]j)}(h3On succesfull allocation, the pool that is charged.h]h3On succesfull allocation, the pool that is charged.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdhMIhjeubah}(h]h ]h"]h$]h&]uh1j(hjIubeh}(h]h ]h"]h$]h&]uh1jhjdhMIhjubj)}(h^``struct dmem_cgroup_pool_state **ret_limit_pool`` On a failed allocation, the limiting pool. h](j )}(h2``struct dmem_cgroup_pool_state **ret_limit_pool``h]j)}(hjh]h.struct dmem_cgroup_pool_state **ret_limit_pool}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMJhjubj))}(hhh]j)}(h*On a failed allocation, the limiting pool.h]h*On a failed allocation, the limiting pool.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMJhjubah}(h]h ]h"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]uh1jhjhMJhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMLhjubj)}(hIThis function charges the **region** region for a size of **size** bytes.h](hThis function charges the }(hjhhhNhNubj)}(h **region**h]hregion}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh region for a size of }(hjhhhNhNubj)}(h**size**h]hsize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh bytes.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMLhjubj)}(hzIf the function succeeds, **ret_pool** is set, which must be passed to dmem_cgroup_uncharge() when undoing the allocation.h](hIf the function succeeds, }(hj hhhNhNubj)}(h **ret_pool**h]hret_pool}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhT is set, which must be passed to dmem_cgroup_uncharge() when undoing the allocation.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMNhjubj)}(hXWhen this function fails with -EAGAIN and **ret_limit_pool** is non-null, it will be set to the pool for which the limit is hit. This can be used for eviction as argument to dmem_cgroup_evict_valuable(). This reference must be freed with **dmem_cgroup_pool_state_put\(\)**.h](h*When this function fails with -EAGAIN and }(hj-hhhNhNubj)}(h**ret_limit_pool**h]hret_limit_pool}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubh is non-null, it will be set to the pool for which the limit is hit. This can be used for eviction as argument to dmem_cgroup_evict_valuable(). This reference must be freed with }(hj-hhhNhNubj)}(h"**dmem_cgroup_pool_state_put\(\)**h]hdmem_cgroup_pool_state_put()}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubh.}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMQhjubj)}(h **Return**h]j)}(hjbh]hReturn}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMVhjubj)}(hI0 on success, -EAGAIN on hitting a limit, or a negative errno on failure.h]hI0 on success, -EAGAIN on hitting a limit, or a negative errno on failure.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMVhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubeh}(h]device-memory-cgroup-api-dmemcgah ]h"]!device memory cgroup api (dmemcg)ah$]h&]uh1hhhhhhhhKubeh}(h]cgroup-kernel-apisah ]h"]cgroup kernel apisah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjju nametypes}(jjuh}(jhjhhhjjj"j'jjjg jl j j u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.