- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#l0463606]
#backlinks
*説明 [#r11e849d]
-パス: [[linux-4.4.1/mm/page_alloc.c]]
-FIXME: これは何?
--説明
**引数 [#n51b0c25]
-struct zone *zone
--
--[[linux-4.4.1/zone]]
-unsigned int order
--
-int migratetype
--
**返り値 [#beec5374]
-struct page *
--
--[[linux-4.4.1/page]]
**参考 [#p6d04f2d]
*実装 [#z10fda94]
/*
* Go through the free lists for the given migratetype and remove
* the smallest available page from the freelists
*/
static inline
struct page *__rmqueue_smallest(struct zone *zone, unsigned int order,
int migratetype)
{
unsigned int current_order;
struct free_area *area;
struct page *page;
-
--[[linux-4.4.1/free_area]]
--[[linux-4.4.1/page]]
/* Find a page of the appropriate size in the preferred list */
for (current_order = order; current_order < MAX_ORDER; ++current_order) {
area = &(zone->free_area[current_order]);
if (list_empty(&area->free_list[migratetype]))
continue;
-
--[[linux-4.4.1/list_empty()]]
page = list_entry(area->free_list[migratetype].next,
struct page, lru);
list_del(&page->lru);
-
--[[linux-4.4.1/list_entry()]]
--[[linux-4.4.1/list_del()]]
rmv_page_order(page);
area->nr_free--;
expand(zone, page, order, current_order, area, migratetype);
set_pcppage_migratetype(page, migratetype);
return page;
-
--[[linux-4.4.1/rmv_page_order()]]
--[[linux-4.4.1/expand()]]
--[[linux-4.4.1/set_pcppage_migratetype()]]
}
return NULL;
}
*コメント [#j5ecfd65]