xref: /openbmc/linux/Documentation/core-api/mm-api.rst (revision cc84ac35d9fa3131179ed0805ddbd28bc5f262d6)
141f35b39SMike Rapoport======================
241f35b39SMike RapoportMemory Management APIs
341f35b39SMike Rapoport======================
441f35b39SMike Rapoport
541f35b39SMike RapoportUser Space Memory Access
641f35b39SMike Rapoport========================
741f35b39SMike Rapoport
841f35b39SMike Rapoport.. kernel-doc:: arch/x86/include/asm/uaccess.h
941f35b39SMike Rapoport   :internal:
1041f35b39SMike Rapoport
1141f35b39SMike Rapoport.. kernel-doc:: arch/x86/lib/usercopy_32.c
1241f35b39SMike Rapoport   :export:
1341f35b39SMike Rapoport
14*cc84ac35SJonathan Corbet.. kernel-doc:: mm/gup.c
1541f35b39SMike Rapoport   :functions: get_user_pages_fast
1641f35b39SMike Rapoport
1709700f8aSMike Rapoport.. _mm-api-gfp-flags:
1809700f8aSMike Rapoport
19038a07a5SMike RapoportMemory Allocation Controls
20038a07a5SMike Rapoport==========================
21038a07a5SMike Rapoport
22038a07a5SMike RapoportFunctions which need to allocate memory often use GFP flags to express
23038a07a5SMike Rapoporthow that memory should be allocated. The GFP acronym stands for "get
24038a07a5SMike Rapoportfree pages", the underlying memory allocation function. Not every GFP
25038a07a5SMike Rapoportflag is allowed to every function which may allocate memory. Most
26038a07a5SMike Rapoportusers will want to use a plain ``GFP_KERNEL``.
27038a07a5SMike Rapoport
28038a07a5SMike Rapoport.. kernel-doc:: include/linux/gfp.h
29038a07a5SMike Rapoport   :doc: Page mobility and placement hints
30038a07a5SMike Rapoport
31038a07a5SMike Rapoport.. kernel-doc:: include/linux/gfp.h
32038a07a5SMike Rapoport   :doc: Watermark modifiers
33038a07a5SMike Rapoport
34038a07a5SMike Rapoport.. kernel-doc:: include/linux/gfp.h
35038a07a5SMike Rapoport   :doc: Reclaim modifiers
36038a07a5SMike Rapoport
37038a07a5SMike Rapoport.. kernel-doc:: include/linux/gfp.h
3880a76c72SMike Rapoport   :doc: Useful GFP flag combinations
39038a07a5SMike Rapoport
4041f35b39SMike RapoportThe Slab Cache
4141f35b39SMike Rapoport==============
4241f35b39SMike Rapoport
4341f35b39SMike Rapoport.. kernel-doc:: include/linux/slab.h
4441f35b39SMike Rapoport   :internal:
4541f35b39SMike Rapoport
4641f35b39SMike Rapoport.. kernel-doc:: mm/slab.c
4741f35b39SMike Rapoport   :export:
4841f35b39SMike Rapoport
4954a67c75SMike Rapoport.. kernel-doc:: mm/slab_common.c
5054a67c75SMike Rapoport   :export:
5154a67c75SMike Rapoport
5241f35b39SMike Rapoport.. kernel-doc:: mm/util.c
5341f35b39SMike Rapoport   :functions: kfree_const kvmalloc_node kvfree
5441f35b39SMike Rapoport
552f7e6f6bSMike RapoportVirtually Contiguous Mappings
562f7e6f6bSMike Rapoport=============================
572f7e6f6bSMike Rapoport
582f7e6f6bSMike Rapoport.. kernel-doc:: mm/vmalloc.c
592f7e6f6bSMike Rapoport   :export:
602f7e6f6bSMike Rapoport
612f7e6f6bSMike RapoportFile Mapping and Page Cache
622f7e6f6bSMike Rapoport===========================
6341f35b39SMike Rapoport
6441f35b39SMike Rapoport.. kernel-doc:: mm/readahead.c
6541f35b39SMike Rapoport   :export:
6641f35b39SMike Rapoport
6741f35b39SMike Rapoport.. kernel-doc:: mm/filemap.c
6841f35b39SMike Rapoport   :export:
6941f35b39SMike Rapoport
7041f35b39SMike Rapoport.. kernel-doc:: mm/page-writeback.c
7141f35b39SMike Rapoport   :export:
7241f35b39SMike Rapoport
7341f35b39SMike Rapoport.. kernel-doc:: mm/truncate.c
7441f35b39SMike Rapoport   :export:
752f7e6f6bSMike Rapoport
762f7e6f6bSMike RapoportMemory pools
772f7e6f6bSMike Rapoport============
782f7e6f6bSMike Rapoport
792f7e6f6bSMike Rapoport.. kernel-doc:: mm/mempool.c
802f7e6f6bSMike Rapoport   :export:
812f7e6f6bSMike Rapoport
822f7e6f6bSMike RapoportDMA pools
832f7e6f6bSMike Rapoport=========
842f7e6f6bSMike Rapoport
852f7e6f6bSMike Rapoport.. kernel-doc:: mm/dmapool.c
862f7e6f6bSMike Rapoport   :export:
872f7e6f6bSMike Rapoport
882f7e6f6bSMike RapoportMore Memory Management Functions
892f7e6f6bSMike Rapoport================================
902f7e6f6bSMike Rapoport
912f7e6f6bSMike Rapoport.. kernel-doc:: mm/memory.c
922f7e6f6bSMike Rapoport   :export:
932f7e6f6bSMike Rapoport
942f7e6f6bSMike Rapoport.. kernel-doc:: mm/page_alloc.c
95