dpdk快速编译使用

QuickStart

环境

dpdk: dpdk-17.11

运行前配置

配置系统HugePages
#mkdir /mnt/huge_1GB/
#vim /etc/fstab
nodev                /mnt/huge_1GB   hugetlbfs       defaults        0 0
#vim /etc/default/grub
default_hugepagesz=1G hugepagesz=1G hugepages=4"
#grub2-mkconfig -o /boot/grub2/grub.cfg
#reboot
#cat /proc/meminfo  | grep Hug
AnonHugePages:     88064 kB
HugePages_Total:       4
HugePages_Free:        4
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:    1048576 kB
加载uio驱动
#modprobe uio_pci_generic
#modprobe uio
#lsmod  | grep uio
uio_pci_generic        16384  0
uio                    20480  1 uio_pci_generic

build dpdk

#cd /data/sandbox/dpdk-17.11
#make install  T=x86_64-native-linuxapp-gcc
或者指定目录:
#make install  T=x86_64-native-linuxapp-gcc DESTDIR=/opt/dpdk
#cd x86_64-native-linuxapp-gcc/

绑定网卡到uio驱动

  • dpdk的应用程序要使用某块网卡是,需要使用tools/pci_unbind.py将网卡绑定到驱动uio_pci_generic
  • 在dpdk对网卡的称呼是port, 就是网口。

先把eth0 设备down掉,才能,将eth0绑定成功

#ifdown eth0

#ethtool -i eth1
driver: igb

将eth0网卡绑定到uio驱动:

#python usertools/dpdk-devbind.py --bind=uio_pci_generic eth0  //eth0绑定到驱动uio_pci_generic

使用 usertools/dpdk-devbind.py 查看网卡状态:

[root@jiangyi02.xxx /data/sandbox/dpdk-17.11]
#python usertools/dpdk-devbind.py --status

Network devices using DPDK-compatible driver
============================================
0000:01:00.0 '82580 Gigabit Network Connection 150e' drv=uio_pci_generic unused=

Network devices using kernel driver
===================================
0000:01:00.1 '82580 Gigabit Network Connection 150e' if=eth1 drv=igb unused=uio_pci_generic
0000:06:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' if=ens6f0 drv=ixgbe unused=uio_pci_generic
0000:06:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection 10fb' if=ens6f1 drv=ixgbe unused=uio_pci_generic

编译一个简单的DPDK程序

编译之前,首先,声明环境变量: RTE_SDK RTE_TARGET

其中RTE_SDK是DPDK的安装目录,RTE_TARGET是DPDK目标环境目录。

[root@jiangyi02.xxx /data/sandbox/dpdk-17.11]
#export RTE_SDK=/data/sandbox/dpdk-17.11

[root@jiangyi02.xxx /data/sandbox/dpdk-17.11]
#export RTE_TARGET=x86_64-native-linuxapp-gcc

在examples目录里面编译一个简单的应用:

cd examples/helloworld/
make
[root@jiangyi02.xxx /data/sandbox/dpdk-17.11/examples/helloworld/build]
#./helloworld
EAL: Detected 24 lcore(s)
EAL: Probing VFIO support...
EAL: PCI device 0000:01:00.0 on NUMA socket 0
EAL:   probe driver: 8086:150e net_e1000_igb
EAL: PCI device 0000:01:00.1 on NUMA socket 0
EAL:   probe driver: 8086:150e net_e1000_igb
EAL: PCI device 0000:06:00.0 on NUMA socket 0
EAL:   probe driver: 8086:10fb net_ixgbe
EAL: PCI device 0000:06:00.1 on NUMA socket 0
EAL:   probe driver: 8086:10fb net_ixgbe
hello from core 1
hello from core 2
hello from core 3
hello from core 4
hello from core 5
hello from core 6
hello from core 7
hello from core 8
hello from core 9
hello from core 10
hello from core 11
hello from core 12
hello from core 13
hello from core 14
hello from core 15
hello from core 16
hello from core 17
hello from core 18
hello from core 19
hello from core 20
hello from core 21
hello from core 22
hello from core 23
hello from core 0

Docs

http://doc.dpdk.org/guides/linux_gsg/index.html

https://www.jianshu.com/p/dcb6ccc83ea5

转载于:https://www.cnblogs.com/muahao/p/10826461.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值