错误:/dev/hugepages 不存在

错误:/dev/hugepages 不存在

今天,当我在 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 大页面,请按照以下步骤操作

  1. 将 /etc/default/grub 编辑为 grub default_hugepagesz=1G hugepagesz=1G hugepages=1 (代表 1GB 1 个大页面)
  2. 通过 update-grub 工具更新 grub 设置。
  3. 将大页面挂载到所需位置mkdir /dev/huge1G; mount -t hugetlbfs -o pagesize=1G none /dev/huge1G
  4. 使用 rte_eal_init 参数启动 DPDK 应用程序,参数为 --huge-dir=/dev/huge1G

注意:这些操作可以在启用了大页面的 Linux 内核上执行。要检查大页面是否已构建,请执行 grep -nr HUGE /boot/config*

CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y

相关内容