linux-5.15/メモリ管理
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#o3b2483d]
#backlinks
*説明 [#q1b9b00c]
**メモリ確保時に頻出する単語 [#ofa8b832]
***LRU list [#xa4f83ea]
***プロテクション [#e0492436]
-lowmem_reserve
***migratetype [#o45332b1]
ゾーン内の空きメモリを管理するためのフリーリストはorderご...
[[linux-5.15/migratetype]]
-zone
--free_area order 0
---migrate unmovable
---migrate movable
---...
---migrate cma
---migrate isolate
--free_area order 1
---migrate unmovable
---migrate movable
---...
---migrate cma
---migrate isolate
--free_area order 2
--...
***オーダー(order) [#kb9b51a6]
Linuxカーネルのメモリ確保関数は、ページ数を2^orderの形で...
***watermark [#e321af49]
何かの閾値を表しているだけのこともあるが、ゾーンごとに3種...
またwatermarkにはブーストと呼ばれる仕組みがあり、ゾーンに...
-min watermark
--〜を発動させる閾値(などの説明を入れる)
--_watermark[WMARK_MIN]の値
-low watermark
--〜を発動させる閾値(などの説明を入れる)
--_watermark[WMARK_LOW]の値
-high watermark
--〜を発動させる閾値(などの説明を入れる)
--ノード内の全ゾーンの空きページがhigh watermarkを下回る...
--_watermark[WMARK_HIGH]の値
-boost
--watermark_boostの値
-参照
--[[linux-5.15/zone]]
--WMARK_XXXの定義: [[linux-5.15/zone_watermarks]]
***カーネルが扱うページ数 [#x095908e]
3つあって、メモリ確保に使えるmanaged_pagesは下記のように...
-spanned_pages = zone_end_pfn - zone_start_pfn
--ゾーンの範囲にあるページ数。ゾーンの開始アドレスと終了...
-present_pages = spanned_pages - absent_pages(pages in ho...
--存在するページ数。ゾーンの範囲にあるページ数から実際に...
-managed_pages = present_pages - reserved_pages
--管理するページ数。存在しているページ数から予約領域を除...
***pcplist(per-cpu list) [#gfc7b2b2]
pcplist数はNR_PCP_LISTだけある。
-MIGRATE_PCPTYPES = 3
--[[linux-5.15/include/migratetype]]
-PAGE_ALLOC_COSTLY_ORDER = 3
-NR_PCP_THPはCONFIG_TRANSPARENT_HUGEPAGEが定義されていれば1
なので(3 * (3 + 1 + 1)) = 3 * 5 = 15となる。
#define NR_PCP_LISTS (MIGRATE_PCPTYPES * (PAGE_ALLOC_COS...
/*
* PAGE_ALLOC_COSTLY_ORDER is the order at which allocat...
* costly to service. That is between allocation orders...
* coalesce naturally under reasonable reclaim pressure ...
* will not.
*/
#define PAGE_ALLOC_COSTLY_ORDER 3
highとbatchの値は/proc/zoneinfoの下記の部分で確認できる。
pagesets
cpu: 0
count: 0
high: 252 //★これ
batch: 63 //★これ
**参考 [#ycbe7422]
**関連モジュール [#i527637c]
*コメント [#u58031fd]
終了行:
*参照元 [#o3b2483d]
#backlinks
*説明 [#q1b9b00c]
**メモリ確保時に頻出する単語 [#ofa8b832]
***LRU list [#xa4f83ea]
***プロテクション [#e0492436]
-lowmem_reserve
***migratetype [#o45332b1]
ゾーン内の空きメモリを管理するためのフリーリストはorderご...
[[linux-5.15/migratetype]]
-zone
--free_area order 0
---migrate unmovable
---migrate movable
---...
---migrate cma
---migrate isolate
--free_area order 1
---migrate unmovable
---migrate movable
---...
---migrate cma
---migrate isolate
--free_area order 2
--...
***オーダー(order) [#kb9b51a6]
Linuxカーネルのメモリ確保関数は、ページ数を2^orderの形で...
***watermark [#e321af49]
何かの閾値を表しているだけのこともあるが、ゾーンごとに3種...
またwatermarkにはブーストと呼ばれる仕組みがあり、ゾーンに...
-min watermark
--〜を発動させる閾値(などの説明を入れる)
--_watermark[WMARK_MIN]の値
-low watermark
--〜を発動させる閾値(などの説明を入れる)
--_watermark[WMARK_LOW]の値
-high watermark
--〜を発動させる閾値(などの説明を入れる)
--ノード内の全ゾーンの空きページがhigh watermarkを下回る...
--_watermark[WMARK_HIGH]の値
-boost
--watermark_boostの値
-参照
--[[linux-5.15/zone]]
--WMARK_XXXの定義: [[linux-5.15/zone_watermarks]]
***カーネルが扱うページ数 [#x095908e]
3つあって、メモリ確保に使えるmanaged_pagesは下記のように...
-spanned_pages = zone_end_pfn - zone_start_pfn
--ゾーンの範囲にあるページ数。ゾーンの開始アドレスと終了...
-present_pages = spanned_pages - absent_pages(pages in ho...
--存在するページ数。ゾーンの範囲にあるページ数から実際に...
-managed_pages = present_pages - reserved_pages
--管理するページ数。存在しているページ数から予約領域を除...
***pcplist(per-cpu list) [#gfc7b2b2]
pcplist数はNR_PCP_LISTだけある。
-MIGRATE_PCPTYPES = 3
--[[linux-5.15/include/migratetype]]
-PAGE_ALLOC_COSTLY_ORDER = 3
-NR_PCP_THPはCONFIG_TRANSPARENT_HUGEPAGEが定義されていれば1
なので(3 * (3 + 1 + 1)) = 3 * 5 = 15となる。
#define NR_PCP_LISTS (MIGRATE_PCPTYPES * (PAGE_ALLOC_COS...
/*
* PAGE_ALLOC_COSTLY_ORDER is the order at which allocat...
* costly to service. That is between allocation orders...
* coalesce naturally under reasonable reclaim pressure ...
* will not.
*/
#define PAGE_ALLOC_COSTLY_ORDER 3
highとbatchの値は/proc/zoneinfoの下記の部分で確認できる。
pagesets
cpu: 0
count: 0
high: 252 //★これ
batch: 63 //★これ
**参考 [#ycbe7422]
**関連モジュール [#i527637c]
*コメント [#u58031fd]
ページ名: