DPDK应用程序停止后无法修改大页面大小

时间:2019-10-16 09:48:57

标签: linux memory dpdk

我正在运行DPDK应用程序,为此,我使用脚本分配了大量页面。分配并启动应用程序很好。但是稍后,当我停止应用程序并通过删除挂载点并为numa系统在nr_hugepages下方进行修改来释放大页面时。

稍后,当我尝试分配更多的大页面时,它似乎不起作用。

我如何发布大页面:

echo 0 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

echo 0 > sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

 echo "Unmounting /mnt/huge and removing directory"
 grep -s '/mnt/huge' /proc/mounts > /dev/null
 if [ $? -eq 0 ] ; then
     sudo umount /mnt/huge
 fi

 if [ -d /mnt/huge ] ; then
     sudo rm -R /mnt/huge
 fi

然后稍后当我尝试将任何新值写入nr_hugepages时,但没有任何值。它停留在先前的值上

# echo 0 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
# echo 0 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
#
# cat /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
2048
# cat /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
2048
# cat /sys/devices/system/node/node0/meminfo | fgrep Huge
Node 0 AnonHugePages:     10240 kB
Node 0 HugePages_Total:  2048
Node 0 HugePages_Free:   1024
Node 0 HugePages_Surp:      0
# cat /sys/devices/system/node/node1/meminfo | fgrep Huge
Node 1 AnonHugePages:    145408 kB
Node 1 HugePages_Total:  2048
Node 1 HugePages_Free:   1024
Node 1 HugePages_Surp:   2048

# cat /proc/sys/vm/nr_hugepages
2048
# echo 0 > /proc/sys/vm/nr_hugepages
# cat /proc/sys/vm/nr_hugepages
0
# cat /sys/devices/system/node/node0/meminfo | fgrep Huge
Node 0 AnonHugePages:     10240 kB
Node 0 HugePages_Total:  2048
Node 0 HugePages_Free:   1024
Node 0 HugePages_Surp:   2048

# cat /sys/devices/system/node/node1/meminfo | fgrep Huge
Node 1 AnonHugePages:    145408 kB
Node 1 HugePages_Total:  2048
Node 1 HugePages_Free:   1024
Node 1 HugePages_Surp:   2048
# cat /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
2048
# cat /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
4096

如果有人更早地遇到了这个问题,那么您为摆脱这个问题做了什么?任何指针或解决方法都会有很大帮助。

1 个答案:

答案 0 :(得分:0)

在进程退出后删除巨大的页面映射文件。搜索/dev/hugepages/mnt/huge或任何其他挂载为ugeltlbfs的文件,其前缀为rte_。这些位置的每个文件至少占用一个大页面。