#author("2025-10-20T16:28:43+09:00","default:guest","guest") #author("2025-10-20T16:36:32+09:00","default:guest","guest") *参照元 [#h5e7e398] #backlinks *説明 [#he50ee21] -パス: [[linux-5.15/mm/page_alloc.c]] -orderとmigratetypeからper_cpu_pagesのlistインデックスを得る。 --[[linux-5.15/メモリ管理]] **引数 [#y31132ee] -int migratetype --migrateの種類 --migratetypeのうちどれか --0: MIGRATE_UNMOVABLE --1: MIGRATE_MOVABLE --2: MIGRATE_RECLAIMABLE --3: MIGRATE_PCPTYPES(もしくはHIGHATOMIC) -int order --オーダー --Transparent Hugepageが無効のとき: 3以下である必要がある --Transparent Hugepageが有効のとき: 3以下ならそのまま計算に使う、それ以上なら4とみなして計算に使う ---order 3 = PAGE_ALLOC_COSTLY_ORDER、Per-CPU pagesから取るかどうかの境目になる **返り値 [#cf730c87] -int --リストのインデックス --order * 3 + migratetype **参考 [#fd884f04] *実装 [#ob4b3205] static inline unsigned int order_to_pindex(int migratetype, int order) { int base = order; #ifdef CONFIG_TRANSPARENT_HUGEPAGE if (order > PAGE_ALLOC_COSTLY_ORDER) { VM_BUG_ON(order != pageblock_order); base = PAGE_ALLOC_COSTLY_ORDER + 1; } #else VM_BUG_ON(order > PAGE_ALLOC_COSTLY_ORDER); #endif return (MIGRATE_PCPTYPES * base) + migratetype; } -PAGE_ALLOC_COSTLY_ORDERは3 --[[linux-5.15/include/linux/mmzone.h]] *コメント [#t6411068]