步骤一:yum update
yum install libpcap-devel kernel //安装程序依赖
步骤二:wget https://dpdk.org/rel/dpdk-17.11.2.tar.xz
xz -d dpdk-17.11.2.tar.xz
tar -xvf dpdk-17.11.2.tar //下载dpdk安装包
步骤三:进入dpdk-stable-17.11.2/config/目录 ,修改common_linuxapp文件
CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=y改为 CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
CONFIG_RTE_LIBRTE_VHOST_NUMA=y改为 CONFIG_RTE_LIBRTE_VHOST_NUMA=n
CONFIG_RTE_KNI_KMOD=y改为 CONFIG_RTE_KNI_KMOD=n
步骤四:进入dpdk-stable-17.11.2/lib/librte_eal/linuxapp/igb_uio/目录 修改igb_uio.c
if (pci_intx_mask_supported(udev->pdev))改为 if (pci_intx_mask_supported(udev->pdev) || 1)(在文件279行)
步骤五:进入dpdk-stable-17.11.2/usertools
执行./dpdk-setup.sh
输入14 (14对应 x86_64-native-linuxapp-gcc,有可能14不是x86_64-native-linuxapp-gcc,那这里就不能输入14,输入x86_64-native-linuxapp-gcc前面的id)
安装好以后选择exit退出后
在输入上面退出选项的id(一般是34,看选项英文的意思,然后它对应着一个id,一般这个id是34)
步骤六:将dpdk_start.sh脚本放到当前目录下
执行 sh dpdk_start.sh脚本
dpdk_start.sh脚本内容:
modprobe uio
insmod ../x86_64-native-linuxapp-gcc/kmod/igb_uio.ko //载入用户态驱动
ifconfig ens37 down
ifconfig ens38 down //将网口加入到dpdk之前,必须要先将网卡关闭(注释:这里的网口以自己的网口为止,不一定是ens37和ens38)
./dpdk-devbind.py -b igb_uio ens37
./dpdk-devbind.py -b igb_uio ens38 //绑定网卡驱动
sleep 2s延时两秒
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages //配置巨页 这里为1G 1024*2M(2048KB)
mount –t hugetlbfs nodev /mnt/huge 挂载
脚本内容
如修改回普通网卡模式,则使用如下命令 ./dpdk-devbind.py -b e1000 0000:02:05.0
ifconfig ens33 up
查看巨页信息:
cat /proc/meminfo | grep Huge
删除巨页配置:
umount nodev /mnt/huge
rm –rf /dev/hugepages/*
echo 0 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
https://blog.csdn.net/Silvester123/article/details/80964146
脚本内容:
#!/bin/bash
modprobe uio
insmod ../x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
ifconfig ens37 down
ifconfig ens38 down
./dpdk-devbind.py -b igb_uio ens37
./dpdk-devbind.py -b igb_uio ens38
sleep 2s
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
mount –t hugetlbfs nodev /mnt/huge