环境配置
DPDK系统要求:
Kernel version >= 4.14
GCC(版本 5.0+)或 Clang(版本 3.6+)
Python 3.6 或更高版本
Meson (version 0.53.2+) and ninja
pyelftools (版本 0.22+)
笔者环境:
内核版本: 6.6.32-1-lts
发行版: ArchLinux
gcc 版本 14.1.1 20240522
Python 3.12.3
Meson 1.4.1
pyelftools 0.31-2
环境配置
- 检查当前内核是否支持
1 | # 查看当前内核是否支持 |
如果不支持HUGETLBFS
或者PROC_PAGE_MONITOR
,重编内核。
- 安装上述环境
1 | sudo pacman -S gcc clang pkgconf python meson ninja python-pyelftools numactl |
- 配置大页
最简单的配置,只使用2MB的大页,没有配置1GB的,如果有需要可以官网查教程。
非root用户使用sudo vim
操作下面文件填写自己认为适合的数值,不太离谱都行。
1 | echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages |
HugePages_Total不为0就代表成功。
1 | ➜ ~ cat /proc/meminfo | grep Huge |
编译安装
下载一个自己喜欢的DPDK版本,懒得话就:
1 | git clone http://dpdk.org/git/dpdk --depth=1 |
进入项目主目录:
1 | meson setup build |
编译安装完成后,查看路径/usr/local/lib/pkgconfig
有无和libdpdk.pc
,没有的话全局找一下该文件路径,并且在~/.zshrc
添加export PKG_CONFIG_PATH=/path/to/
,我本机设置export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
,完成后进行下面命令:
1 | sudo ldconfig |
Hello World
简单运行一下:
1 | cd examples/helloworld |
Output:
1 | ➜ build git:(main) sudo ./helloworld |