Hi Kypriotis, > cat /sys/devices/system/node/node1/hugepages/hugepages- > 2048kB/nr_hugepages > --> 1024 > cat /sys/devices/system/node/node0/hugepages/hugepages- > 2048kB/nr_hugepages > --> 1024 > > When I try to pin my process to specific nodes like this : > > numactl --physcpubind=12-15 -- ./my_simulator -c f000 -n 2 -b > 0000:01:00.0 --socket-mem=0,2048 -- my_simulator.conf , > > I get 'RING:cannot reserve memory' error. Here is the relevant part : > > EAL: Setting up memory... > EAL: Ask a virtual area of 0x1200000 bytes > EAL: Virtual area found at 0x7f217a600000 (size = 0x1200000) > EAL: Ask a virtual area of 0x3ec00000 bytes > EAL: Virtual area found at 0x7f213b800000 (size = 0x3ec00000) > EAL: Ask a virtual area of 0x200000 bytes > EAL: Virtual area found at 0x7f213b400000 (size = 0x200000) > EAL: Ask a virtual area of 0x3fc00000 bytes > EAL: Virtual area found at 0x7f20fb600000 (size = 0x3fc00000) > EAL: Ask a virtual area of 0x200000 bytes > EAL: Virtual area found at 0x7f20fb200000 (size = 0x200000) > EAL: Ask a virtual area of 0x200000 bytes > EAL: Virtual area found at 0x7f20fae00000 (size = 0x200000) > EAL: Ask a virtual area of 0x7fc00000 bytes > EAL: Virtual area found at 0x7f207b000000 (size = 0x7fc00000) > EAL: Ask a virtual area of 0x200000 bytes > EAL: Virtual area found at 0x7f207ac00000 (size = 0x200000) > EAL: Ask a virtual area of 0x200000 bytes > EAL: Virtual area found at 0x7f207a800000 (size = 0x200000) > EAL: Requesting 1024 pages of size 2MB from socket 1 > EAL: TSC frequency is ~1600000 KHz > EAL: Master core 12 is ready (tid=81c69840) > EAL: Core 13 is ready (tid=7fd55700) > EAL: Core 15 is ready (tid=7ed53700) > EAL: Core 14 is ready (tid=7f554700) > RING: Cannot reserve memory > Failed to allocate packet buffer pool. > > If I do not use --socket-mem=0,2048 memory ( 1024 pages ) is requested > from both sockets 0 and 1 and it works, but I want to use node 1 only. > > In addition in order to request for 1024 pages in node 1 I must pass the -- > socket-mem parameter as above. I would expect that what I should pass is -- > socket-mem=0,1024, but then the actual memory requested is 512. Am I > missing something here or is it a bug?
This is by design. If you want memory from specific socket, use --socket-mem. The "512" number you get is the number of pages. Each page is 2MB in size, so that amounts to 512 * 2MB == 1024MB requested, just as you specified on your command-line. Best regards, Anatoly Burakov DPDK SW Engineer