€•Œ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/core-api/cgroup”Œ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/core-api/cgroup”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/it_IT/core-api/cgroup”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/ja_JP/core-api/cgroup”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ#/translations/ko_KR/core-api/cgroup”Œ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/core-api/cgroup”Œ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/core-api/cgroup”Œ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ŒCgroup Kernel APIs”h]”hŒCgroup Kernel APIs”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ=/var/lib/git/docbuild/linux/Documentation/core-api/cgroup.rst”h´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ!Device Memory Cgroup API (dmemcg)”h]”hŒ!Device Memory Cgroup API (dmemcg)”…”�”}”(hhÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhËh²hh³hÊh´KubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œ-dmem_cgroup_state_evict_valuable (C function)”Œ"c.dmem_cgroup_state_evict_valuable”hNt”auh1hÜhhËh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒŸbool 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]”hŒdesc_signature_line”“”)�”}”(hŒžbool 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]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒbool”h]”hŒbool”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1hþhhúh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MVubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1jhhúh²hh³jh´MVubhŒ desc_name”“”)�”}”(hŒ dmem_cgroup_state_evict_valuable”h]”hŒ desc_sig_name”“”)�”}”(hŒ dmem_cgroup_state_evict_valuable”h]”hŒ dmem_cgroup_state_evict_valuable”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j'hj#ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”Œ xml:space”Œpreserve”uh1j!hhúh²hh³jh´MVubhŒdesc_parameterlist”“”)�”}”(hŒy(struct dmem_cgroup_pool_state *limit_pool, struct dmem_cgroup_pool_state *test_pool, bool ignore_low, bool *ret_hit_low)”h]”(hŒdesc_parameter”“”)�”}”(hŒ)struct dmem_cgroup_pool_state *limit_pool”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jNhjJubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjJubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjmubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”Œc”Œreftype”Œ identifier”Œ reftarget”jrŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jŒŒ ASTIdentifier”“”)�”}”j‡j+sbŒ"c.dmem_cgroup_state_evict_valuable”†”asbuh1hhjJubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjJubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j§hjJubj()�”}”(hŒ limit_pool”h]”hŒ limit_pool”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjJubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjDubjI)�”}”(hŒ(struct dmem_cgroup_pool_state *test_pool”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjÍubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÍubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjìubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”jñŒmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j•Œ"c.dmem_cgroup_state_evict_valuable”†”asbuh1hhjÍubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÍubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjÍubj()�”}”(hŒ test_pool”h]”hŒ test_pool”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjÍubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjDubjI)�”}”(hŒbool ignore_low”h]”(hÿ)�”}”(hjh]”hŒbool”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1hþhj=ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj=ubj()�”}”(hŒ ignore_low”h]”hŒ ignore_low”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj=ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjDubjI)�”}”(hŒbool *ret_hit_low”h]”(hÿ)�”}”(hjh]”hŒbool”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1hþhjqubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjqubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjqubj()�”}”(hŒ ret_hit_low”h]”hŒ ret_hit_low”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjqubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjDubeh}”(h]”h ]”h"]”h$]”h&]”j@jAuh1jBhhúh²hh³jh´MVubeh}”(h]”h ]”h"]”h$]”h&]”j@jAŒ add_permalink”ˆuh1høŒsphinx_line_type”Œ declarator”hhôh²hh³jh´MVubah}”(h]”hëah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1hòh³jh´MVhhïh²hubhŒ desc_content”“”)�”}”(hhh]”hŒ paragraph”“”)�”}”(hŒ'Check if we should evict from test_pool”h]”hŒ'Check if we should evict from test_pool”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MVhjÎh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÌhhïh²hh³jh´MVubeh}”(h]”h ]”(j…Œfunction”eh"]”h$]”h&]”Œdomain”j…Œobjtype”jëŒdesctype”jëŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1híh²hhhËh³Nh´NubhŒ 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** bool”h]”(jÒ)�”}”(hŒ**Parameters**”h]”hŒstrong”“”)�”}”(hjýh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjûubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MZhj÷ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒO``struct dmem_cgroup_pool_state *limit_pool`` The pool for which we hit limits ”h]”(hŒterm”“”)�”}”(hŒ-``struct dmem_cgroup_pool_state *limit_pool``”h]”hŒliteral”“”)�”}”(hj$h]”hŒ)struct dmem_cgroup_pool_state *limit_pool”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MWhjubhŒ definition”“”)�”}”(hhh]”jÒ)�”}”(hŒ The pool for which we hit limits”h]”hŒ The pool for which we hit limits”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³j;h´MWhj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j;h´MWhjubj)�”}”(hŒH``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”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MXhj[ubj=)�”}”(hhh]”jÒ)�”}”(hŒThe pool for which to test”h]”hŒThe pool for which to test”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³jvh´MXhjwubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jvh´MXhjubj)�”}”(hŒ?``bool ignore_low`` Whether we have to respect low watermarks. ”h]”(j!)�”}”(hŒ``bool ignore_low``”h]”j')�”}”(hjšh]”hŒbool ignore_low”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MYhj”ubj=)�”}”(hhh]”jÒ)�”}”(hŒ*Whether we have to respect low watermarks.”h]”hŒ*Whether we have to respect low watermarks.”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³j¯h´MYhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j¯h´MYhjubj)�”}”(hŒS``bool *ret_hit_low`` Pointer to whether it makes sense to consider low watermark. ”h]”(j!)�”}”(hŒ``bool *ret_hit_low``”h]”j')�”}”(hjÓh]”hŒbool *ret_hit_low”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MZhjÍubj=)�”}”(hhh]”jÒ)�”}”(hŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj$ubhŒ is false, ”…”�”}”(hj$h²hh³Nh´Nubj)�”}”(hŒ**ret_hit_low**”h]”hŒ ret_hit_low”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj$ubhŒB may be set to true to indicate this function can be retried with ”…”�”}”(hj$h²hh³Nh´Nubj)�”}”(hŒ**ignore_low**”h]”hŒ ignore_low”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj$ubhŒ set to true.”…”�”}”(hj$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M[hj÷ubjÒ)�”}”(hŒ **Return**”h]”j)�”}”(hj}h]”hŒReturn”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M`hj÷ubjÒ)�”}”(hŒbool”h]”hŒbool”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mahj÷ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jõhhËh²hh³Nh´NubhÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(héŒ*dmem_cgroup_unregister_region (C function)”Œc.dmem_cgroup_unregister_region”hNt”auh1hÜhhËh²hh³Nh´Nubhî)�”}”(hhh]”(hó)�”}”(hŒFvoid dmem_cgroup_unregister_region (struct dmem_cgroup_region *region)”h]”hù)�”}”(hŒEvoid dmem_cgroup_unregister_region(struct dmem_cgroup_region *region)”h]”(hÿ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1hþhj¾h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj¾h²hh³jÐh´Mubj")�”}”(hŒdmem_cgroup_unregister_region”h]”j()�”}”(hŒdmem_cgroup_unregister_region”h]”hŒdmem_cgroup_unregister_region”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjßubah}”(h]”h ]”(j;j<eh"]”h$]”h&]”j@jAuh1j!hj¾h²hh³jÐh´MubjC)�”}”(hŒ#(struct dmem_cgroup_region *region)”h]”jI)�”}”(hŒ!struct dmem_cgroup_region *region”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjûubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjûubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_region”h]”hŒdmem_cgroup_region”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”jŒmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j”)�”}”j‡jåsbŒc.dmem_cgroup_unregister_region”†”asbuh1hhjûubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjûubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjûubj()�”}”(hŒregion”h]”hŒregion”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjûubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhj÷ubah}”(h]”h ]”h"]”h$]”h&]”j@jAuh1jBhj¾h²hh³jÐh´Mubeh}”(h]”h ]”h"]”h$]”h&]”j@jAj¾ˆuh1høj¿jÀhjºh²hh³jÐh´Mubah}”(h]”jµah ]”(jÄjÅeh"]”h$]”h&]”jɈjÊ)jËhuh1hòh³jÐh´Mhj·h²hubjÍ)�”}”(hhh]”jÒ)�”}”(hŒ*Unregister a previously registered region.”h]”hŒ*Unregister a previously registered region.”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÌhj·h²hh³jÐh´Mubeh}”(h]”h ]”(j…Œfunction”eh"]”h$]”h&]”jïj…jðjšjñjšjò‰jó‰jô‰uh1híh²hhhËh³Nh´Nubjö)�”}”(hXG**Parameters** ``struct dmem_cgroup_region *region`` The region to unregister. **Description** This function undoes dmem_cgroup_register_region. It drains any in-flight reclaim callbacks before returning, so the caller may safely free the resources pointed to by the **reclaim_priv** that was passed at registration time.”h]”(jÒ)�”}”(hŒ**Parameters**”h]”j)�”}”(hj¤h]”hŒ Parameters”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mhjžubj)�”}”(hhh]”j)�”}”(hŒ@``struct dmem_cgroup_region *region`` The region to unregister. ”h]”(j!)�”}”(hŒ%``struct dmem_cgroup_region *region``”h]”j')�”}”(hjÃh]”hŒ!struct dmem_cgroup_region *region”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mhj½ubj=)�”}”(hhh]”jÒ)�”}”(hŒThe region to unregister.”h]”hŒThe region to unregister.”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³jØh´MhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jØh´Mhjºubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjžubjÒ)�”}”(hŒ**Description**”h]”j)�”}”(hjþh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MhjžubjÒ)�”}”(hŒãThis function undoes dmem_cgroup_register_region. It drains any in-flight reclaim callbacks before returning, so the caller may safely free the resources pointed to by the **reclaim_priv** that was passed at registration time.”h]”(hŒ­This function undoes dmem_cgroup_register_region. It drains any in-flight reclaim callbacks before returning, so the caller may safely free the resources pointed to by the ”…”�”}”(hjh²hh³Nh´Nubj)�”}”(hŒ**reclaim_priv**”h]”hŒ reclaim_priv”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjubhŒ& that was passed at registration time.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mhjžubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jõhhËh²hh³Nh´NubhÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(héŒ(dmem_cgroup_register_region (C function)”Œc.dmem_cgroup_register_region”hNt”auh1hÜhhËh²hh³Nh´Nubhî)�”}”(hhh]”(hó)�”}”(hŒsstruct dmem_cgroup_region * dmem_cgroup_register_region (const struct dmem_cgroup_init *init, const char *fmt, ...)”h]”hù)�”}”(hŒqstruct dmem_cgroup_region *dmem_cgroup_register_region(const struct dmem_cgroup_init *init, const char *fmt, ...)”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjQh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M-ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjQh²hh³jbh´M-ubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_region”h]”hŒdmem_cgroup_region”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjqubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”jvŒmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j”)�”}”j‡Œdmem_cgroup_register_region”sbŒc.dmem_cgroup_register_region”†”asbuh1hhjQh²hh³jbh´M-ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjQh²hh³jbh´M-ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjQh²hh³jbh´M-ubj")�”}”(hŒdmem_cgroup_register_region”h]”j()�”}”(hj’h]”hŒdmem_cgroup_register_region”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj°ubah}”(h]”h ]”(j;j<eh"]”h$]”h&]”j@jAuh1j!hjQh²hh³jbh´M-ubjC)�”}”(hŒ;(const struct dmem_cgroup_init *init, const char *fmt, ...)”h]”(jI)�”}”(hŒ#const struct dmem_cgroup_init *init”h]”(jO)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjËubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjËubjO)�”}”(hjRh]”hŒstruct”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjËubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjËubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_init”h]”hŒdmem_cgroup_init”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”j Œmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j�Œc.dmem_cgroup_register_region”†”asbuh1hhjËubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjËubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjËubj()�”}”(hŒinit”h]”hŒinit”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjËubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjÇubjI)�”}”(hŒconst char *fmt”h]”(jO)�”}”(hjÑh]”hŒconst”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjWubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjWubhÿ)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1hþhjWubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjWubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjWubj()�”}”(hŒfmt”h]”hŒfmt”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjWubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjÇubjI)�”}”(hŒ...”h]”j¨)�”}”(hŒ...”h]”hŒ...”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj´ubah}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjÇubeh}”(h]”h ]”h"]”h$]”h&]”j@jAuh1jBhjQh²hh³jbh´M-ubeh}”(h]”h ]”h"]”h$]”h&]”j@jAj¾ˆuh1høj¿jÀhjMh²hh³jbh´M-ubah}”(h]”jHah ]”(jÄjÅeh"]”h$]”h&]”jɈjÊ)jËhuh1hòh³jbh´M-hjJh²hubjÍ)�”}”(hhh]”jÒ)�”}”(hŒ"Register a regions for dev cgroup.”h]”hŒ"Register a regions for dev cgroup.”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M-hjßh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÌhjJh²hh³jbh´M-ubeh}”(h]”h ]”(j…Œfunction”eh"]”h$]”h&]”jïj…jðjújñjújò‰jó‰jô‰uh1híh²hhhËh³Nh´Nubjö)�”}”(hX’**Parameters** ``const struct dmem_cgroup_init *init`` Initialization parameters for the region. ``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”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M1hjþubj)�”}”(hhh]”(j)�”}”(hŒR``const struct dmem_cgroup_init *init`` Initialization parameters for the region. ”h]”(j!)�”}”(hŒ'``const struct dmem_cgroup_init *init``”h]”j')�”}”(hj#h]”hŒ#const struct dmem_cgroup_init *init”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M.hjubj=)�”}”(hhh]”jÒ)�”}”(hŒ)Initialization parameters for the region.”h]”hŒ)Initialization parameters for the region.”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³j8h´M.hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j8h´M.hjubj)�”}”(hŒ2``const char *fmt`` Region parameters to register ”h]”(j!)�”}”(hŒ``const char *fmt``”h]”j')�”}”(hj\h]”hŒconst char *fmt”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M/hjVubj=)�”}”(hhh]”jÒ)�”}”(hŒRegion parameters to register”h]”hŒRegion parameters to register”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³jqh´M/hjrubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hjVubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jqh´M/hjubj)�”}”(hŒ``...`` variable arguments ”h]”(j!)�”}”(hŒ``...``”h]”j')�”}”(hj•h]”hŒ...”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Khj�ubj=)�”}”(hhh]”jÒ)�”}”(hŒvariable arguments”h]”hŒvariable arguments”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³jªh´Khj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jªh´Khjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjþubjÒ)�”}”(hŒ**Description**”h]”j)�”}”(hjÐh]”hŒ Description”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´KhjþubjÒ)�”}”(hŒ‹This function registers a node in the dmem cgroup with the name given. After calling this function, the region can be used for allocations.”h]”hŒ‹This function registers a node in the dmem cgroup with the name given. After calling this function, the region can be used for allocations.”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M0hjþubjÒ)�”}”(hŒ **Return**”h]”j)�”}”(hj÷h]”hŒReturn”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M4hjþubjÒ)�”}”(hŒ0NULL or a struct on success, PTR_ERR on failure.”h]”hŒ0NULL or a struct on success, PTR_ERR on failure.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M5hjþubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jõhhËh²hh³Nh´NubhÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(héŒ'dmem_cgroup_pool_state_put (C function)”Œc.dmem_cgroup_pool_state_put”hNt”auh1hÜhhËh²hh³Nh´Nubhî)�”}”(hhh]”(hó)�”}”(hŒEvoid dmem_cgroup_pool_state_put (struct dmem_cgroup_pool_state *pool)”h]”hù)�”}”(hŒDvoid dmem_cgroup_pool_state_put(struct dmem_cgroup_pool_state *pool)”h]”(hÿ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1hþhj8 h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mjubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj8 h²hh³jJ h´Mjubj")�”}”(hŒdmem_cgroup_pool_state_put”h]”j()�”}”(hŒdmem_cgroup_pool_state_put”h]”hŒdmem_cgroup_pool_state_put”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjY ubah}”(h]”h ]”(j;j<eh"]”h$]”h&]”j@jAuh1j!hj8 h²hh³jJ h´MjubjC)�”}”(hŒ%(struct dmem_cgroup_pool_state *pool)”h]”jI)�”}”(hŒ#struct dmem_cgroup_pool_state *pool”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjy h²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhju ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj† h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhju ubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hj— h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj” ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”j™ Œmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j”)�”}”j‡j_ sbŒc.dmem_cgroup_pool_state_put”†”asbuh1hhju ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj· h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhju ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjÅ h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hju ubj()�”}”(hŒpool”h]”hŒpool”…”�”}”(hjÒ h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hju ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjq ubah}”(h]”h ]”h"]”h$]”h&]”j@jAuh1jBhj8 h²hh³jJ h´Mjubeh}”(h]”h ]”h"]”h$]”h&]”j@jAj¾ˆuh1høj¿jÀhj4 h²hh³jJ h´Mjubah}”(h]”j/ ah ]”(jÄjÅeh"]”h$]”h&]”jɈjÊ)jËhuh1hòh³jJ h´Mjhj1 h²hubjÍ)�”}”(hhh]”jÒ)�”}”(hŒ,Drop a reference to a dmem_cgroup_pool_state”h]”hŒ,Drop a reference to a dmem_cgroup_pool_state”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mjhjù h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÌhj1 h²hh³jJ h´Mjubeh}”(h]”h ]”(j…Œfunction”eh"]”h$]”h&]”jïj…jðj jñj jò‰jó‰jô‰uh1híh²hhhËh³Nh´Nubjö)�”}”(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 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mnhj ubj)�”}”(hhh]”j)�”}”(hŒI``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? h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj; ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mkhj7 ubj=)�”}”(hhh]”jÒ)�”}”(hŒ :c:type:`dmem_cgroup_pool_state`”h]”h)�”}”(hjX h]”j')�”}”(hjX h]”hŒdmem_cgroup_pool_state”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”(Œxref”j…Œc-type”eh"]”h$]”h&]”uh1j&hjZ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œcore-api/cgroup”Œ refdomain”j…Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j‹jŽ)�”}”j‘]”sbŒ reftarget”Œdmem_cgroup_pool_state”uh1hh³jR h´MkhjV ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³jR h´MkhjS ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj7 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jR h´Mkhj4 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubjÒ)�”}”(hŒ**Description**”h]”j)�”}”(hj˜ h]”hŒ Description”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj– ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mmhj ubjÒ)�”}”(hŒUCalled to drop a reference to the limiting pool returned by dmem_cgroup_try_charge().”h]”hŒUCalled to drop a reference to the limiting pool returned by dmem_cgroup_try_charge().”…”�”}”(hj® h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mlhj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jõhhËh²hh³Nh´NubhÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(héŒ!dmem_cgroup_uncharge (C function)”Œc.dmem_cgroup_uncharge”hNt”auh1hÜhhËh²hh³Nh´Nubhî)�”}”(hhh]”(hó)�”}”(hŒIvoid dmem_cgroup_uncharge (struct dmem_cgroup_pool_state *pool, u64 size)”h]”hù)�”}”(hŒHvoid dmem_cgroup_uncharge(struct dmem_cgroup_pool_state *pool, u64 size)”h]”(hÿ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÝ h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1hþhjÙ h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¤ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjì h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÙ h²hh³jë h´M¤ubj")�”}”(hŒdmem_cgroup_uncharge”h]”j()�”}”(hŒdmem_cgroup_uncharge”h]”hŒdmem_cgroup_uncharge”…”�”}”(hjþ h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjú ubah}”(h]”h ]”(j;j<eh"]”h$]”h&]”j@jAuh1j!hjÙ h²hh³jë h´M¤ubjC)�”}”(hŒ/(struct dmem_cgroup_pool_state *pool, u64 size)”h]”(jI)�”}”(hŒ#struct dmem_cgroup_pool_state *pool”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhj ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj ubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hj8 h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj5 ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”j: Œmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j”)�”}”j‡j sbŒc.dmem_cgroup_uncharge”†”asbuh1hhj ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjX h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjf h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj ubj()�”}”(hŒpool”h]”hŒpool”…”�”}”(hjs h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhj ubjI)�”}”(hŒu64 size”h]”(h)�”}”(hhh]”j()�”}”(hŒu64”h]”hŒu64”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjŒ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”j‘ Œmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”jT Œc.dmem_cgroup_uncharge”†”asbuh1hhjˆ ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjˆ ubj()�”}”(hŒsize”h]”hŒsize”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjˆ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhj ubeh}”(h]”h ]”h"]”h$]”h&]”j@jAuh1jBhjÙ h²hh³jë h´M¤ubeh}”(h]”h ]”h"]”h$]”h&]”j@jAj¾ˆuh1høj¿jÀhjÕ h²hh³jë h´M¤ubah}”(h]”jÐ ah ]”(jÄjÅeh"]”h$]”h&]”jɈjÊ)jËhuh1hòh³jë h´M¤hjÒ h²hubjÍ)�”}”(hhh]”jÒ)�”}”(hŒUncharge a pool.”h]”hŒUncharge a pool.”…”�”}”(hjå h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¤hjâ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÌhjÒ h²hh³jë h´M¤ubeh}”(h]”h ]”(j…Œfunction”eh"]”h$]”h&]”jïj…jðjý jñjý jò‰jó‰jô‰uh1híh²hhhËh³Nh´Nubjö)�”}”(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 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¨hj 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( h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj$ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¥hj ubj=)�”}”(hhh]”jÒ)�”}”(hŒPool to uncharge.”h]”hŒPool to uncharge.”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³j; h´M¥hj< ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j; h´M¥hj ubj)�”}”(hŒ``u64 size`` Size to uncharge. ”h]”(j!)�”}”(hŒ ``u64 size``”h]”j')�”}”(hj_ h]”hŒu64 size”…”�”}”(hja h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj] ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¦hjY ubj=)�”}”(hhh]”jÒ)�”}”(hŒSize to uncharge.”h]”hŒSize to uncharge.”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³jt h´M¦hju ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hjY ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jt h´M¦hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubjÒ)�”}”(hŒ**Description**”h]”j)�”}”(hjš h]”hŒ Description”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj˜ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¨hj ubjÒ)�”}”(hŒ�Undoes the effects of dmem_cgroup_try_charge. Must be called with the returned pool as argument, and same **index** and **size**.”h]”(hŒjUndoes the effects of dmem_cgroup_try_charge. Must be called with the returned pool as argument, and same ”…”�”}”(hj° h²hh³Nh´Nubj)�”}”(hŒ **index**”h]”hŒindex”…”�”}”(hj¸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj° ubhŒ and ”…”�”}”(hj° h²hh³Nh´Nubj)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hjÊ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj° ubhŒ.”…”�”}”(hj° h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M§hj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jõhhËh²hh³Nh´NubhÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(héŒ#dmem_cgroup_try_charge (C function)”Œc.dmem_cgroup_try_charge”hNt”auh1hÜhhËh²hh³Nh´Nubhî)�”}”(hhh]”(hó)�”}”(hŒ¢int 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ù)�”}”(hŒ¡int 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ÿ)�”}”(hŒint”h]”hŒint”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1hþhjÿ h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¸ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjÿ h²hh³j h´M¸ubj")�”}”(hŒdmem_cgroup_try_charge”h]”j()�”}”(hŒdmem_cgroup_try_charge”h]”hŒdmem_cgroup_try_charge”…”�”}”(hj$ h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj ubah}”(h]”h ]”(j;j<eh"]”h$]”h&]”j@jAuh1j!hjÿ h²hh³j h´M¸ubjC)�”}”(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 *region”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hj@ h²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhj< ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjM h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj< ubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_region”h]”hŒdmem_cgroup_region”…”�”}”(hj^ h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj[ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”j` Œmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j”)�”}”j‡j& sbŒc.dmem_cgroup_try_charge”†”asbuh1hhj< ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj~ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj< ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj< ubj()�”}”(hŒregion”h]”hŒregion”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj< ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhj8 ubjI)�”}”(hŒu64 size”h]”(h)�”}”(hhh]”j()�”}”(hŒu64”h]”hŒu64”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj² ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”j· Œmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”jz Œc.dmem_cgroup_try_charge”†”asbuh1hhj® ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj® ubj()�”}”(hŒsize”h]”hŒsize”…”�”}”(hjá h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj® ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhj8 ubjI)�”}”(hŒ(struct dmem_cgroup_pool_state **ret_pool”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjú h²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjö ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjö ubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”jŒmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”jz Œc.dmem_cgroup_try_charge”†”asbuh1hhjö ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjö ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjö ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjö ubj()�”}”(hŒret_pool”h]”hŒret_pool”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjö ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhj8 ubjI)�”}”(hŒ.struct dmem_cgroup_pool_state **ret_limit_pool”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjsubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjsubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj’ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”j—Œmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”jz Œc.dmem_cgroup_try_charge”†”asbuh1hhjsubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjsubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjsubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjsubj()�”}”(hŒret_limit_pool”h]”hŒret_limit_pool”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjsubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhj8 ubeh}”(h]”h ]”h"]”h$]”h&]”j@jAuh1jBhjÿ h²hh³j h´M¸ubeh}”(h]”h ]”h"]”h$]”h&]”j@jAj¾ˆuh1høj¿jÀhjû h²hh³j h´M¸ubah}”(h]”jö ah ]”(jÄjÅeh"]”h$]”h&]”jɈjÊ)jËhuh1hòh³j h´M¸hjø h²hubjÍ)�”}”(hhh]”jÒ)�”}”(hŒ*Try charging a new allocation to a region.”h]”hŒ*Try charging a new allocation to a region.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¸hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÌhjø h²hh³j h´M¸ubeh}”(h]”h ]”(j…Œfunction”eh"]”h$]”h&]”jïj…jðjjñjjò‰jó‰jô‰uh1híh²hhhËh³Nh´Nubjö)�”}”(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)�”}”(hj'h]”hŒ Parameters”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¼hj!ubj)�”}”(hhh]”(j)�”}”(hŒ<``struct dmem_cgroup_region *region`` dmem region to charge ”h]”(j!)�”}”(hŒ%``struct dmem_cgroup_region *region``”h]”j')�”}”(hjFh]”hŒ!struct dmem_cgroup_region *region”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjDubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¹hj@ubj=)�”}”(hhh]”jÒ)�”}”(hŒdmem region to charge”h]”hŒdmem region to charge”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³j[h´M¹hj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j[h´M¹hj=ubj)�”}”(hŒ(``u64 size`` Size (in bytes) to charge. ”h]”(j!)�”}”(hŒ ``u64 size``”h]”j')�”}”(hjh]”hŒu64 size”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mºhjyubj=)�”}”(hhh]”jÒ)�”}”(hŒSize (in bytes) to charge.”h]”hŒSize (in bytes) to charge.”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³j”h´Mºhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hjyubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j”h´Mºhj=ubj)�”}”(hŒa``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')�”}”(hj¸h]”hŒ(struct dmem_cgroup_pool_state **ret_pool”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M»hj²ubj=)�”}”(hhh]”jÒ)�”}”(hŒ3On succesfull allocation, the pool that is charged.”h]”hŒ3On succesfull allocation, the pool that is charged.”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³jÍh´M»hjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jÍh´M»hj=ubj)�”}”(hŒ^``struct dmem_cgroup_pool_state **ret_limit_pool`` On a failed allocation, the limiting pool. ”h]”(j!)�”}”(hŒ2``struct dmem_cgroup_pool_state **ret_limit_pool``”h]”j')�”}”(hjñh]”hŒ.struct dmem_cgroup_pool_state **ret_limit_pool”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjïubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¼hjëubj=)�”}”(hhh]”jÒ)�”}”(hŒ*On a failed allocation, the limiting pool.”h]”hŒ*On a failed allocation, the limiting pool.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³jh´M¼hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hjëubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jh´M¼hj=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj!ubjÒ)�”}”(hŒ**Description**”h]”j)�”}”(hj,h]”hŒ Description”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¾hj!ubjÒ)�”}”(hŒIThis function charges the **region** region for a size of **size** bytes.”h]”(hŒThis function charges the ”…”�”}”(hjBh²hh³Nh´Nubj)�”}”(hŒ **region**”h]”hŒregion”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjBubhŒ region for a size of ”…”�”}”(hjBh²hh³Nh´Nubj)�”}”(hŒ**size**”h]”hŒsize”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjBubhŒ bytes.”…”�”}”(hjBh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M½hj!ubjÒ)�”}”(hŒzIf the function succeeds, **ret_pool** is set, which must be passed to dmem_cgroup_uncharge() when undoing the allocation.”h]”(hŒIf the function succeeds, ”…”�”}”(hjuh²hh³Nh´Nubj)�”}”(hŒ **ret_pool**”h]”hŒret_pool”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjuubhŒT is set, which must be passed to dmem_cgroup_uncharge() when undoing the allocation.”…”�”}”(hjuh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M¿hj!ubjÒ)�”}”(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–h²hh³Nh´Nubj)�”}”(hŒ**ret_limit_pool**”h]”hŒret_limit_pool”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj–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–h²hh³Nh´Nubj)�”}”(hŒ"**dmem_cgroup_pool_state_put\(\)**”h]”hŒdmem_cgroup_pool_state_put()”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj–ubhŒ.”…”�”}”(hj–h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MÂhj!ubjÒ)�”}”(hŒ **Return**”h]”j)�”}”(hjËh]”hŒReturn”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MÇhj!ubjÒ)�”}”(hŒI0 on success, -EAGAIN on hitting a limit, or a negative errno on failure.”h]”hŒI0 on success, -EAGAIN on hitting a limit, or a negative errno on failure.”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MÈhj!ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jõhhËh²hh³Nh´NubhÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(héŒ"dmem_cgroup_below_min (C function)”Œc.dmem_cgroup_below_min”hNt”auh1hÜhhËh²hh³Nh´Nubhî)�”}”(hhh]”(hó)�”}”(hŒebool dmem_cgroup_below_min (struct dmem_cgroup_pool_state *root, struct dmem_cgroup_pool_state *test)”h]”hù)�”}”(hŒdbool dmem_cgroup_below_min(struct dmem_cgroup_pool_state *root, struct dmem_cgroup_pool_state *test)”h]”(hÿ)�”}”(hjh]”hŒbool”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1hþhj h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mùubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj h²hh³jh´Mùubj")�”}”(hŒdmem_cgroup_below_min”h]”j()�”}”(hŒdmem_cgroup_below_min”h]”hŒdmem_cgroup_below_min”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj,ubah}”(h]”h ]”(j;j<eh"]”h$]”h&]”j@jAuh1j!hj h²hh³jh´MùubjC)�”}”(hŒJ(struct dmem_cgroup_pool_state *root, struct dmem_cgroup_pool_state *test)”h]”(jI)�”}”(hŒ#struct dmem_cgroup_pool_state *root”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjHubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjHubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjgubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”jlŒmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j”)�”}”j‡j2sbŒc.dmem_cgroup_below_min”†”asbuh1hhjHubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjHubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjHubj()�”}”(hŒroot”h]”hŒroot”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjHubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjDubjI)�”}”(hŒ#struct dmem_cgroup_pool_state *test”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjºubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjºubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjÙubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”jÞŒmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j†Œc.dmem_cgroup_below_min”†”asbuh1hhjºubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjºubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjºubj()�”}”(hŒtest”h]”hŒtest”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjºubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjDubeh}”(h]”h ]”h"]”h$]”h&]”j@jAuh1jBhj h²hh³jh´Mùubeh}”(h]”h ]”h"]”h$]”h&]”j@jAj¾ˆuh1høj¿jÀhjh²hh³jh´Mùubah}”(h]”jah ]”(jÄjÅeh"]”h$]”h&]”jɈjÊ)jËhuh1hòh³jh´Mùhjh²hubjÍ)�”}”(hhh]”jÒ)�”}”(hŒ0Tests whether current usage is within min limit.”h]”hŒ0Tests whether current usage is within min limit.”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mùhj<h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÌhjh²hh³jh´Mùubeh}”(h]”h ]”(j…Œfunction”eh"]”h$]”h&]”jïj…jðjWjñjWjò‰jó‰jô‰uh1híh²hhhËh³Nh´Nubjö)�”}”(hX<**Parameters** ``struct dmem_cgroup_pool_state *root`` Root of the subtree to calculate protection for, or NULL to calculate global protection. ``struct dmem_cgroup_pool_state *test`` The pool to test the usage/min limit of. **Return** true if usage is below min and the cgroup is protected, false otherwise.”h]”(jÒ)�”}”(hŒ**Parameters**”h]”j)�”}”(hjah]”hŒ Parameters”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mýhj[ubj)�”}”(hhh]”(j)�”}”(hŒ�``struct dmem_cgroup_pool_state *root`` Root of the subtree to calculate protection for, or NULL to calculate global protection. ”h]”(j!)�”}”(hŒ'``struct dmem_cgroup_pool_state *root``”h]”j')�”}”(hj€h]”hŒ#struct dmem_cgroup_pool_state *root”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mûhjzubj=)�”}”(hhh]”jÒ)�”}”(hŒXRoot of the subtree to calculate protection for, or NULL to calculate global protection.”h]”hŒXRoot of the subtree to calculate protection for, or NULL to calculate global protection.”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³j•h´Mûhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hjzubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j•h´Mûhjwubj)�”}”(hŒQ``struct dmem_cgroup_pool_state *test`` The pool to test the usage/min limit of. ”h]”(j!)�”}”(hŒ'``struct dmem_cgroup_pool_state *test``”h]”j')�”}”(hj¹h]”hŒ#struct dmem_cgroup_pool_state *test”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mühj³ubj=)�”}”(hhh]”jÒ)�”}”(hŒ(The pool to test the usage/min limit of.”h]”hŒ(The pool to test the usage/min limit of.”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³jÎh´MühjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³jÎh´Mühjwubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj[ubjÒ)�”}”(hŒ **Return**”h]”j)�”}”(hjôh]”hŒReturn”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjòubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mþhj[ubjÒ)�”}”(hŒHtrue if usage is below min and the cgroup is protected, false otherwise.”h]”hŒHtrue if usage is below min and the cgroup is protected, false otherwise.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mþhj[ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jõhhËh²hh³Nh´NubhÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(héŒ"dmem_cgroup_below_low (C function)”Œc.dmem_cgroup_below_low”hNt”auh1hÜhhËh²hh³Nh´Nubhî)�”}”(hhh]”(hó)�”}”(hŒebool dmem_cgroup_below_low (struct dmem_cgroup_pool_state *root, struct dmem_cgroup_pool_state *test)”h]”hù)�”}”(hŒdbool dmem_cgroup_below_low(struct dmem_cgroup_pool_state *root, struct dmem_cgroup_pool_state *test)”h]”(hÿ)�”}”(hjh]”hŒbool”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”j ah"]”h$]”h&]”uh1hþhj5h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj5h²hh³jFh´Mubj")�”}”(hŒdmem_cgroup_below_low”h]”j()�”}”(hŒdmem_cgroup_below_low”h]”hŒdmem_cgroup_below_low”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjUubah}”(h]”h ]”(j;j<eh"]”h$]”h&]”j@jAuh1j!hj5h²hh³jFh´MubjC)�”}”(hŒJ(struct dmem_cgroup_pool_state *root, struct dmem_cgroup_pool_state *test)”h]”(jI)�”}”(hŒ#struct dmem_cgroup_pool_state *root”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjqubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjqubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”j•Œmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j”)�”}”j‡j[sbŒc.dmem_cgroup_below_low”†”asbuh1hhjqubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjqubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjqubj()�”}”(hŒroot”h]”hŒroot”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjqubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjmubjI)�”}”(hŒ#struct dmem_cgroup_pool_state *test”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjãubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjãubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”jŒmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j¯Œc.dmem_cgroup_below_low”†”asbuh1hhjãubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjãubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjãubj()�”}”(hŒtest”h]”hŒtest”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjãubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjmubeh}”(h]”h ]”h"]”h$]”h&]”j@jAuh1jBhj5h²hh³jFh´Mubeh}”(h]”h ]”h"]”h$]”h&]”j@jAj¾ˆuh1høj¿jÀhj1h²hh³jFh´Mubah}”(h]”j,ah ]”(jÄjÅeh"]”h$]”h&]”jɈjÊ)jËhuh1hòh³jFh´Mhj.h²hubjÍ)�”}”(hhh]”jÒ)�”}”(hŒ0Tests whether current usage is within low limit.”h]”hŒ0Tests whether current usage is within low limit.”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mhjeh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÌhj.h²hh³jFh´Mubeh}”(h]”h ]”(j…Œfunction”eh"]”h$]”h&]”jïj…jðj€jñj€jò‰jó‰jô‰uh1híh²hhhËh³Nh´Nubjö)�”}”(hX<**Parameters** ``struct dmem_cgroup_pool_state *root`` Root of the subtree to calculate protection for, or NULL to calculate global protection. ``struct dmem_cgroup_pool_state *test`` The pool to test the usage/low limit of. **Return** true if usage is below low and the cgroup is protected, false otherwise.”h]”(jÒ)�”}”(hŒ**Parameters**”h]”j)�”}”(hjŠh]”hŒ Parameters”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mhj„ubj)�”}”(hhh]”(j)�”}”(hŒ�``struct dmem_cgroup_pool_state *root`` Root of the subtree to calculate protection for, or NULL to calculate global protection. ”h]”(j!)�”}”(hŒ'``struct dmem_cgroup_pool_state *root``”h]”j')�”}”(hj©h]”hŒ#struct dmem_cgroup_pool_state *root”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mhj£ubj=)�”}”(hhh]”jÒ)�”}”(hŒXRoot of the subtree to calculate protection for, or NULL to calculate global protection.”h]”hŒXRoot of the subtree to calculate protection for, or NULL to calculate global protection.”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³j¾h´Mhj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hj£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j¾h´Mhj ubj)�”}”(hŒQ``struct dmem_cgroup_pool_state *test`` The pool to test the usage/low limit of. ”h]”(j!)�”}”(hŒ'``struct dmem_cgroup_pool_state *test``”h]”j')�”}”(hjâh]”hŒ#struct dmem_cgroup_pool_state *test”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjàubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´MhjÜubj=)�”}”(hhh]”jÒ)�”}”(hŒ(The pool to test the usage/low limit of.”h]”hŒ(The pool to test the usage/low limit of.”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³j÷h´Mhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hjÜubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j÷h´Mhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj„ubjÒ)�”}”(hŒ **Return**”h]”j)�”}”(hjh]”hŒReturn”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mhj„ubjÒ)�”}”(hŒHtrue if usage is below low and the cgroup is protected, false otherwise.”h]”hŒHtrue if usage is below low and the cgroup is protected, false otherwise.”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´Mhj„ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jõhhËh²hh³Nh´NubhÝ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(héŒ,dmem_cgroup_get_common_ancestor (C function)”Œ!c.dmem_cgroup_get_common_ancestor”hNt”auh1hÜhhËh²hh³Nh´Nubhî)�”}”(hhh]”(hó)�”}”(hŒ„struct dmem_cgroup_pool_state * dmem_cgroup_get_common_ancestor (struct dmem_cgroup_pool_state *a, struct dmem_cgroup_pool_state *b)”h]”hù)�”}”(hŒ‚struct dmem_cgroup_pool_state *dmem_cgroup_get_common_ancestor(struct dmem_cgroup_pool_state *a, struct dmem_cgroup_pool_state *b)”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhj^h²hh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M7ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj^h²hh³joh´M7ubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”•¡%}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj~ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”jƒŒmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j”)�”}”j‡Œdmem_cgroup_get_common_ancestor”sbŒ!c.dmem_cgroup_get_common_ancestor”†”asbuh1hhj^h²hh³joh´M7ubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhj^h²hh³joh´M7ubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hj^h²hh³joh´M7ubj")�”}”(hŒdmem_cgroup_get_common_ancestor”h]”j()�”}”(hjŸh]”hŒdmem_cgroup_get_common_ancestor”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj½ubah}”(h]”h ]”(j;j<eh"]”h$]”h&]”j@jAuh1j!hj^h²hh³joh´M7ubjC)�”}”(hŒD(struct dmem_cgroup_pool_state *a, struct dmem_cgroup_pool_state *b)”h]”(jI)�”}”(hŒ struct dmem_cgroup_pool_state *a”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjØubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjØubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hj÷ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”jüŒmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j�Œ!c.dmem_cgroup_get_common_ancestor”†”asbuh1hhjØubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjØubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjØubj()�”}”(hŒa”h]”hŒa”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjØubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjÔubjI)�”}”(hŒ struct dmem_cgroup_pool_state *b”h]”(jO)�”}”(hjRh]”hŒstruct”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j[ah"]”h$]”h&]”uh1jNhjHubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjHubh)�”}”(hhh]”j()�”}”(hŒdmem_cgroup_pool_state”h]”hŒdmem_cgroup_pool_state”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjgubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j…Œreftype”j‡Œ reftarget”jlŒmodname”NŒ classname”Nj‹jŽ)�”}”j‘]”j�Œ!c.dmem_cgroup_get_common_ancestor”†”asbuh1hhjHubj)�”}”(hŒ ”h]”hŒ ”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1jhjHubj¨)�”}”(hj«h]”hŒ*”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”j´ah"]”h$]”h&]”uh1j§hjHubj()�”}”(hŒb”h]”hŒb”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j4ah"]”h$]”h&]”uh1j'hjHubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆj@jAuh1jHhjÔubeh}”(h]”h ]”h"]”h$]”h&]”j@jAuh1jBhj^h²hh³joh´M7ubeh}”(h]”h ]”h"]”h$]”h&]”j@jAj¾ˆuh1høj¿jÀhjZh²hh³joh´M7ubah}”(h]”jUah ]”(jÄjÅeh"]”h$]”h&]”jɈjÊ)jËhuh1hòh³joh´M7hjWh²hubjÍ)�”}”(hhh]”jÒ)�”}”(hŒ,Find the first common ancestor of two pools.”h]”hŒ,Find the first common ancestor of two pools.”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M7hjÊh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÌhjWh²hh³joh´M7ubeh}”(h]”h ]”(j…Œfunction”eh"]”h$]”h&]”jïj…jðjåjñjåjò‰jó‰jô‰uh1híh²hhhËh³Nh´Nubjö)�”}”(hX¶**Parameters** ``struct dmem_cgroup_pool_state *a`` First pool to find the common ancestor of. ``struct dmem_cgroup_pool_state *b`` First pool to find the common ancestor of. **Return** The first pool that is a parent of both **a** and **b**, or NULL if either **a** or **b** are NULL, or if such a pool does not exist. A reference to the returned pool is grabbed and must be released by the caller when it is done using the pool.”h]”(jÒ)�”}”(hŒ**Parameters**”h]”j)�”}”(hjïh]”hŒ Parameters”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M;hjéubj)�”}”(hhh]”(j)�”}”(hŒP``struct dmem_cgroup_pool_state *a`` First pool to find the common ancestor of. ”h]”(j!)�”}”(hŒ$``struct dmem_cgroup_pool_state *a``”h]”j')�”}”(hjh]”hŒ struct dmem_cgroup_pool_state *a”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M8hjubj=)�”}”(hhh]”jÒ)�”}”(hŒ*First pool to find the common ancestor of.”h]”hŒ*First pool to find the common ancestor of.”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³j#h´M8hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j#h´M8hjubj)�”}”(hŒP``struct dmem_cgroup_pool_state *b`` First pool to find the common ancestor of. ”h]”(j!)�”}”(hŒ$``struct dmem_cgroup_pool_state *b``”h]”j')�”}”(hjGh]”hŒ struct dmem_cgroup_pool_state *b”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjEubah}”(h]”h ]”h"]”h$]”h&]”uh1j h³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M9hjAubj=)�”}”(hhh]”jÒ)�”}”(hŒ*First pool to find the common ancestor of.”h]”hŒ*First pool to find the common ancestor of.”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³j\h´M9hj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j<hjAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³j\h´M9hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjéubjÒ)�”}”(hŒ **Return**”h]”j)�”}”(hj‚h]”hŒReturn”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M;hjéubjÒ)�”}”(hŒôThe first pool that is a parent of both **a** and **b**, or NULL if either **a** or **b** are NULL, or if such a pool does not exist. A reference to the returned pool is grabbed and must be released by the caller when it is done using the pool.”h]”(hŒ(The first pool that is a parent of both ”…”�”}”(hj˜h²hh³Nh´Nubj)�”}”(hŒ**a**”h]”hŒa”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj˜ubhŒ and ”…”�”}”(hj˜h²hh³Nh´Nubj)�”}”(hŒ**b**”h]”hŒb”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj˜ubhŒ, or NULL if either ”…”�”}”(hj˜h²hh³Nh´Nubj)�”}”(hŒ**a**”h]”hŒa”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj˜ubhŒ or ”…”�”}”(hj˜h²hh³Nh´Nubj)�”}”(hŒ**b**”h]”hŒb”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿhj˜ubhŒ› are NULL, or if such a pool does not exist. A reference to the returned pool is grabbed and must be released by the caller when it is done using the pool.”…”�”}”(hj˜h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑh³ŒS/var/lib/git/docbuild/linux/Documentation/core-api/cgroup:7: ./kernel/cgroup/dmem.c”h´M;hjéubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jõhhËh²hh³Nh´Nubeh}”(h]”Œdevice-memory-cgroup-api-dmemcg”ah ]”h"]”Œ!device memory cgroup api (dmemcg)”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubeh}”(h]”Œcgroup-kernel-apis”ah ]”h"]”Œcgroup kernel apis”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j)Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jjjûjøuŒ nametypes”}”(j‰jû‰uh}”(jh·jøhËhëhôjµjºjHjMj/ j4 jÐ jÕ jö jû jjj,j1jUjZuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.