- 论坛徽章:
- 0
|
回复 3# 瀚海书香
感谢大牛的回复。不过,“只有被swap backed的页才设置PG_swapbacked标志” 并不完整呀,因为:
在缺页处理流程中,对于匿名页,刚被分配,便设置了PG_swapbacked位(这个时候还没有完成backed):
__do_fault->
page_add_new_anon_rmap:- void page_add_new_anon_rmap(struct page *page,
- struct vm_area_struct *vma, unsigned long address)
- {
- VM_BUG_ON(address < vma->vm_start || address >= vma->vm_end);
- SetPageSwapBacked(page);
- atomic_set(&page->_mapcount, 0); /* increment count (starts at -1) */
- if (!PageTransHuge(page))
- __inc_zone_page_state(page, NR_ANON_PAGES);
- else
- __inc_zone_page_state(page, NR_ANON_TRANSPARENT_HUGEPAGES);
- __page_set_anon_rmap(page, vma, address, 1);
- if (page_evictable(page, vma))
- lru_cache_add_lru(page, LRU_ACTIVE_ANON);
- else
- add_page_to_unevictable_list(page);
- }
复制代码 |
|