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"고원자"라는 뜻이고,"고차 원자 할당".

관련 정보