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

标签 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 写入任何新值时,但它没有任何值。它坚持以前的值(value)

# 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

如果有人之前遇到过这个问题,你做了什么来摆脱这个问题?任何指示或解决方法都会有很大帮助。

最佳答案

进程退出后删除大页面映射文件。搜索/dev/hugepages/mnt/huge 或任何其他挂载为 hugetlbfs 的地方以查找带有 rte_ 前缀的文件。这些位置中的每个文件都至少占用一个大页面。

关于linux - DPDK 应用程序停止后无法修改大页面大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58410451/

相关文章:

linux - 执行脚本的多个实例 - GNU Parallel

linux - Sed 无法将临时文件复制到原始文件

c - 如何在DPDK代码中解释这段C代码

dpdk - 无法运行 pktgen-dpdk(错误 : Illegal instruction)

linux - 不确定如何在启用 RSS 的情况下设置和使用 dpdk-pktgen

c++ - 在 linux 上编译一个基本的 OpenCV + Cuda 程序

linux - 无法从同一局域网中的另一台主机 ping docker 容器

memory - erlang 是否以任何巧妙的方式实现了记录复制和修改?

java - 通过方法推送对象时是否会创建对象的副本?

c# - 删除 Windows Phone 页面