#author("2025-09-10T18:07:56+09:00","default:guest","guest")

#author("2025-09-10T18:21:02+09:00","default:guest","guest")
*参照元 [#gc157f76]
#backlinks

*説明 [#e787d49e]
-パス: [[linux-5.15/mm/compaction.c]]

-FIXME: これは何?
--説明
-ゾーンの断片化スコアを取得する。


**引数 [#we4226f2]
-struct zone *zone
--
--メモリゾーン。
--[[linux-5.15/zone]]


**返り値 [#w719dd80]
-unsigned int
--
--ゾーンの断片化スコア


**参考 [#a7ccfa10]


*実装 [#o7fcd4fb]

 /*
  * A zone's fragmentation score is the external fragmentation wrt to the
  * COMPACTION_HPAGE_ORDER. It returns a value in the range [0, 100].
  */
 static unsigned int fragmentation_score_zone(struct zone *zone)
 {
 	return extfrag_for_order(zone, COMPACTION_HPAGE_ORDER);
 }

-
-COMPACTION_HPAGE_ORDERの値
--CONFIG_TRANSPARENT_HUGEPAGE=yなら、COMPACTION_HPAGE_ORDER = HPAGE_PMD_ORDER
--HPAGE_PMD_ORDER = HPAGE_PMD_SHIFT - PAGE_SHIFT = 21 - 12 = 9(つまり2MB)
-HPAGE_PMD_SHIFTはコンフィグ次第で変わる。
--HPAGE_PMD_SHIFT = PMD_SHIFT = ARM64_HW_PGTABLE_LEVEL_SHIFT(2)
--= (PAGE_SHIFT - 3) * (4 - n) + 3 = (12 - 3) + (4 - 2) + 3 = 21
--PAGE_SHIFT = CONFIG_ARM64_PAGE_SHIFT = 12(つまり4KB)
--[[linux-5.15/extfrag_for_order()]]


*コメント [#o6ef0e14]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS