There are four levels of page activities: AR (00,01,10,11) [A=PG_Active, R=PG_Referenced page flag]
page reference flag is removed each time an activity check is performed. there are two types of functionalities: activity check and page moving between lists.
mark_page_active() pushes the pages towards AR=11 and page_referenced() pushes the page towards AR=00. ironically, page_referenced should have been called page_ref_killed()... :))
page_referenced() additionally tells us how many references to this page has been made so far after it has been mapped in.
swap token overrides resetting PG_reference bit and keeps it set so that the process does not suffer from swapping under heavy swapping pressure.
shrink_active_list() puts some active pages from active lru list to inactive list. shrink_inactive_list() swaps out some pages from inactive lru list.
active and inactive lists are protected by spinlock zone->lru_lock
PG_lru is set only when the page is on LRU list. they use local list to get pages out of LRU list into local list to avoid holding the lru_lock for a long time.
page reference flag is removed each time an activity check is performed. there are two types of functionalities: activity check and page moving between lists.
mark_page_active() pushes the pages towards AR=11 and page_referenced() pushes the page towards AR=00. ironically, page_referenced should have been called page_ref_killed()... :))
page_referenced() additionally tells us how many references to this page has been made so far after it has been mapped in.
swap token overrides resetting PG_reference bit and keeps it set so that the process does not suffer from swapping under heavy swapping pressure.
shrink_active_list() puts some active pages from active lru list to inactive list. shrink_inactive_list() swaps out some pages from inactive lru list.
active and inactive lists are protected by spinlock zone->lru_lock
PG_lru is set only when the page is on LRU list. they use local list to get pages out of LRU list into local list to avoid holding the lru_lock for a long time.
No comments:
Post a Comment