[dpdk-dev] mmap failed: Cannot allocate memory when init dpdk eal

Linhaifeng haifeng.lin at huawei.com
Fri Jan 30 13:24:14 CET 2015



On 2015/1/30 19:40, zhangsha (A) wrote:
> Hi ,all
> 
> I am suffering from the problem mmap failed as followed when init dpdk eal.
> 
> Fri Jan 30 09:03:29 2015:EAL: Setting up memory...
> Fri Jan 30 09:03:34 2015:EAL: map_all_hugepages(): mmap failed: Cannot allocate memory
> Fri Jan 30 09:03:34 2015:EAL: Failed to mmap 2 MB hugepages
> Fri Jan 30 09:03:34 2015:EAL: Cannot init memory
> 
> Before I run the demo, the free hugepages of my host is :
> 
> cat /proc/meminfo
> MemTotal:       132117056 kB
> MemFree:        122040292 kB
> Buffers:           10984 kB
> Cached:           123056 kB
> SwapCached:            0 kB
> Active:           120812 kB
> Inactive:          85860 kB
> Active(anon):      79488 kB
> Inactive(anon):      364 kB
> Active(file):      41324 kB
> Inactive(file):    85496 kB
> Unevictable:       23576 kB
> Mlocked:           23576 kB
> SwapTotal:             0 kB
> SwapFree:              0 kB
> Dirty:              2576 kB
> Writeback:             0 kB
> AnonPages:         96236 kB
> Mapped:            19936 kB
> Shmem:               552 kB
> Slab:             101344 kB
> SReclaimable:      24164 kB
> SUnreclaim:        77180 kB
> KernelStack:        2544 kB
> PageTables:         4180 kB
> NFS_Unstable:          0 kB
> Bounce:                0 kB
> WritebackTmp:          0 kB
> CommitLimit:    61864224 kB
> Committed_AS:     585844 kB
> VmallocTotal:   34359738367 kB
> VmallocUsed:      518656 kB
> VmallocChunk:   34292133264 kB
> HardwareCorrupted:     0 kB
> AnonHugePages:      4096 kB
> HugePages_Total:    4096
> HugePages_Free:     4096
> HugePages_Rsvd:        0
> HugePages_Surp:        0
> Hugepagesize:       2048 kB
> DirectMap4k:       96256 kB
> DirectMap2M:     6178816 kB
> DirectMap1G:    127926272 kB
> 
> And after the demo executed, I got the hugepages like this:
> 
> cat /proc/meminfo
> MemTotal:       132117056 kB
> MemFree:        117325180 kB
> Buffers:           33508 kB
> Cached:           721912 kB
> SwapCached:            0 kB
> Active:          4217712 kB
> Inactive:         540956 kB
> Active(anon):    4019068 kB
> Inactive(anon):   121136 kB
> Active(file):     198644 kB
> Inactive(file):   419820 kB
> Unevictable:       23908 kB
> Mlocked:           23908 kB
> SwapTotal:             0 kB
> SwapFree:              0 kB
> Dirty:              2856 kB
> Writeback:             0 kB
> AnonPages:       4035184 kB
> Mapped:           160292 kB
> Shmem:            122100 kB
> Slab:             177908 kB
> SReclaimable:      64808 kB
> SUnreclaim:       113100 kB
> KernelStack:        7560 kB
> PageTables:        62128 kB
> NFS_Unstable:          0 kB
> Bounce:                0 kB
> WritebackTmp:          0 kB
> CommitLimit:    61864224 kB
> Committed_AS:    8789664 kB
> VmallocTotal:   34359738367 kB
> VmallocUsed:      527296 kB
> VmallocChunk:   34292122604 kB
> HardwareCorrupted:     0 kB
> AnonHugePages:    262144 kB
> HugePages_Total:    4096
> HugePages_Free:     2048
> HugePages_Rsvd:        0
> HugePages_Surp:        0
> Hugepagesize:       2048 kB
> DirectMap4k:      141312 kB
> DirectMap2M:     9279488 kB
> DirectMap1G:    124780544 kB
> 
> Only the hugepages beyond to node1 was mapped. I was told host(having 64bit OS) cannot allocate memory while node0 has 2048 free hugepages,why?
> Dose anyone encountered the similar problem ever?
> Any response will be appreciated!
> Thanks!
> 
> 
> 
> 

How do you tell kernel not to allocate memory on node0?

I guess node0 and node1 both have 2048 hugepages and you want to mmap 4096 hugepages.
So you can mmap 2048 hugepages on node1.After this step you cannot mmap any hugepage
files because you tell kernel not to allocate memory on node0.


-- 
Regards,
Haifeng



More information about the dev mailing list