linux-4.4.1/__rmqueue()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#z9008f04]
#backlinks
*説明 [#z719c29e]
-パス: [[linux-4.4.1/mm/page_alloc.c]]
-FIXME: これは何?
--説明
--呼び出し側は zone->lock を取得していなければならない。
**引数 [#tb6b2860]
-struct zone *zone
--ゾーン
--[[linux-4.4.1/zone]]
-unsigned int order
--確保するページ数のオーダー、2 のべき乗で指定する
--0 なら 1 ページ、1 なら 2 ページ、n なら 2^n ページ
-int migratetype
--マイグレーションの種類、MIGRATE_XXX を指定する
-gfp_t gfp_flags
--GFP (Get Free Page) フラグ
--この関数では参照されない
--[[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 budd...
* Call me with the zone->lock already held.
*/
static struct page *__rmqueue(struct zone *zone, unsigne...
int migratetype, gfp_t gfp_flags)
{
struct page *page;
page = __rmqueue_smallest(zone, order, migratetype);
-マイグレーションの種類が指している free_list から、空き...
--[[linux-4.4.1/__rmqueue_smallest()]]
if (unlikely(!page)) {
if (migratetype == MIGRATE_MOVABLE)
page = __rmqueue_cma_fallback(zone, order);
-MIGRATE_MOVABLE から空き領域が取得できない場合は、CMA 領...
--[[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, migratetyp...
return page;
-
--[[linux-4.4.1/trace_mm_page_alloc_zone_locked()]]
}
*コメント [#v0579995]
終了行:
*参照元 [#z9008f04]
#backlinks
*説明 [#z719c29e]
-パス: [[linux-4.4.1/mm/page_alloc.c]]
-FIXME: これは何?
--説明
--呼び出し側は zone->lock を取得していなければならない。
**引数 [#tb6b2860]
-struct zone *zone
--ゾーン
--[[linux-4.4.1/zone]]
-unsigned int order
--確保するページ数のオーダー、2 のべき乗で指定する
--0 なら 1 ページ、1 なら 2 ページ、n なら 2^n ページ
-int migratetype
--マイグレーションの種類、MIGRATE_XXX を指定する
-gfp_t gfp_flags
--GFP (Get Free Page) フラグ
--この関数では参照されない
--[[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 budd...
* Call me with the zone->lock already held.
*/
static struct page *__rmqueue(struct zone *zone, unsigne...
int migratetype, gfp_t gfp_flags)
{
struct page *page;
page = __rmqueue_smallest(zone, order, migratetype);
-マイグレーションの種類が指している free_list から、空き...
--[[linux-4.4.1/__rmqueue_smallest()]]
if (unlikely(!page)) {
if (migratetype == MIGRATE_MOVABLE)
page = __rmqueue_cma_fallback(zone, order);
-MIGRATE_MOVABLE から空き領域が取得できない場合は、CMA 領...
--[[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, migratetyp...
return page;
-
--[[linux-4.4.1/trace_mm_page_alloc_zone_locked()]]
}
*コメント [#v0579995]
ページ名: