mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 08:34:20 +08:00
84dacdbd53
Add some "big-picture" documentation for read-ahead and polish the code to make it fit this documentation. The meaning of ->async_size is clarified to match its name. i.e. Any request to ->readahead() has a sync part and an async part. The caller will wait for the sync pages to complete, but will not wait for the async pages. The first async page is still marked PG_readahead Note that the current function names page_cache_sync_ra() and page_cache_async_ra() are misleading. All ra request are partly sync and partly async, so either part can be empty. A page_cache_sync_ra() request will usually set ->async_size non-zero, implying it is not all synchronous. When a non-zero req_count is passed to page_cache_async_ra(), the implication is that some prefix of the request is synchronous, though the calculation made there is incorrect - I haven't tried to fix it. Link: https://lkml.kernel.org/r/164549983734.9187.11586890887006601405.stgit@noble.brown Signed-off-by: NeilBrown <neilb@suse.de> Cc: Anna Schumaker <Anna.Schumaker@Netapp.com> Cc: Chao Yu <chao@kernel.org> Cc: Darrick J. Wong <djwong@kernel.org> Cc: Ilya Dryomov <idryomov@gmail.com> Cc: Jaegeuk Kim <jaegeuk@kernel.org> Cc: Jan Kara <jack@suse.cz> Cc: Jeff Layton <jlayton@kernel.org> Cc: Jens Axboe <axboe@kernel.dk> Cc: Lars Ellenberg <lars.ellenberg@linbit.com> Cc: Miklos Szeredi <miklos@szeredi.hu> Cc: Paolo Valente <paolo.valente@linaro.org> Cc: Philipp Reisner <philipp.reisner@linbit.com> Cc: Ryusuke Konishi <konishi.ryusuke@gmail.com> Cc: Trond Myklebust <trond.myklebust@hammerspace.com> Cc: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
121 lines
2.1 KiB
ReStructuredText
121 lines
2.1 KiB
ReStructuredText
======================
|
|
Memory Management APIs
|
|
======================
|
|
|
|
User Space Memory Access
|
|
========================
|
|
|
|
.. kernel-doc:: arch/x86/include/asm/uaccess.h
|
|
:internal:
|
|
|
|
.. kernel-doc:: arch/x86/lib/usercopy_32.c
|
|
:export:
|
|
|
|
.. kernel-doc:: mm/gup.c
|
|
:functions: get_user_pages_fast
|
|
|
|
.. _mm-api-gfp-flags:
|
|
|
|
Memory Allocation Controls
|
|
==========================
|
|
|
|
.. kernel-doc:: include/linux/gfp.h
|
|
:internal:
|
|
|
|
.. kernel-doc:: include/linux/gfp.h
|
|
:doc: Page mobility and placement hints
|
|
|
|
.. kernel-doc:: include/linux/gfp.h
|
|
:doc: Watermark modifiers
|
|
|
|
.. kernel-doc:: include/linux/gfp.h
|
|
:doc: Reclaim modifiers
|
|
|
|
.. kernel-doc:: include/linux/gfp.h
|
|
:doc: Useful GFP flag combinations
|
|
|
|
The Slab Cache
|
|
==============
|
|
|
|
.. kernel-doc:: include/linux/slab.h
|
|
:internal:
|
|
|
|
.. kernel-doc:: mm/slab.c
|
|
:export:
|
|
|
|
.. kernel-doc:: mm/slab_common.c
|
|
:export:
|
|
|
|
.. kernel-doc:: mm/util.c
|
|
:functions: kfree_const kvmalloc_node kvfree
|
|
|
|
Virtually Contiguous Mappings
|
|
=============================
|
|
|
|
.. kernel-doc:: mm/vmalloc.c
|
|
:export:
|
|
|
|
File Mapping and Page Cache
|
|
===========================
|
|
|
|
Filemap
|
|
-------
|
|
|
|
.. kernel-doc:: mm/filemap.c
|
|
:export:
|
|
|
|
Readahead
|
|
---------
|
|
|
|
.. kernel-doc:: mm/readahead.c
|
|
:doc: Readahead Overview
|
|
|
|
.. kernel-doc:: mm/readahead.c
|
|
:export:
|
|
|
|
Writeback
|
|
---------
|
|
|
|
.. kernel-doc:: mm/page-writeback.c
|
|
:export:
|
|
|
|
Truncate
|
|
--------
|
|
|
|
.. kernel-doc:: mm/truncate.c
|
|
:export:
|
|
|
|
.. kernel-doc:: include/linux/pagemap.h
|
|
:internal:
|
|
|
|
Memory pools
|
|
============
|
|
|
|
.. kernel-doc:: mm/mempool.c
|
|
:export:
|
|
|
|
DMA pools
|
|
=========
|
|
|
|
.. kernel-doc:: mm/dmapool.c
|
|
:export:
|
|
|
|
More Memory Management Functions
|
|
================================
|
|
|
|
.. kernel-doc:: mm/memory.c
|
|
:export:
|
|
|
|
.. kernel-doc:: mm/page_alloc.c
|
|
.. kernel-doc:: mm/mempolicy.c
|
|
.. kernel-doc:: include/linux/mm_types.h
|
|
:internal:
|
|
.. kernel-doc:: include/linux/mm_inline.h
|
|
.. kernel-doc:: include/linux/page-flags.h
|
|
.. kernel-doc:: include/linux/mm.h
|
|
:internal:
|
|
.. kernel-doc:: include/linux/page_ref.h
|
|
.. kernel-doc:: include/linux/mmzone.h
|
|
.. kernel-doc:: mm/util.c
|
|
:functions: folio_mapping
|