Commit ff351f4b authored by Miaohe Lin's avatar Miaohe Lin Committed by akpm

mm/swap: fix comment about swap extent

Since commit 4efaceb1 ("mm, swap: use rbtree for swap_extent"), rbtree
is used for swap extent.  Also curr_swap_extent is removed at that time. 
Update the corresponding comment.

Link: https://lkml.kernel.org/r/20220509131416.17553-16-linmiaohe@huawei.comSigned-off-by: default avatarMiaohe Lin <linmiaohe@huawei.com>
Cc: Alistair Popple <apopple@nvidia.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Naoya Horiguchi <naoya.horiguchi@nec.com>
Cc: NeilBrown <neilb@suse.de>
Cc: Peter Xu <peterx@redhat.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Oscar Salvador <osalvador@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 133d2743
...@@ -168,8 +168,8 @@ struct zone; ...@@ -168,8 +168,8 @@ struct zone;
/* /*
* A swap extent maps a range of a swapfile's PAGE_SIZE pages onto a range of * A swap extent maps a range of a swapfile's PAGE_SIZE pages onto a range of
* disk blocks. A list of swap extents maps the entire swapfile. (Where the * disk blocks. A rbtree of swap extents maps the entire swapfile (Where the
* term `swapfile' refers to either a blockdevice or an IS_REG file. Apart * term `swapfile' refers to either a blockdevice or an IS_REG file). Apart
* from setup, they're handled identically. * from setup, they're handled identically.
* *
* We always assume that blocks are of size PAGE_SIZE. * We always assume that blocks are of size PAGE_SIZE.
......
...@@ -2208,8 +2208,8 @@ EXPORT_SYMBOL_GPL(add_swap_extent); ...@@ -2208,8 +2208,8 @@ EXPORT_SYMBOL_GPL(add_swap_extent);
/* /*
* A `swap extent' is a simple thing which maps a contiguous range of pages * A `swap extent' is a simple thing which maps a contiguous range of pages
* onto a contiguous range of disk blocks. An ordered list of swap extents * onto a contiguous range of disk blocks. A rbtree of swap extents is
* is built at swapon time and is then used at swap_writepage/swap_readpage * built at swapon time and is then used at swap_writepage/swap_readpage
* time for locating where on disk a page belongs. * time for locating where on disk a page belongs.
* *
* If the swapfile is an S_ISBLK block device, a single extent is installed. * If the swapfile is an S_ISBLK block device, a single extent is installed.
...@@ -2217,12 +2217,12 @@ EXPORT_SYMBOL_GPL(add_swap_extent); ...@@ -2217,12 +2217,12 @@ EXPORT_SYMBOL_GPL(add_swap_extent);
* swap files identically. * swap files identically.
* *
* Whether the swapdev is an S_ISREG file or an S_ISBLK blockdev, the swap * Whether the swapdev is an S_ISREG file or an S_ISBLK blockdev, the swap
* extent list operates in PAGE_SIZE disk blocks. Both S_ISREG and S_ISBLK * extent rbtree operates in PAGE_SIZE disk blocks. Both S_ISREG and S_ISBLK
* swapfiles are handled *identically* after swapon time. * swapfiles are handled *identically* after swapon time.
* *
* For S_ISREG swapfiles, setup_swap_extents() will walk all the file's blocks * For S_ISREG swapfiles, setup_swap_extents() will walk all the file's blocks
* and will parse them into an ordered extent list, in PAGE_SIZE chunks. If * and will parse them into a rbtree, in PAGE_SIZE chunks. If some stray
* some stray blocks are found which do not fall within the PAGE_SIZE alignment * blocks are found which do not fall within the PAGE_SIZE alignment
* requirements, they are simply tossed out - we will never use those blocks * requirements, they are simply tossed out - we will never use those blocks
* for swapping. * for swapping.
* *
...@@ -2231,10 +2231,7 @@ EXPORT_SYMBOL_GPL(add_swap_extent); ...@@ -2231,10 +2231,7 @@ EXPORT_SYMBOL_GPL(add_swap_extent);
* *
* The amount of disk space which a single swap extent represents varies. * The amount of disk space which a single swap extent represents varies.
* Typically it is in the 1-4 megabyte range. So we can have hundreds of * Typically it is in the 1-4 megabyte range. So we can have hundreds of
* extents in the list. To avoid much list walking, we cache the previous * extents in the rbtree. - akpm.
* search location in `curr_swap_extent', and start new searches from there.
* This is extremely effective. The average number of iterations in
* map_swap_page() has been measured at about 0.3 per page. - akpm.
*/ */
static int setup_swap_extents(struct swap_info_struct *sis, sector_t *span) static int setup_swap_extents(struct swap_info_struct *sis, sector_t *span)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment