OOM Killer メモリ統計レポートの略語とはどういう意味ですか?

OOM Killer メモリ統計レポートの略語とはどういう意味ですか?

OOM Killerまたはカーネルがメモリ状態を報告するときは、次の略語を使用します。

Node 0 DMA: 26*4kB (M) 53*8kB (UM) 33*16kB (ME) 23*32kB (UME) 6*64kB (ME) 7*128kB (UME) 1*256kB (M) 2*512kB (ME) 0*1024kB 0*2048kB 0*4096kB = 4352kB
Node 0 DMA32: 803*4kB (UME) 3701*8kB (UMEH) 830*16kB (UMH) 2*32kB (H) 0*64kB 0*128kB 1*256kB (H) 0*512kB 0*1024kB 0*2048kB 0*4096kB = 46420kB

私はそれらのいくつかを理解しています。M- 動くことができるものUMH- 動けない高さ。しかし、E これに関する文書はどこで見つけることができますか?

私の場合は、次のメッセージがあります。

page allocation stalls for 27840ms, order:0, mode:0x14200ca(GFP_HIGHUSER_MOVABLE)

プロセスが4kbページを要求するとき(2^0 * 4kb)(MH)でエンコードする必要があることはどういう意味ですか?それともHIGHUSER別の方法でエンコードしますか?

答え1

以下は、次に定義される移行タイプです。mm/page_alloc.cカーネルから:

        static const char types[MIGRATE_TYPES] = {
                [MIGRATE_UNMOVABLE]     = 'U',
                [MIGRATE_MOVABLE]       = 'M',
                [MIGRATE_RECLAIMABLE]   = 'E',
                [MIGRATE_HIGHATOMIC]    = 'H',
#ifdef CONFIG_CMA
                [MIGRATE_CMA]           = 'C',
#endif
#ifdef CONFIG_MEMORY_ISOLATION
                [MIGRATE_ISOLATE]       = 'I',
#endif
        };

型自体は次に定義されています。include/linux/mmzone.h

だからEリサイクルが可能だという意味で、H「高原者」という意味で、つまり「高次原子割り当て」。

関連情報