linux相关

编译和运行DPDK示例程序

2019-08-28  本文已影响0人  古埃尔公园

DPDK(Data Plane Development Kit)是数据平面开发工具包,由用于加速在各种CPU架构上运行的数据包处理的库组成。

在Linux上部署DPDK的方法请参考:
在Linux(CentOS)上部署DPDK------命令行方式

1.DPDK 应用程序编译


该章节的内容参照自官网的DPDK build sample apps

当DPDK的target环境创建好后(例如x86_64-native-linuxapp-gcc),x86_64-native-linuxapp-gcc目录中会包含编译应用程序的库和头文件。

在编译DPDK应用程序之前,首先需要指定两个环境变量:

在DPDK的examples路径下面有许多示例应用,这里以其中的helloworld为例进行编译:

cd /home/dpdk-stable-18.11.2/examples/helloworld/
export RTE_SDK=/home/dpdk-stable-18.11.2
export RTE_TARGET=x86_64-native-linuxapp-gcc

make
  CC main.o
  LD helloworld
  INSTALL-APP helloworld
  INSTALL-MAP helloworld.map

DPDK的examples路径下面的应用均可以通过这种方式编译,也可以直接在examples路径下面运行make,将这些应用全都编译好。

2.DPDK 应用程序运行


在运行应用程序之前,需要确保:

DPDK应用程序与DPDK target环境的环境抽象层EAL(Environmental Abstraction Layer )库相关联,该库提供了一些通用于每个DPDK应用程序的选项。

./helloworld [-c COREMASK | -l CORELIST] [-n NUM] [-b <domain:bus:devid.func>] \
          [--socket-mem=MB,...] [-d LIB.so|DIR] [-m MB] [-r NUM] [-v] [--file-prefix] \
          [--proc-type <primary|secondary|auto>]

EAL的详细配置请参照:DPDK EAL参数

可按照下列参数运行./helloworld

./build/helloworld -l 0-3 -n 4

其中-l命令指定cpu cores list是EAL必须的配置;若没有指定--socket-mem,则默认会按照预留的hugepages size来分配。

上一篇下一篇

猜你喜欢

热点阅读