linux-5.15/__zone_watermark_unusable_free()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#t204ac22]
#backlinks
*説明 [#m80d1be4]
-パス: [[linux-5.15/mm/page_alloc.c]]
-FIXME: これは何?
--説明
**引数 [#pfd6e79a]
-struct zone *z
--メモリゾーン。
--[[linux-5.15/zone]]
-unsigned int order
--オーダー。カーネルのメモリ確保関数は、ページ数を2^order...
-unsigned int alloc_flags
--
**返り値 [#d6a3547f]
-long
--freeページだが指定された条件では使用不可能なページ数。
**参考 [#z410107d]
*実装 [#hae1cfd9]
static inline long __zone_watermark_unusable_free(struct...
unsigned int order, unsigned int alloc_flags)
{
const bool alloc_harder = (alloc_flags & (ALLOC_HARDER|...
long unusable_free = (1 << order) - 1;
(1 << order) - 1が使用不可能なページ数の初期値となる。
-order 2: 4 - 1 = 3
-order 4: 16 - 1 = 15
/*
* If the caller does not have rights to ALLOC_HARDER t...
* the high-atomic reserves. This will over-estimate th...
* atomic reserve but it avoids a search.
*/
if (likely(!alloc_harder))
unusable_free += z->nr_reserved_highatomic;
ALLOC_HARDERかALLOC_OOMを指定しない限り、MIGRATE_HIGHATOM...
#ifdef CONFIG_CMA
/* If allocation can't use CMA areas don't use free CMA...
if (!(alloc_flags & ALLOC_CMA))
unusable_free += zone_page_state(z, NR_FREE_CMA_PAGES);
#endif
ALLOC_CMAを指定しない限り、MIGRATE_CMAの領域は使わない。
--[[linux-5.15/zone_page_state()]]
return unusable_free;
}
*コメント [#i5150f0d]
終了行:
*参照元 [#t204ac22]
#backlinks
*説明 [#m80d1be4]
-パス: [[linux-5.15/mm/page_alloc.c]]
-FIXME: これは何?
--説明
**引数 [#pfd6e79a]
-struct zone *z
--メモリゾーン。
--[[linux-5.15/zone]]
-unsigned int order
--オーダー。カーネルのメモリ確保関数は、ページ数を2^order...
-unsigned int alloc_flags
--
**返り値 [#d6a3547f]
-long
--freeページだが指定された条件では使用不可能なページ数。
**参考 [#z410107d]
*実装 [#hae1cfd9]
static inline long __zone_watermark_unusable_free(struct...
unsigned int order, unsigned int alloc_flags)
{
const bool alloc_harder = (alloc_flags & (ALLOC_HARDER|...
long unusable_free = (1 << order) - 1;
(1 << order) - 1が使用不可能なページ数の初期値となる。
-order 2: 4 - 1 = 3
-order 4: 16 - 1 = 15
/*
* If the caller does not have rights to ALLOC_HARDER t...
* the high-atomic reserves. This will over-estimate th...
* atomic reserve but it avoids a search.
*/
if (likely(!alloc_harder))
unusable_free += z->nr_reserved_highatomic;
ALLOC_HARDERかALLOC_OOMを指定しない限り、MIGRATE_HIGHATOM...
#ifdef CONFIG_CMA
/* If allocation can't use CMA areas don't use free CMA...
if (!(alloc_flags & ALLOC_CMA))
unusable_free += zone_page_state(z, NR_FREE_CMA_PAGES);
#endif
ALLOC_CMAを指定しない限り、MIGRATE_CMAの領域は使わない。
--[[linux-5.15/zone_page_state()]]
return unusable_free;
}
*コメント [#i5150f0d]
ページ名: