Friday, July 10, 2009

The heart of zoned buddy allocator

__alloc_pages_nodemask
-> get_page_from_freelist (first attempt)
->__alloc_pages_slowpath (enter slow path allocation)
->wake_all_kswapd (wake up background page reclaiming to free pages)
->get_page_from_freelist (try again, got no page? continue)
-> __alloc_pages_high_priority ( if ALLOC_NO_WATERMARKS, try this one)
->__alloc_pages_direct_reclaim (enter direct page reclaim )
-> get_page_from_freelist (still got no page, and direct reclaim make no progrogress)
->__alloc_pages_may_oom (enter OOM to kill some task to free some pages)




No comments:

Post a Comment

Followers