linux-4.4.1/page_order()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#f0374bd7]
#backlinks
*説明 [#h01a6b37]
-パス: [[linux-4.4.1/mm/internal.h]]
-FIXME: これは何?
--この関数は buddy system にある解放されているページのオ...
この関数と並列で割当やゴミ回収が実行されるのを防ぐため、...
ゾーンのロック(page_zone(page)->lock)を確保してから、こ...
もし呼び出し側でロックを確保しない場合、並列にページが確...
呼び出し側で保証しなければならない。あるいは、無効な値を...
**引数 [#i8757720]
-struct page *page
--ページ
--[[linux-4.4.1/page]]
**返り値 [#n2312c81]
-unsigned int
--(おそらく)解放されている連続したページ数のオーダー
--1ページなら 0、2〜3 ページなら 1、4〜7 ページなら 2、…
**参考 [#a3cba798]
-設定する関数。
--[[linux-4.4.1/set_page_order()]]
*実装 [#e1949d9b]
/*
* This function returns the order of a free page in the...
* general, page_zone(page)->lock must be held by the ca...
* page from being allocated in parallel and returning g...
* If a caller does not hold page_zone(page)->lock, it m...
* page cannot be allocated or merged in parallel. Alter...
* handle invalid values gracefully, and use page_order_...
*/
static inline unsigned int page_order(struct page *page)
{
/* PageBuddy() must be checked by the caller */
return page_private(page);
-プライベートデータを得る。
-FIXME: プライベートデータは場合によって意味が違う、誰が...
--[[linux-4.4.1/page_private()]]
-プライベートデータは複数の場所で更新しているが、
set_page_order() 経由で更新しているのは下記の 2関数だけ。
--[[linux-4.4.1/expand()]]
--[[linux-4.4.1/__free_one_page()]]
}
*コメント [#p084c9bc]
終了行:
*参照元 [#f0374bd7]
#backlinks
*説明 [#h01a6b37]
-パス: [[linux-4.4.1/mm/internal.h]]
-FIXME: これは何?
--この関数は buddy system にある解放されているページのオ...
この関数と並列で割当やゴミ回収が実行されるのを防ぐため、...
ゾーンのロック(page_zone(page)->lock)を確保してから、こ...
もし呼び出し側でロックを確保しない場合、並列にページが確...
呼び出し側で保証しなければならない。あるいは、無効な値を...
**引数 [#i8757720]
-struct page *page
--ページ
--[[linux-4.4.1/page]]
**返り値 [#n2312c81]
-unsigned int
--(おそらく)解放されている連続したページ数のオーダー
--1ページなら 0、2〜3 ページなら 1、4〜7 ページなら 2、…
**参考 [#a3cba798]
-設定する関数。
--[[linux-4.4.1/set_page_order()]]
*実装 [#e1949d9b]
/*
* This function returns the order of a free page in the...
* general, page_zone(page)->lock must be held by the ca...
* page from being allocated in parallel and returning g...
* If a caller does not hold page_zone(page)->lock, it m...
* page cannot be allocated or merged in parallel. Alter...
* handle invalid values gracefully, and use page_order_...
*/
static inline unsigned int page_order(struct page *page)
{
/* PageBuddy() must be checked by the caller */
return page_private(page);
-プライベートデータを得る。
-FIXME: プライベートデータは場合によって意味が違う、誰が...
--[[linux-4.4.1/page_private()]]
-プライベートデータは複数の場所で更新しているが、
set_page_order() 経由で更新しているのは下記の 2関数だけ。
--[[linux-4.4.1/expand()]]
--[[linux-4.4.1/__free_one_page()]]
}
*コメント [#p084c9bc]
ページ名: