Я получил следующую ошибку:
ip: page allocation failure: order:10, mode:0x140c0c0(GFP_KERNEL|__GFP_COMP|__GFP_ZERO), nodemask=(null)
.
.
.
lowmem_reserve[]: 0 0 0
Normal: 1509*4kB (UEH) 1627*8kB (UE) 1214*16kB (UMH) 898*32kB (UEH) 166*64kB (UEH)
9*128kB (UE) 6*256kB (UH) 6*512kB (EH) 2*1024kB (H) 1*2048kB (U)
0*4096kB 0*8192kB = 87692kB
HighMem: 244*4kB (UMC) 161*8kB (UM) 56*16kB (UMC) 30*32kB (MC) 9*64kB (UM) 7*128kB(UM)
4*256kB(UMC) 2*512kB (UM) 2*1024kB (UC) 2*2048kB (MC) 1*4096kB(U)
180*8192kB (MC) = 1492440kB
Я предполагаю, что ядро хочет выделить 2 ^ 10 страниц, то есть 4 МБ. В «нормальной» памяти нет непрерывного непрерывного фрагмента памяти размером 4 МБ.
Если это правда, скажите, пожалуйста, что можно сделать?
У меня 2G памяти, ядро 4.14.158:
Memory: 1994532K/2096124K available (10240K kernel code, 796K rwdata, 3220K rodata, 1024K init, 591K bss, 36056K reserved,
65536K cma-reserved, 1498108K highmem)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xe1000000 - 0xff800000 ( 488 MB)
lowmem : 0xc0000000 - 0xe0800000 ( 520 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.text : 0xc0008000 - 0xc0b00000 (11232 kB)
.init : 0xc0f00000 - 0xc1000000 (1024 kB)
.data : 0xc1000000 - 0xc10c71c8 ( 797 kB)
.bss : 0xc10cfccc - 0xc1163a48 ( 592 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1