*参照元 [#z9008f04] #backlinks *説明 [#z719c29e] -パス: [[linux-4.4.1/mm/page_alloc.c]] -FIXME: これは何? --説明 **引数 [#tb6b2860] -struct zone *zone -- --[[linux-4.4.1/zone]] -unsigned int order -- -int migratetype -- -gfp_t gfp_flags -- --[[linux-4.4.1/gfp_t]] **返り値 [#g2fc8214] -struct page * -- --[[linux-4.4.1/page]] **参考 [#u697d057] *実装 [#u62bbc35] /* * Do the hard work of removing an element from the buddy allocator. * Call me with the zone->lock already held. */ static struct page *__rmqueue(struct zone *zone, unsigned int order, int migratetype, gfp_t gfp_flags) { struct page *page; page = __rmqueue_smallest(zone, order, migratetype); - --[[linux-4.4.1/__rmqueue_smallest()]] if (unlikely(!page)) { if (migratetype == MIGRATE_MOVABLE) page = __rmqueue_cma_fallback(zone, order); - --[[linux-4.4.1/unlikely()]] --[[linux-4.4.1/MIGRATE_MOVABLE]] --[[linux-4.4.1/__rmqueue_cma_fallback()]] if (!page) page = __rmqueue_fallback(zone, order, migratetype); - --[[linux-4.4.1/__rmqueue_fallback()]] } trace_mm_page_alloc_zone_locked(page, order, migratetype); return page; - --[[linux-4.4.1/trace_mm_page_alloc_zone_locked()]] } *コメント [#v0579995]