0Bsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/core-api/mm-apimodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/zh_TW/core-api/mm-apimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/it_IT/core-api/mm-apimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ja_JP/core-api/mm-apimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/ko_KR/core-api/mm-apimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget#/translations/sp_SP/core-api/mm-apimodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Simplified)uh1h hh _documenthsourceNlineNubhnote)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]h paragraph)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_CN/disclaimer-zh_CN.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhP/var/lib/git/docbuild/linux/Documentation/translations/zh_CN/core-api/mm-api.rsthKubh field_body)}(h"Documentation/core-api/mm-api.rst h]h)}(h!Documentation/core-api/mm-api.rsth]h!Documentation/core-api/mm-api.rst}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h翻译h]h翻译}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh)}(h\司延腾 Yanteng Si 周彬彬 Binbin Zhou h]h)}(h[司延腾 Yanteng Si 周彬彬 Binbin Zhou h](h司延腾 Yanteng Si <}(hjhhhNhNubh reference)}(hsiyanteng@loongson.cnh]hsiyanteng@loongson.cn}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:siyanteng@loongson.cnuh1jhjubh> 周彬彬 Binbin Zhou <}(hjhhhNhNubj)}(hzhoubinbin@loongson.cnh]hzhoubinbin@loongson.cn}(hj,hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:zhoubinbin@loongson.cnuh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h校译h]h校译}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhhhKubh)}(h时奎亮 h]h)}(h时奎亮h](h 时奎亮<}(hjghhhNhNubj)}(halexs@kernel.orgh]halexs@kernel.org}(hjohhhNhNubah}(h]h ]h"]h$]h&]refurimailto:alexs@kernel.orguh1jhjgubh>}(hjghhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hjcubah}(h]h ]h"]h$]h&]uh1hhjRubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhtarget)}(h.. _cn_core-api_mm-api:h]h}(h]h ]h"]h$]h&]refidcn-core-api-mm-apiuh1jhKhhhhhhubhsection)}(hhh](htitle)}(h内存管理APIsh]h内存管理APIs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKubh)}(h?API(Application Programming Interface,应用程序接口)h]h?API(Application Programming Interface,应用程序接口)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hhh](j)}(h用户空间内存访问h]h用户空间内存访问}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKubh)}(h该API在以下内核代码中:h]h该API在以下内核代码中:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(harch/x86/include/asm/uaccess.hh]harch/x86/include/asm/uaccess.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(harch/x86/lib/usercopy_32.ch]harch/x86/lib/usercopy_32.c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hmm/gup.ch]hmm/gup.c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(h.. _cn_mm-api-gfp-flags:h]h}(h]h ]h"]h$]h&]jcn-mm-api-gfp-flagsuh1jhK,hjhhhhubeh}(h]id1ah ]h"]用户空间内存访问ah$]h&]uh1jhjhhhhhKubj)}(hhh](j)}(h内存分配控制h]h内存分配控制}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(hhhhhK$ubh)}(h该API在以下内核代码中:h]h该API在以下内核代码中:}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hj(hhubh)}(hinclude/linux/gfp_types.hh]hinclude/linux/gfp_types.h}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hj(hhubeh}(h](jid2eh ]h"](内存分配控制cn_mm-api-gfp-flagseh$]h&]uh1jhjhhhhhK$expect_referenced_by_name}j[jsexpect_referenced_by_id}jjsubj)}(hhh](j)}(h Slab缓存h]h Slab缓存}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbhhhhhK+ubh)}(h<此缓存非cpu片上缓存,请读者自行查阅资料。h]h<此缓存非cpu片上缓存,请读者自行查阅资料。}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjbhhubh)}(h该API在以下内核代码中:h]h该API在以下内核代码中:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjbhhubh)}(hinclude/linux/slab.hh]hinclude/linux/slab.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjbhhubh)}(h mm/slab.ch]h mm/slab.c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjbhhubh)}(hmm/slab_common.ch]hmm/slab_common.c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjbhhubh)}(h mm/util.ch]h mm/util.c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjbhhubeh}(h]slabah ]h"] slab缓存ah$]h&]uh1jhjhhhhhK+ubj)}(hhh](j)}(h!虚拟连续(内存页)映射h]h!虚拟连续(内存页)映射}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhK:ubh)}(h该API在以下内核代码中:h]h该API在以下内核代码中:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]id3ah ]h"]!虚拟连续(内存页)映射ah$]h&]uh1jhjhhhhhK:ubj)}(hhh](j)}(h文件映射和页面缓存h]h文件映射和页面缓存}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKBubh)}(h该API在以下内核代码中:h]h该API在以下内核代码中:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhjhhubj)}(hhh](j)}(h 文件映射h]h 文件映射}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#hhhhhKGubh)}(h mm/filemap.ch]h mm/filemap.c}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKIhj#hhubeh}(h]id5ah ]h"] 文件映射ah$]h&]uh1jhjhhhhhKGubj)}(hhh](j)}(h预读h]h预读}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJhhhhhKLubh)}(hmm/readahead.ch]hmm/readahead.c}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjJhhubeh}(h]id6ah ]h"]预读ah$]h&]uh1jhjhhhhhKLubj)}(hhh](j)}(h回写h]h回写}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqhhhhhKQubh)}(hmm/page-writeback.ch]hmm/page-writeback.c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShjqhhubeh}(h]id7ah ]h"]回写ah$]h&]uh1jhjhhhhhKQubj)}(hhh](j)}(h截断h]h截断}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKVubh)}(h mm/truncate.ch]h mm/truncate.c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjhhubh)}(hinclude/linux/pagemap.hh]hinclude/linux/pagemap.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjhhubeh}(h]id8ah ]h"]截断ah$]h&]uh1jhjhhhhhKVubeh}(h]id4ah ]h"]文件映射和页面缓存ah$]h&]uh1jhjhhhhhKBubj)}(hhh](j)}(h 内存池h]h 内存池}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhK]ubh)}(h该API在以下内核代码中:h]h该API在以下内核代码中:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjhhubh)}(h mm/mempool.ch]h mm/mempool.c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjhhubeh}(h]id9ah ]h"] 内存池ah$]h&]uh1jhjhhhhhK]ubj)}(hhh](j)}(hDMA池h]hDMA池}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hhhhhKdubh)}(h1DMA(Direct Memory Access,直接存储器访问)h]h1DMA(Direct Memory Access,直接存储器访问)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhj hhubh)}(h该API在以下内核代码中:h]h该API在以下内核代码中:}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhj hhubh)}(h mm/dmapool.ch]h mm/dmapool.c}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhj hhubeh}(h]dmaah ]h"]dma池ah$]h&]uh1jhjhhhhhKdubj)}(hhh](j)}(h更多的内存管理函数h]h更多的内存管理函数}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMhhhhhKmubh)}(h该API在以下内核代码中:h]h该API在以下内核代码中:}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohjMhhubh)}(h mm/memory.ch]h mm/memory.c}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhjMhhubh)}(hmm/page_alloc.ch]hmm/page_alloc.c}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshjMhhubh)}(hmm/mempolicy.ch]hmm/mempolicy.c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjMhhubh)}(hinclude/linux/mm_types.hh]hinclude/linux/mm_types.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhjMhhubh)}(hinclude/linux/mm_inline.hh]hinclude/linux/mm_inline.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhjMhhubh)}(hinclude/linux/page-flags.hh]hinclude/linux/page-flags.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hjMhhubh)}(hinclude/linux/mm.hh]hinclude/linux/mm.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hjMhhubh)}(hinclude/linux/page_ref.hh]hinclude/linux/page_ref.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjMhhubh)}(hinclude/linux/mmzone.hh]hinclude/linux/mmzone.h}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjMhhubh)}(h mm/util.ch]h mm/util.c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjMhhubeh}(h]id10ah ]h"]更多的内存管理函数ah$]h&]uh1jhjhhhhhKmubeh}(h](apisjeh ]h"](内存管理apiscn_core-api_mm-apieh$]h&]uh1jhhhhhhhKj^}jjsj`}jjsubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jN 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_handlerj.error_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}(j]jaj]jaunameids}(jjjjj%j"j[jjZjWjjjjjjjGjDjnjkjjjjjjjJjGjju nametypes}(jjj%j[jZjjjjGjnjjjjJjuh}(jjjjj"jjj(jWj(jjbjjjjjDj#jkjJjjqjjjjjGj jjMu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j<K sRparse_messages]transform_messages](hsystem_message)}(hhh]h)}(hhh]h8Hyperlink target "cn-core-api-mm-api" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypeINFOsourceh،lineKuh1jubj)}(hhh]h)}(hhh]h9Hyperlink target "cn-mm-api-gfp-flags" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejsourceh،lineK,uh1jube transformerN include_log]4Documentation/translations/zh_CN/core-api/mm-api.rst(NNNNta decorationNhhub.