€•FVŒ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/mm/slab”Œ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/mm/slab”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/it_IT/mm/slab”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/ja_JP/mm/slab”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ/translations/ko_KR/mm/slab”Œ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/mm/slab”Œ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/mm/slab”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³Œ5/var/lib/git/docbuild/linux/Documentation/mm/slab.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒSlab Allocation”h]”hŒSlab Allocation”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒFunctions and structures”h]”hŒFunctions and structures”…””}”(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”Œslab_folio (C macro)”Œ c.slab_folio”hNt”auh1hîhhÝh²hh³Nh´NubhŒdesc”“”)”}”(hhh]”(hŒdesc_signature”“”)”}”(hŒ slab_folio”h]”hŒdesc_signature_line”“”)”}”(hŒ slab_folio”h]”hŒ desc_name”“”)”}”(hŒ slab_folio”h]”hŒ desc_sig_name”“”)”}”(hjh]”hŒ slab_folio”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jhjubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jhj h²hh³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´Koubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1j Œsphinx_line_type”Œ declarator”hjh²hh³j.h´Koubah}”(h]”hýah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jh³j.h´Kohjh²hubhŒ desc_content”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jChjh²hh³j.h´Koubeh}”(h]”h ]”(Œc”Œmacro”eh"]”h$]”h&]”Œdomain”jQŒobjtype”jRŒdesctype”jRŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1hÿh²hhhÝh³Nh´NubhŒ paragraph”“”)”}”(hŒ``slab_folio (s)``”h]”hŒliteral”“”)”}”(hj`h]”hŒslab_folio (s)”…””}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´KqhhÝh²hubhŒ block_quote”“”)”}”(hŒThe folio allocated for a slab ”h]”j])”}”(hŒThe folio allocated for a slab”h]”hŒThe folio allocated for a slab”…””}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´Kohjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jxh³jŒh´KohhÝh²hubhŒ container”“”)”}”(hX¼**Parameters** ``s`` The slab. **Description** Slabs are allocated as folios that contain the individual objects and are using some fields in the first struct page of the folio - those fields are now accessed by struct slab. It is occasionally necessary to convert back to a folio in order to communicate with the rest of the mm. Please use this helper function instead of casting yourself, as the implementation may change in the future.”h]”(j])”}”(hŒ**Parameters**”h]”hŒstrong”“”)”}”(hj›h]”hŒ Parameters”…””}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´Kshj•ubhŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hŒ``s`` The slab. ”h]”(hŒterm”“”)”}”(hŒ``s``”h]”jc)”}”(hjÂh]”hŒs”…””}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´KphjºubhŒ definition”“”)”}”(hhh]”j])”}”(hŒ The slab.”h]”hŒ The slab.”…””}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³j×h´KphjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jØhjºubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¸h³j×h´Kphjµubah}”(h]”h ]”h"]”h$]”h&]”uh1j³hj•ubj])”}”(hŒ**Description**”h]”jž)”}”(hjÿh]”hŒ Description”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjýubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´Krhj•ubj])”}”(hXˆSlabs are allocated as folios that contain the individual objects and are using some fields in the first struct page of the folio - those fields are now accessed by struct slab. It is occasionally necessary to convert back to a folio in order to communicate with the rest of the mm. Please use this helper function instead of casting yourself, as the implementation may change in the future.”h]”hXˆSlabs are allocated as folios that contain the individual objects and are using some fields in the first struct page of the folio - those fields are now accessed by struct slab. It is occasionally necessary to convert back to a folio in order to communicate with the rest of the mm. Please use this helper function instead of casting yourself, as the implementation may change in the future.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´Kqhj•ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j“hhÝh²hh³Nh´Nubhï)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hûŒpage_slab (C function)”Œ c.page_slab”hNt”auh1hîhhÝh²hh³Nh´Nubj)”}”(hhh]”(j)”}”(hŒ1struct slab * page_slab (const struct page *page)”h]”j )”}”(hŒ/struct slab *page_slab(const struct page *page)”h]”(hŒdesc_sig_keyword”“”)”}”(hŒstruct”h]”hŒstruct”…””}”(hjFh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jDhj@h²hh³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´K~ubhŒdesc_sig_space”“”)”}”(hŒ ”h]”hŒ ”…””}”(hjXh²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1jVhj@h²hh³jUh´K~ubh)”}”(hhh]”j)”}”(hŒslab”h]”hŒslab”…””}”(hjjh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjgubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jQŒreftype”Œ identifier”Œ reftarget”jlŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)”}”Œdata”]”j…Œ ASTIdentifier”“”)”}”j€Œ page_slab”sbŒ c.page_slab”†”asbuh1hhj@h²hh³jUh´K~ubjW)”}”(hŒ ”h]”hŒ ”…””}”(hj“h²hh³Nh´Nubah}”(h]”h ]”jcah"]”h$]”h&]”uh1jVhj@h²hh³jUh´K~ubhŒdesc_sig_punctuation”“”)”}”(hŒ*”h]”hŒ*”…””}”(hj£h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j¡hj@h²hh³jUh´K~ubj)”}”(hŒ page_slab”h]”j)”}”(hjh]”hŒ page_slab”…””}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj²ubah}”(h]”h ]”(j)j*eh"]”h$]”h&]”hÅhÆuh1jhj@h²hh³jUh´K~ubhŒdesc_parameterlist”“”)”}”(hŒ(const struct page *page)”h]”hŒdesc_parameter”“”)”}”(hŒconst struct page *page”h]”(jE)”}”(hŒconst”h]”hŒconst”…””}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”jQah"]”h$]”h&]”uh1jDhjÑubjW)”}”(hŒ ”h]”hŒ ”…””}”(hjãh²hh³Nh´Nubah}”(h]”h ]”jcah"]”h$]”h&]”uh1jVhjÑubjE)”}”(hjHh]”hŒstruct”…””}”(hjñh²hh³Nh´Nubah}”(h]”h ]”jQah"]”h$]”h&]”uh1jDhjÑubjW)”}”(hŒ ”h]”hŒ ”…””}”(hjþh²hh³Nh´Nubah}”(h]”h ]”jcah"]”h$]”h&]”uh1jVhjÑubh)”}”(hhh]”j)”}”(hŒpage”h]”hŒpage”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”jQŒreftype”j€Œ reftarget”jŒmodname”NŒ classname”Nj„j‡)”}”jŠ]”jŽŒ c.page_slab”†”asbuh1hhjÑubjW)”}”(hŒ ”h]”hŒ ”…””}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jcah"]”h$]”h&]”uh1jVhjÑubj¢)”}”(hj¥h]”hŒ*”…””}”(hj;h²hh³Nh´Nubah}”(h]”h ]”j®ah"]”h$]”h&]”uh1j¡hjÑubj)”}”(hŒpage”h]”hŒpage”…””}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhjÑubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jÏhjËubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÉhj@h²hh³jUh´K~ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj5ˆuh1j j6j7hj<h²hh³jUh´K~ubah}”(h]”j7ah ]”(j;j<eh"]”h$]”h&]”j@ˆjA)jBhuh1jh³jUh´K~hj9h²hubjD)”}”(hhh]”j])”}”(hŒ&Converts from struct page to its slab.”h]”hŒ&Converts from struct page to its slab.”…””}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´K~hjoh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jChj9h²hh³jUh´K~ubeh}”(h]”h ]”(jQŒfunction”eh"]”h$]”h&]”jVjQjWjŠjXjŠjY‰jZ‰j[‰uh1hÿh²hhhÝh³Nh´Nubj”)”}”(hŒë**Parameters** ``const struct page *page`` A page which may or may not belong to a slab. **Return** The slab which contains this page or NULL if the page does not belong to a slab. This includes pages returned from large kmalloc.”h]”(j])”}”(hŒ**Parameters**”h]”jž)”}”(hj”h]”hŒ Parameters”…””}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´K‚hjŽubj´)”}”(hhh]”j¹)”}”(hŒJ``const struct page *page`` A page which may or may not belong to a slab. ”h]”(j¿)”}”(hŒ``const struct page *page``”h]”jc)”}”(hj³h]”hŒconst struct page *page”…””}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´Khj­ubjÙ)”}”(hhh]”j])”}”(hŒ-A page which may or may not belong to a slab.”h]”hŒ-A page which may or may not belong to a slab.”…””}”(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&]”uh1j¸h³jÈh´Khjªubah}”(h]”h ]”h"]”h$]”h&]”uh1j³hjŽubj])”}”(hŒ **Return**”h]”jž)”}”(hjîh]”hŒReturn”…””}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjìubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´KhjŽubj])”}”(hŒ‚The slab which contains this page or NULL if the page does not belong to a slab. This includes pages returned from large kmalloc.”h]”hŒ‚The slab which contains this page or NULL if the page does not belong to a slab. This includes pages returned from large kmalloc.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´KhjŽubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j“hhÝh²hh³Nh´Nubhï)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hûŒslab_page (C macro)”Œ c.slab_page”hNt”auh1hîhhÝh²hh³Nh´Nubj)”}”(hhh]”(j)”}”(hŒ slab_page”h]”j )”}”(hŒ slab_page”h]”j)”}”(hŒ slab_page”h]”j)”}”(hj-h]”hŒ slab_page”…””}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj3ubah}”(h]”h ]”(j)j*eh"]”h$]”h&]”hÅhÆuh1jhj/h²hh³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´KŽubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj5ˆuh1j j6j7hj+h²hh³jJh´KŽubah}”(h]”j&ah ]”(j;j<eh"]”h$]”h&]”j@ˆjA)jBhuh1jh³jJh´KŽhj(h²hubjD)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jChj(h²hh³jJh´KŽubeh}”(h]”h ]”(jQŒmacro”eh"]”h$]”h&]”jVjQjWjcjXjcjY‰jZ‰j[‰uh1hÿh²hhhÝh³Nh´Nubj])”}”(hŒ``slab_page (s)``”h]”jc)”}”(hjih]”hŒ slab_page (s)”…””}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´KhhÝh²hubjy)”}”(hŒ+The first struct page allocated for a slab ”h]”j])”}”(hŒ*The first struct page allocated for a slab”h]”hŒ*The first struct page allocated for a slab”…””}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´KŽhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jxh³j‘h´KŽhhÝh²hubj”)”}”(hŒÓ**Parameters** ``s`` The slab. **Description** A convenience wrapper for converting slab to the first struct page of the underlying folio, to communicate with code not yet converted to folio or struct slab.”h]”(j])”}”(hŒ**Parameters**”h]”jž)”}”(hjžh]”hŒ Parameters”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjœubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´K’hj˜ubj´)”}”(hhh]”j¹)”}”(hŒ``s`` The slab. ”h]”(j¿)”}”(hŒ``s``”h]”jc)”}”(hj½h]”hŒs”…””}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´Khj·ubjÙ)”}”(hhh]”j])”}”(hŒ The slab.”h]”hŒ The slab.”…””}”(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&]”uh1j¸h³jÒh´Khj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1j³hj˜ubj])”}”(hŒ**Description**”h]”jž)”}”(hjøh]”hŒ Description”…””}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjöubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´K‘hj˜ubj])”}”(hŒŸA convenience wrapper for converting slab to the first struct page of the underlying folio, to communicate with code not yet converted to folio or struct slab.”h]”hŒŸA convenience wrapper for converting slab to the first struct page of the underlying folio, to communicate with code not yet converted to folio or struct slab.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:10: ./mm/slab.h”h´Khj˜ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j“hhÝh²hh³Nh´Nubhï)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(hûŒslab_flags (C enum)”Œ c.slab_flags”hNt”auh1hîhhÝh²hh³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:11: ./mm/slub.c”h´Nubj)”}”(hhh]”(j)”}”(hŒ slab_flags”h]”j )”}”(hŒenum slab_flags”h]”(jE)”}”(hŒenum”h]”hŒenum”…””}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jQah"]”h$]”h&]”uh1jDhj:h²hh³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:11: ./mm/slub.c”h´KubjW)”}”(hŒ ”h]”hŒ ”…””}”(hjMh²hh³Nh´Nubah}”(h]”h ]”jcah"]”h$]”h&]”uh1jVhj:h²hh³jLh´Kubj)”}”(hŒ slab_flags”h]”j)”}”(hj8h]”hŒ slab_flags”…””}”(hj_h²hh³Nh´Nubah}”(h]”h ]”j"ah"]”h$]”h&]”uh1jhj[ubah}”(h]”h ]”(j)j*eh"]”h$]”h&]”hÅhÆuh1jhj:h²hh³jLh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj5ˆuh1j j6j7hj6h²hh³jLh´Kubah}”(h]”j0ah ]”(j;j<eh"]”h$]”h&]”j@ˆjA)jBhuh1jh³jLh´Khj3h²hubjD)”}”(hhh]”j])”}”(hŒ!How the slab flags bits are used.”h]”hŒ!How the slab flags bits are used.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:11: ./mm/slub.c”h´K·hj~h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jChj3h²hh³jLh´Kubeh}”(h]”h ]”(jQŒenum”eh"]”h$]”h&]”jVjQjWj™jXj™jY‰jZ‰j[‰uh1hÿh²hhhÝh³j2h´Nubj”)”}”(hŒ¥**Constants** ``SL_locked`` Is locked with slab_lock() ``SL_partial`` On the per-node partial list ``SL_pfmemalloc`` Was allocated from PF_MEMALLOC reserves”h]”(j])”}”(hŒ **Constants**”h]”jž)”}”(hj£h]”hŒ Constants”…””}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:11: ./mm/slub.c”h´K»hjubj´)”}”(hhh]”(j¹)”}”(hŒ)``SL_locked`` Is locked with slab_lock() ”h]”(j¿)”}”(hŒ ``SL_locked``”h]”jc)”}”(hjÂh]”hŒ SL_locked”…””}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:11: ./mm/slub.c”h´K¾hj¼ubjÙ)”}”(hhh]”j])”}”(hŒIs locked with slab_lock()”h]”hŒIs locked with slab_lock()”…””}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³j×h´K¾hjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jØhj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¸h³j×h´K¾hj¹ubj¹)”}”(hŒ,``SL_partial`` On the per-node partial list ”h]”(j¿)”}”(hŒ``SL_partial``”h]”jc)”}”(hjûh]”hŒ SL_partial”…””}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:11: ./mm/slub.c”h´KÁhjõubjÙ)”}”(hhh]”j])”}”(hŒOn the per-node partial list”h]”hŒOn the per-node partial list”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³jh´KÁhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jØhjõubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¸h³jh´KÁhj¹ubj¹)”}”(hŒ9``SL_pfmemalloc`` Was allocated from PF_MEMALLOC reserves”h]”(j¿)”}”(hŒ``SL_pfmemalloc``”h]”jc)”}”(hj4h]”hŒ SL_pfmemalloc”…””}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jbhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:11: ./mm/slub.c”h´KÃhj.ubjÙ)”}”(hhh]”j])”}”(hŒ'Was allocated from PF_MEMALLOC reserves”h]”hŒ'Was allocated from PF_MEMALLOC reserves”…””}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:11: ./mm/slub.c”h´KÄhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jØhj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¸h³jIh´KÃhj¹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j³hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j“hhÝh²hh³j2h´Nubj])”}”(hŒ**Description**”h]”jž)”}”(hjwh]”hŒ Description”…””}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:11: ./mm/slub.c”h´KÆhhÝh²hubj])”}”(hŒœThe slab flags share space with the page flags but some bits have different interpretations. The high bits are used for information like zone/node/section.”h]”hŒœThe slab flags share space with the page flags but some bits have different interpretations. The high bits are used for information like zone/node/section.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j\h³ŒA/var/lib/git/docbuild/linux/Documentation/mm/slab:11: ./mm/slub.c”h´K»hhÝh²hubeh}”(h]”Œfunctions-and-structures”ah ]”h"]”Œfunctions and structures”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Kubeh}”(h]”Œslab-allocation”ah ]”h"]”Œslab allocation”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”}”(j©j¦j¡jžuŒ nametypes”}”(j©‰j¡‰uh}”(j¦hÊjžhÝhýjj7j<j&j+j0j6uŒ 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.