运行 DPDK helloworld 示例时,hugepages 中没有报告免费的hugepages
No free hugepages reported in hugepages when running DPDK helloworld example
我下载并构建了 dpdk-stable-16.11.4 版本(使用 x86_64-native-linuxapp-gcc 目标)。我是 运行ning Ubuntu 16.04.3 LTS。根据http://dpdk.org/doc/quick-start or http://dpdk.org/doc/guides-16.04/linux_gsg/sys_reqs.html
设置hugepages后
mkdir -p /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
echo 64 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
我可以很好地看到大页面。
cat /proc/meminfo | grep Huge
HugeAnonHugePages: 284672 kB
ShmemHugePages: 0 kB
HugePages_Total: 64
HugePages_Free: 64
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
但是当我 运行 helloWorld 示例时,它抱怨没有免费的大页面,见下文。
./build/helloworld -l 0-3 -n 2
EAL: Detected 4 lcore(s)
EAL: No free hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
hello from core 1
hello from core 2
hello from core 3
hello from core 0
此外,内存信息显示空闲的大页面都不见了。
cat /proc/meminfo | grep Huge
AnonHugePages: 380928 kB
ShmemHugePages: 0 kB
HugePages_Total: 64
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
知道为什么会这样吗?
1。 1GB 大页面
该示例抱怨 1048576kB 大页面,即 1GB。这是正确的,您没有配置 1GB 页面,正如我们在 /proc/meminfo
中看到的那样
但是您不需要 1GB 页面来启动 DPDK 应用程序,因此它只是通知并继续。
2。免费大页面
免费的大页面都消失了,因为如果我们不使用-m
或--socket-mem
选项指定用于DPDK应用程序的内存量,它将保留所有可用的大页面。
更多关于 DPDK Getting Started Guide here。
如果即使应用程序已结束(或崩溃)大页面仍处于分配状态,您可以通过删除 /mnt/huge
中的文件手动释放大页面
我下载并构建了 dpdk-stable-16.11.4 版本(使用 x86_64-native-linuxapp-gcc 目标)。我是 运行ning Ubuntu 16.04.3 LTS。根据http://dpdk.org/doc/quick-start or http://dpdk.org/doc/guides-16.04/linux_gsg/sys_reqs.html
设置hugepages后mkdir -p /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
echo 64 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
我可以很好地看到大页面。
cat /proc/meminfo | grep Huge
HugeAnonHugePages: 284672 kB
ShmemHugePages: 0 kB
HugePages_Total: 64
HugePages_Free: 64
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
但是当我 运行 helloWorld 示例时,它抱怨没有免费的大页面,见下文。
./build/helloworld -l 0-3 -n 2
EAL: Detected 4 lcore(s)
EAL: No free hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
hello from core 1
hello from core 2
hello from core 3
hello from core 0
此外,内存信息显示空闲的大页面都不见了。
cat /proc/meminfo | grep Huge
AnonHugePages: 380928 kB
ShmemHugePages: 0 kB
HugePages_Total: 64
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
知道为什么会这样吗?
1。 1GB 大页面
该示例抱怨 1048576kB 大页面,即 1GB。这是正确的,您没有配置 1GB 页面,正如我们在 /proc/meminfo
中看到的那样但是您不需要 1GB 页面来启动 DPDK 应用程序,因此它只是通知并继续。
2。免费大页面
免费的大页面都消失了,因为如果我们不使用-m
或--socket-mem
选项指定用于DPDK应用程序的内存量,它将保留所有可用的大页面。
更多关于 DPDK Getting Started Guide here。
如果即使应用程序已结束(或崩溃)大页面仍处于分配状态,您可以通过删除 /mnt/huge
中的文件手动释放大页面