#author("2025-09-10T10:26:59+09:00","default:guest","guest") #author("2025-09-10T10:37:04+09:00","default:guest","guest") *参照元 [#n87baab1] #backlinks *説明 [#zbbc1ed9] -パス: [[linux-5.15/mm/page_alloc.c]] -FIXME: これは何? --説明 **引数 [#vd1e5757] -struct zone *z -- --メモリゾーン。 --[[linux-5.15/zone]] -unsigned int order --オーダー。カーネルのメモリ確保関数は、ページ数を2^orderの形で表すことがある。つまりorder 0 = 1ページ, order 1 = 2ページ, order 2 = 4ページ, order 3 = 8ページのようになる。 -unsigned long mark -- -int highest_zoneidx --ゾーンインデックス。このインデックス以下のゾーンからメモリを確保する。 -unsigned int alloc_flags -- **返り値 [#l2fe23f2] -bool -- **参考 [#u239fc7f] *実装 [#y85be2fb] bool zone_watermark_ok(struct zone *z, unsigned int order, unsigned long mark, int highest_zoneidx, unsigned int alloc_flags) { return __zone_watermark_ok(z, order, mark, highest_zoneidx, alloc_flags, zone_page_state(z, NR_FREE_PAGES)); } -free_pagesにはゾーンのfreeページ数を渡す。 --[[linux-5.15/__zone_watermark_ok()]] --[[linux-5.15/zone_page_state()]] *コメント [#mb0725f1]