当 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
以不同的方式编码?
这些是迁移类型,
mm/page_alloc.c
在内核中定义:类型本身定义在
include/linux/mmzone.h
.so
E
表示reclaimable,H
意思是“high atomic”,即“高阶原子分配”。