Msphinx.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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/pt_BR/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}(hjhhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhhhhhjhM!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}(hj)hhhNhNubah}(h]h ]nah"]h$]h&]uh1j'hj#ubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1j!hhhhhjhM!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}(hjPhhhNhNubah}(h]h ]kah"]h$]h&]uh1jNhjJubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubh)}(hhh]j()}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hjphhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjmubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjrmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jj+sb"c.dmem_cgroup_state_evict_valuableasbuh1hhjJubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjJubj()}(h limit_poolh]h limit_pool}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjJubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjDubjI)}(h(struct dmem_cgroup_pool_state *test_poolh](jO)}(hjRh]hstruct}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j"c.dmem_cgroup_state_evict_valuableasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(h test_poolh]h test_pool}(hj(hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjDubjI)}(hbool ignore_lowh](h)}(hjh]hbool}(hjAhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj=ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj()}(h ignore_lowh]h ignore_low}(hj\hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj=ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjDubjI)}(hbool *ret_hit_lowh](h)}(hjh]hbool}(hjuhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj()}(h ret_hit_lowh]h ret_hit_low}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjqubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjDubeh}(h]h ]h"]h$]h&]j@jAuh1jBhhhhhjhM!ubeh}(h]h ]h"]h$]h&]j@jA add_permalinkuh1hsphinx_line_type declaratorhhhhhjhM!ubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhjhM!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.chM!hjhhubah}(h]h ]h"]h$]h&]uh1jhhhhhjhM!ubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejdesctypejnoindex 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.chM%hjubhdefinition_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)}(hj$h]h)struct dmem_cgroup_pool_state *limit_pool}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j&hj"ubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM"hjubh definition)}(hhh]j)}(h The pool for which we hit limitsh]h The pool for which we hit limits}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;hM"hj>ubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1jhj;hM"hjubj)}(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')}(hjah]h(struct dmem_cgroup_pool_state *test_pool}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1j&hj_ubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM#hj[ubj=)}(hhh]j)}(hThe pool for which to testh]hThe pool for which to test}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvhM#hjwubah}(h]h ]h"]h$]h&]uh1j<hj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhM#hjubj)}(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&]uh1j&hjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM$hjubj=)}(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&]uh1jhjhM$hjubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1jhjhM$hjubj)}(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&]uh1j&hjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM%hjubj=)}(hhh]j)}(hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh is false, }(hj$hhhNhNubj)}(h**ret_hit_low**h]h ret_hit_low}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubhB may be set to true to indicate this function can be retried with }(hj$hhhNhNubj)}(h**ignore_low**h]h ignore_low}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh set to true.}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM&hjubj)}(h **Return**h]j)}(hj}h]hReturn}(hjhhhNhNubah}(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.chM+hjubj)}(hboolh]hbool}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM,hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*dmem_cgroup_unregister_region (C function)c.dmem_cgroup_unregister_regionhNtauh1hhhhhhNhNubh)}(hhh](h)}(hFvoid dmem_cgroup_unregister_region (struct dmem_cgroup_region *region)h]h)}(hEvoid dmem_cgroup_unregister_region(struct dmem_cgroup_region *region)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj")}(hdmem_cgroup_unregister_regionh]j()}(hdmem_cgroup_unregister_regionh]hdmem_cgroup_unregister_region}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjhhhjhMubjC)}(h#(struct dmem_cgroup_region *region)h]jI)}(h!struct dmem_cgroup_region *regionh](jO)}(hjRh]hstruct}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(hdmem_cgroup_regionh]hdmem_cgroup_region}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.dmem_cgroup_unregister_regionasbuh1hhjubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hregionh]hregion}(hjXhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubah}(h]h ]h"]h$]h&]j@jAuh1jBhjhhhjhMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j)}(h*Unregister a previously registered region.h]h*Unregister a previously registered region.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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&]uh1j&hjubah}(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](jO)}(hjRh]hstruct}(hjChhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj?hhhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?hhhjPhMubh)}(hhh]j()}(hdmem_cgroup_regionh]hdmem_cgroup_region}(hjbhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]j)}jdmem_cgroup_register_regionsbc.dmem_cgroup_register_regionasbuh1hhj?hhhjPhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?hhhjPhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?hhhjPhMubj")}(hdmem_cgroup_register_regionh]j()}(hjh]hdmem_cgroup_register_region}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj?hhhjPhMubjC)}(h (u64 size, const char *fmt, ...)h](jI)}(hu64 sizeh](h)}(hhh]j()}(hu64h]hu64}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j~c.dmem_cgroup_register_regionasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubjI)}(hconst char *fmth](jO)}(hconsth]hconst}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hcharh]hchar}(hj!hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hfmth]hfmt}(hjJhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubjI)}(h...h]j)}(h...h]h...}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubeh}(h]h ]h"]h$]h&]j@jAuh1jBhj?hhhjPhMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj;hhhjPhMubah}(h]j6ah ](jjeh"]h$]h&]jj)jhuh1hhjPhMhj8hhubj)}(hhh]j)}(h"Register a regions for dev cgroup.h]h"Register a regions for dev cgroup.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj8hhhjPhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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&]uh1j&hjubah}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjubah}(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&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``...`` variable arguments h](j!)}(h``...``h]j')}(hj@h]h...}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j&hj>ubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chKhj:ubj=)}(hhh]j)}(hvariable argumentsh]hvariable arguments}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUhKhjVubah}(h]h ]h"]h$]h&]uh1j<hj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(h**Description**h]j)}(hj{h]h Description}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chKhjubj)}(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.}(hjhhhNhNubah}(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 ]j ah"]h$]h&]uh1hhjhhhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM,ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM,ubj")}(hdmem_cgroup_pool_state_puth]j()}(hdmem_cgroup_pool_state_puth]hdmem_cgroup_pool_state_put}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjhhhjhM,ubjC)}(h%(struct dmem_cgroup_pool_state *pool)h]jI)}(h#struct dmem_cgroup_pool_state *poolh](jO)}(hjRh]hstruct}(hj$ hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubj)}(h h]h }(hj1 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j()}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hjB hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj? ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjD modnameN classnameNjj)}j]j)}jj sbc.dmem_cgroup_pool_state_putasbuh1hhj ubj)}(h h]h }(hjb hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hjp hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj()}(hpoolh]hpool}(hj} hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj ubah}(h]h ]h"]h$]h&]j@jAuh1jBhjhhhjhM,ubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjhhhjhM,ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhM,hjhhubj)}(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.chM,hj hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj 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.chM0hj 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&]uh1j&hj ubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM-hj 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 ](xrefjc-typeeh"]h$]h&]uh1j&hj ubah}(h]h ]h"]h$]h&]refdoccore-api/cgroup refdomainjreftypetype refexplicitrefwarnjj)}j]sb reftargetdmem_cgroup_pool_stateuh1hhj hM-hj ubah}(h]h ]h"]h$]h&]uh1jhj hM-hj ubah}(h]h ]h"]h$]h&]uh1j<hj ubeh}(h]h ]h"]h$]h&]uh1jhj hM-hj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(h**Description**h]j)}(hjC h]h Description}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM/hj 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().}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM.hj 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}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMeubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hMeubj")}(hdmem_cgroup_unchargeh]j()}(hdmem_cgroup_unchargeh]hdmem_cgroup_uncharge}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj hhhj hMeubjC)}(h/(struct dmem_cgroup_pool_state *pool, u64 size)h](jI)}(h#struct dmem_cgroup_pool_state *poolh](jO)}(hjRh]hstruct}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j()}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.dmem_cgroup_unchargeasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj()}(hpoolh]hpool}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj ubjI)}(hu64 sizeh](h)}(hhh]j()}(hu64h]hu64}(hj: hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj7 ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj< modnameN classnameNjj)}j]j c.dmem_cgroup_unchargeasbuh1hhj3 ubj)}(h h]h }(hjX hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3 ubj()}(hsizeh]hsize}(hjf hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj3 ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj ubeh}(h]h ]h"]h$]h&]j@jAuh1jBhj hhhj hMeubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj hhhj hMeubah}(h]j{ ah ](jjeh"]h$]h&]jj)jhuh1hhj hMehj} 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.chMehj hhubah}(h]h ]h"]h$]h&]uh1jhj} hhhj hMeubeh}(h]h ](jfunctioneh"]h$]h&]jjjj 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.chMihj 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&]uh1j&hj ubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMfhj ubj=)}(hhh]j)}(hPool to uncharge.h]hPool to uncharge.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hMfhj ubah}(h]h ]h"]h$]h&]uh1j<hj ubeh}(h]h ]h"]h$]h&]uh1jhj hMfhj 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&]uh1j&hj ubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMghj ubj=)}(hhh]j)}(hSize to uncharge.h]hSize to uncharge.}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hMghj ubah}(h]h ]h"]h$]h&]uh1j<hj ubeh}(h]h ]h"]h$]h&]uh1jhj hMghj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(h**Description**h]j)}(hjE h]h Description}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC ubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMihj 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 }(hj[ hhhNhNubj)}(h **index**h]hindex}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ ubh and }(hj[ hhhNhNubj)}(h**size**h]hsize}(hju hhhNhNubah}(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.chMhhj 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 ]j ah"]h$]h&]uh1hhj hhhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMyubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hMyubj")}(hdmem_cgroup_try_chargeh]j()}(hdmem_cgroup_try_chargeh]hdmem_cgroup_try_charge}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj hhhj hMyubjC)}(h(struct dmem_cgroup_region *region, u64 size, struct dmem_cgroup_pool_state **ret_pool, struct dmem_cgroup_pool_state **ret_limit_pool)h](jI)}(h!struct dmem_cgroup_region *regionh](jO)}(hjRh]hstruct}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j()}(hdmem_cgroup_regionh]hdmem_cgroup_region}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.dmem_cgroup_try_chargeasbuh1hhj ubj)}(h h]h }(hj) hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj7 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj()}(hregionh]hregion}(hjD hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj ubjI)}(hu64 sizeh](h)}(hhh]j()}(hu64h]hu64}(hj` hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj] ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjb modnameN classnameNjj)}j]j% c.dmem_cgroup_try_chargeasbuh1hhjY ubj)}(h h]h }(hj~ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY ubj()}(hsizeh]hsize}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjY ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj ubjI)}(h(struct dmem_cgroup_pool_state **ret_poolh](jO)}(hjRh]hstruct}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j()}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j% c.dmem_cgroup_try_chargeasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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 ]j4ah"]h$]h&]uh1j'hj ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj ubjI)}(h.struct dmem_cgroup_pool_state **ret_limit_poolh](jO)}(hjRh]hstruct}(hj"hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(hdmem_cgroup_pool_stateh]hdmem_cgroup_pool_state}(hj@hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]j% c.dmem_cgroup_try_chargeasbuh1hhjubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hret_limit_poolh]hret_limit_pool}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj ubeh}(h]h ]h"]h$]h&]j@jAuh1jBhj hhhj hMyubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj hhhj hMyubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1hhj hMyhj 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.chMyhjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hMyubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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.chM}hjubj)}(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&]uh1j&hjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMzhjubj=)}(hhh]j)}(hdmem region to chargeh]hdmem region to charge}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMzhjubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1jhjhMzhjubj)}(h(``u64 size`` Size (in bytes) to charge. h](j!)}(h ``u64 size``h]j')}(hj*h]hu64 size}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j&hj(ubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM{hj$ubj=)}(hhh]j)}(hSize (in bytes) to charge.h]hSize (in bytes) to charge.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?hM{hj@ubah}(h]h ]h"]h$]h&]uh1j<hj$ubeh}(h]h ]h"]h$]h&]uh1jhj?hM{hjubj)}(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')}(hjch]h(struct dmem_cgroup_pool_state **ret_pool}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1j&hjaubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM|hj]ubj=)}(hhh]j)}(h3On succesfull allocation, the pool that is charged.h]h3On succesfull allocation, the pool that is charged.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxhM|hjyubah}(h]h ]h"]h$]h&]uh1j<hj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhM|hjubj)}(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&]uh1j&hjubah}(h]h ]h"]h$]h&]uh1j hS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chM}hjubj=)}(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&]uh1jhjhM}hjubah}(h]h ]h"]h$]h&]uh1j<hjubeh}(h]h ]h"]h$]h&]uh1jhjhM}hjubeh}(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)}(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.chM~hjubj)}(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}(hj(hhhNhNubah}(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.chMhjubj)}(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 }(hjAhhhNhNubj)}(h**ret_limit_pool**h]hret_limit_pool}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubh 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 }(hjAhhhNhNubj)}(h"**dmem_cgroup_pool_state_put\(\)**h]hdmem_cgroup_pool_state_put()}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubh.}(hjAhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj)}(h **Return**h]j)}(hjvh]hReturn}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.chMhjubj)}(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.}(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&]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}(jhjhhhjjj6j;jjj{ j 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.