Direct Page Reclaim call path
__get_free_pages ->
alloc_pages ->
alloc_pages_nodemask ->
__alloc_pages_slowpath ->
__alloc_pages_direct_reclaim ->
try_to_free_pages ->
do_try_to_free_pages ->
shrink_slab/shrink_zones ->
shrink_zone ->
shrink_list ->
shrink_inactive/active_list ->
shrink_page_list ->
page_out ->
|
V
mapping->a_ops->writepage
Background Page Reclaim call path
wakeup_kswapd ->
kswapd ->
balance_pgdat ->
shrink_slab/shrink_zone ->
shrink_list ->
shrink_inactive/active_list ->
shrink_page_list ->
page_out ->
|
V
mapping->a_ops->writepage
Note: Pages is moved from active list to inactive list for freeing in the end.
, shrink_active_list move pages to inactive list, when moving pages, pages are
isolated from lru list to a private list (page_list or l_hold).
Friday, July 3, 2009
Direct Page reclaim and Background Page reclaim call path
Subscribe to:
Post Comments (Atom)
Followers
Blog Archive
-
▼
2009
(16)
-
▼
July
(11)
- gfp_zone analysis
- Chat about git on how to apply local custom patch ...
- include/linux/gfp.h
- The heart of zoned buddy allocator
- Analysis of shrink_slab function in mm/vmscan.c
- A sample git work flow to send/receive patch by email
- Direct Page reclaim and Background Page reclaim ca...
- VM_BUG_ON(PageLRU(page) and VM_BUG_ON(!PageLRU(pag...
- kernel virtual address caculation
- Return page_count(page) - !!page_has_private(page)...
- I had a chat on #mm channel with hnaz about task_s...
-
▼
July
(11)
No comments:
Post a Comment