OOM Killer内存统计报告中的缩写是什么意思?

Raf*_*Raf 3 linux out-of-memory

当 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
Run Code Online (Sandbox Code Playgroud)

我理解其中一些,例如M——可动UMH——不可动高。但我找不到什么办法E 在哪里可以找到有关它的文档?

我的情况,我有下一条消息

page allocation stalls for 27840ms, order:0, mode:0x14200ca(GFP_HIGHUSER_MOVABLE)
Run Code Online (Sandbox Code Playgroud)

进程请求 4kb 页是什么意思(2^0 * 4kb),应该编码为 (MH) 我说得对吗?或者HIGHUSER以不同的方式编码?

Ste*_*itt 6

mm/page_alloc.c这些是内核中定义的迁移类型:

\n\n
        static const char types[MIGRATE_TYPES] = {\n                [MIGRATE_UNMOVABLE]     = \'U\',\n                [MIGRATE_MOVABLE]       = \'M\',\n                [MIGRATE_RECLAIMABLE]   = \'E\',\n                [MIGRATE_HIGHATOMIC]    = \'H\',\n#ifdef CONFIG_CMA\n                [MIGRATE_CMA]           = \'C\',\n#endif\n#ifdef CONFIG_MEMORY_ISOLATION\n                [MIGRATE_ISOLATE]       = \'I\',\n#endif\n        };\n
Run Code Online (Sandbox Code Playgroud)\n\n

类型本身在 中定义include/linux/mmzone.h

\n\n

soE表示可回收,H表示\xe2\x80\x9c高原子\xe2\x80\x9d,\xe2\x80\x9c高阶原子分配\xe2\x80\x9d。

\n