今天,当我在 Ubuntu 上运行 DPDK 时,出现了这个错误:
$ sudo mount -t hugetlbfs -o pagesize=1G none /dev/hugepages
mount: mount point /dev/hugepages does not exist
有人能告诉我如何解决这个问题吗?谢谢。
答案1
我在 ubuntu 上使用低延迟内核 (3.16.0-33-lowlatency #44~14.04.1-Ubuntu SMP PREEMPT) 的 DPDK。我使用下面的快速启动链接对其进行了配置,对我来说运行正常。
http://dpdk.org/doc/quick-start
"default_hugepagesz=1G hugepagesz=1G hugepages=4"
为了支持1G大页面,您是否在文件中设置了内核参数/boot/grub/grub.conf
?
https://embedded.communities.intel.com/thread/6681
但我还没尝试过这个。
答案2
对于 Ubuntu 16.04,包装中的初始化脚本可以帮助您获得持久的挂载点并处理挂载点。
本质上,您可以设置 NR_2M_PAGES=4096 或 NR_1G_PAGES=8 脚本将尝试尽早分配它们(不像内核命令行解决方案那么早)并确保一些与 dpdk 兼容的大页面挂载点可用。
更多信息请访问: https://help.ubuntu.com/16.04/serverguide/DPDK.html#dpdk-config-hp
答案3
为了使用 DPDK 的 1GB 大页面,请按照以下步骤操作
- 将 /etc/default/grub 编辑为 grub default_hugepagesz=1G hugepagesz=1G hugepages=1 (代表 1GB 1 个大页面)
- 通过 update-grub 工具更新 grub 设置。
- 将大页面挂载到所需位置
mkdir /dev/huge1G; mount -t hugetlbfs -o pagesize=1G none /dev/huge1G
- 使用 rte_eal_init 参数启动 DPDK 应用程序,参数为 --huge-dir=/dev/huge1G
注意:这些操作可以在启用了大页面的 Linux 内核上执行。要检查大页面是否已构建,请执行 grep -nr HUGE /boot/config*
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y