函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:include\linux\page-flags.h Create Date:2022-07-27 06:40:08
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Only test-and-set exist for PG_writeback. The unconditional operators are* risky: they bypass page accounting.

函数原型:static inline __attribute__((__always_inline__)) int PageWriteback(struct page *page)

返回类型:int

参数:

类型参数名称
struct page *page
359  返回:st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from
调用者
名称描述
try_to_release_pagery_to_release_page() - release old fs-specific metadata on a page*@page: the page which the kernel is trying to free*@gfp_mask: memory allocation flags (and I/O mode)* The address_space is to try to release any data against the page
write_cache_pageswrite_cache_pages - walk the list of dirty pages of the given address space and write all of them
wait_on_page_writebackWait for a page to complete writeback
page_cache_async_readaheadpage_cache_async_readahead - file readahead for marked pages*@mapping: address_space which holds the pagecache and I/O vectors*@ra: file_ra_state which holds the readahead state*@filp: passed on to ->readpage() and ->readpages()*@page: the page at @offset
lru_deactivate_file_fnIf the page can not be invalidated, it is moved to the* inactive list to speed up its reclaim. It is moved to the* head of the list, rather than the tail, to give the flusher* threads some time to write it out, as this is much more
invalidate_inode_pageSafely invalidate one page from its pagecache mapping.* It only drops clean, unused pages. The page must be locked.* Returns 1 if the page is successfully invalidated, otherwise 0.
truncate_inode_pages_rangeruncate_inode_pages_range - truncate range of pages specified by start & end byte offsets*@mapping: mapping to truncate*@lstart: offset from which to truncate*@lend: offset to which to truncate (inclusive)* Truncate the page cache, removing the pages that
pageoutpageout is called by shrink_page_list() for each dirty page.* Calls ->writepage().
page_check_dirty_writebackCheck if a page is dirty or under writeback
shrink_page_listshrink_page_list() returns the number of reclaimed pages
__isolate_lru_pageAttempt to remove the specified page from its LRU. Only take this page* if it is of the appropriate PageActive status. Pages which are being* freed elsewhere are also ignored.* returns 0 on success, -ve errno on failure.
__delete_from_swap_cacheThis must be called only on pages that have* been verified to be in the swap cache.
reuse_swap_pageWe can write to an anon page without COW if there are no other references* to it. And as a side-effect, free up its swap: because the old content* on disk will never be read, and seeking back there to write new content
try_to_free_swapIf swap is getting full, or if there are no more mappings of this page,* then try_to_free_swap is called to free its swap space.
migrate_page_statesCopy the page to its new location
migrate_pageCommon logic to directly migrate a single LRU page suitable for* pages that do not use PagePrivate/PagePrivate2.* Pages are locked upon entry and exit.
__unmap_and_move
split_huge_page_to_listThis function splits huge page into normal pages. @page can point to any* subpage of huge page to split. Split doesn't change the position of @page.* Only caller must hold pin on the @page, otherwise split fails with -EBUSY.* The huge page must be locked.
mem_cgroup_move_accountmem_cgroup_move_account - move account of the page*@page: the page*@compound: charge the page as compound or small page*@from: mem_cgroup which the page is moved from.*@to: mem_cgroup which the page is moved to. @from != @to.
buffer_check_dirty_writebackReturns if the page has dirty or writeback buffers. If all the buffers* are unlocked and clean then the PageDirty information is stale. If* any of the pages are locked, it is assumed they are locked for IO.
__block_write_full_pageWhile block_write_full_page is writing back the dirty buffers under* the page lock, whoever dirtied the buffers may decide to clean them* again at any time
try_to_free_buffers
__mpage_writepage
aio_migratepage
iomap_releasepage
iomap_invalidatepage
iomap_writepage_mapWe implement an immediate ioend submission policy here to avoid needing to* chain multiple ioends and hence nest mempool allocations which can violate* forward progress guarantees we need to provide