函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\swap.c Create Date:2022-07-27 15:37:15
Last Modify:2022-05-23 13:40:24 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:lru_add_drain

函数原型:void lru_add_drain(void)

返回类型:void

参数:

694  Drain pages out of the cpu's pagevecs.* Either "cpu" is the current CPU, and preemption has already been* disabled; or "cpu" is being hot-unplugged, and is already dead.
695  put_cpu()
调用者
名称描述
lru_add_drain_all
__pagevec_releaseThe pages which we're about to release may be in the deferred lru-addition* queues. That would prevent them from really being freed right now. That's* OK from a correctness point of view but is inefficient - those pages may be
shrink_inactive_listshrink_inactive_list() is a helper for shrink_node(). It returns the number* of reclaimed pages
shrink_active_list
follow_page_pte
zap_page_rangezap_page_range - remove user pages in a given range*@vma: vm_area_struct holding the applicable pages*@start: starting address of pages to zap*@size: number of bytes to zap* Caller must protect the VMA list
zap_page_range_singlezap_page_range_single - remove user pages in a given range*@vma: vm_area_struct holding the applicable pages*@address: starting address of pages to zap*@size: number of bytes to zap*@details: details of shared cache invalidation
unmap_region
exit_mmapRelease all mmaps.
madvise_cold
madvise_pageout
madvise_free_single_vma
free_pages_and_swap_cachePassed an array of pages, drop them all from swapcache and then release* them. They are removed from the LRU and freed if this is their last use.
swap_cluster_readaheadswap_cluster_readahead - swap in pages in hope we need them soon*@entry: swap entry of this memory*@gfp_mask: memory allocation flags*@vmf: fault information* Returns the struct page for entry and addr, after queueing swapin.
swap_vma_readaheadswap_vma_readahead - swap in pages in hope we need them soon*@entry: swap entry of this memory*@gfp_mask: memory allocation flags*@vmf: fault information* Returns the struct page for entry and addr, after queueing swapin.* Primitive swap readahead code
migrate_prep_localDo the necessary work of migrate_prep but not if it involves other CPUs
follow_trans_huge_pmd
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.
memfd_tag_pins
generic_fadvisePOSIX_FADV_WILLNEED could set PG_Referenced, and POSIX_FADV_NOREUSE could* deactivate the pages and clear PG_Referenced.
shift_arg_pagesDuring bprm_mm_init(), we create a temporary stack at STACK_TOP_MAX. Once* the binfmt code determines where the new stack should reside, we shift it to* its final location. The process proceeds as follows:* 1) Use shift to calculate the new vma endpoints.