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 查看网卡状态:

[[email protected] /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目标环境目录。

[[email protected] /data/sandbox/dpdk-17.11]
#export RTE_SDK=/data/sandbox/dpdk-17.11

[[email protected] /data/sandbox/dpdk-17.11]
#export RTE_TARGET=x86_64-native-linuxapp-gcc

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

cd examples/helloworld/
make
[[email protected] /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

时间: 2024-10-14 04:34:10

dpdk快速编译使用的相关文章

mtcp的快速编译(连接)

mtcp的快速编译 http://mos.kaist.edu/guide/config/03_build_mtcp.html 介绍DPDK中使用mtcp的文档 https://dpdksummit.com/Archive/pdf/2016Asia/DPDK-ChinaAsiaPacificSummit2016-Park-FastUser.pdf

DPDK快速上手指南(18.02)

DPDK快速上手(linux) 本文档主要来自linux_gsg-18.02.pdf的翻译,翻译肯定有不妥之处,请批评指正,我会随后修改,不胜感激. 1. 介绍 本文档包含有关DPDK(Data Plane Development Kit的缩写)软件的安装和配置的说明,目的就是让用户快速用起来.本文档描述怎样在linux应用环境下编译和运行一个DPDK应用程序,而不过多深入细节. 1.1文档路线图 以下是针对所有DPDK文档建议的阅读顺序: 发布说明(Release Notes):提供具体的发布

[dpdk] SDK编译-简单扼要版

0. 前提: 环境是CentOS7,archlinux编译有问题,不知道却什么. 1. 解压: [[email protected] dpdk]# tar Jxf dpdk-2.2.0.tar.xz 2. 设置环境变量 [[email protected] dpdk-2.2.0]# export RTE_SDK=/root/src/thirdparty/dpdk/dpdk-2.2.0 [[email protected] dpdk-2.2.0]# export RTE_TARGET=x86_64

[dpdk] SDK编译配置

前言: dpdk-16.07.2 与 内核Linux-3.10.0-514.6.1.el7.x86_64 编译的时候有个关于kni的错误 CC [M] /root/src/thirdparty/dpdk/dpdk-stable-16.07.2/x86_64-native-linuxapp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.o /root/src/thirdparty/dpdk/dpdk-stable-16.07.2/x86_64-nat

mysql 5.5及以上版本快速编译安装,直接复制粘贴就好,接近无人值守

转眼间已到2015年,过去的几个月,学习了不少东西,也总结了不少,期间遇到不少问题,很多都是搜索无果,然后自己慢慢研究,思考的多了也就想把自己的东西分享出来,虽说不是最优秀的,但也绝对能足以应付工作上的一些问题,如果内容有问题,还请各位大牛指正,以帮助小生进步,多谢. 本文以mysql5.5.40为例,过程只有少量文字说明,可能需要略懂一些基础知识才能看懂. 本文仅为快速部署,使用时可以直接复制粘贴,另外当作备份,方便日后查看,况且mysql几乎是配置一次能用3,5年. ============

vue: WebStorm设置快速编译运行

WebSorm是一款优秀的前端开发工具,而Vue项目可以使用Node进行编译运行,平常我们可以通过命令行部署项目进行调试. 本文介绍设置Webstorm进行快速部署Vue项目. 第一步 点击启动快捷按钮旁边的向下小箭头,在列表中选择Edit选项: 第二步 打开启动设置页面后,点击左上角的加号添加新的运行方式: 第三步 在弹出的选择框中,选择node.js启动模式: 第四步 在新打开的设置页面中,在红色圈中的地方设置如图路径的文件: 至此设置成功,直接点启动按钮就可以部署项目. 原文地址:http

WinCE6.0学习笔记之三——快速编译驱动及BSP

转自:http://blog.chinaunix.net/uid-1818867-id-2835826.html 在WinCE下面,创建工程,然后编译是需要花很长时间的.当我们第一编译完工程以后,如果需要改我们的驱动或者BSP,我们是不需要重新编译整个工程的: 1. 如果更改了driver,以WinCE6.0为例,我们可以在菜单里面选择“build”->“Open Release Directory in Build Window” ,然后在弹出的命令行窗口中,通过dos命令切换到你要编译的dr

如何快速编译mediatek\operator下面代码

mediatek\operator下面有单独的apk,也有overlay的数据,单独的apk会配置anroid.mk,找到对应的路径直接build. 如果是overlay,则编译原来应用的路径,例如 \mediatek\operator\OP02\SPEC0200\SEGA\OverLayResource\packages\apps\Launcher2\res\xml 需要编译mm packages/apps/Launcher2

Android工程运用阿里的freeline快速编译

git地址:https://github.com/alibaba/freeline 原来编译一次需要几分钟甚至几十分钟的android工程,运用freeline,1分钟甚至几秒钟就编译好了,如下图,就只有4.2秒,编译真的好快! 配置好gradle文件之后,会从网上自动下载freeline相关包.下载好之后再在CtripBaseApplication.java文件中加入FreelineCore.init(this);该句. 然后需要在该工程下运行cmd命令(shift+右键)可以在当前文件夹下打