Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\vmscan.c Create Date:2022-07-28 14:18:04
Last Modify:2022-05-23 13:41:30 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:Attempt 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.

Proto:int __isolate_lru_page(struct page *page, isolate_mode_t mode)

Type:int

Parameter:

TypeParameterName
struct page *page page to consider
isolate_mode_tmode one of the LRU isolation modes defined above
1541  ret = -EINVAL
1544  If Not PageLRU( page to consider) Then Return ret
1548  If PageUnevictable( page to consider) && Not ( one of the LRU isolation modes defined above & Isolate unevictable pages ) Then Return ret
1551  ret = -EBUSY
1561  If one of the LRU isolation modes defined above & Isolate for asynchronous migration Then
1563  If Only test-and-set exist for PG_writeback. The unconditional operators are* risky: they bypass page accounting. Then Return ret
1566  If PageDirty( page to consider) Then
1585  If Not migrate_dirty Then Return ret
1590  If one of the LRU isolation modes defined above & Isolate unmapped pages && page_mapped( page to consider) Then Return ret
1593  If Value is more likely to compile time(Try to grab a ref unless the page has a refcount of zero, return false if* that is the case.* This can be called when MMU is off so it must not access* any of the virtual mappings.) Then
1599  ClearPageLRU( page to consider)
1600  ret = 0
1603  Return ret
Caller
NameDescribe
isolate_lru_pagespgdat->lru_lock is heavily contended. Some of the functions that* shrink the lists perform better by taking out a batch of pages* and working on them outside the LRU lock.* For pagecache intensive workloads, this function is the hottest
isolate_migratepages_blocksolate_migratepages_block() - isolate all migrate-able pages within* a single pageblock*@cc: Compaction control structure.*@low_pfn: The first PFN to isolate*@end_pfn: The one-past-the-last PFN to isolate, within same pageblock