DPDK初步-第一个例子

准备条件

Part 1 BIOS
对于额外的HPET定时器和电源管理功能以及小数据包的高性能,可能需要更改BIOS设置。

1. HPET功能

2. Running DPDK Applications Without Root Privileges

3. 电源管理

4. Linux Core Isolation(DPDK专用core)
虽然DPDK应用程序使用的线程固定在系统上的逻辑内核中,但Linux调度程序也可以在这些内核上运行其他任务。(逻辑内核?)
isolcpus 

5. 加载DPDK KNI内核模块
如果要运行DPDK内核NIC接口(KNI)示例应用程序。

6.  使用Linux IOMMU Pass-Through并通过英特尔®VT-d运行DPDK
虚拟化?

NOTE: 如果启用UEFI安全引导,则Linux内核可能会禁止在系统上使用UIO。

Part 2 Tools and Libraries
blah blah 大致都满足
gcc: 在某些发行版中,默认情况下会启用某些特定的编译器标志和链接器标志,并影响性能(例如,-fstack-protector)。


Part 3 运行DPDK应用程序
1.
Kernel version >= 3.2
glibc >= 2.7
内核配置:对于其他内核版本(centos ?),应该为DPDK启用的选项包括:
  • HUGETLBFS
  • PROC_PAGE_MONITOR support
  • HPET and HPET_MMAP configuration options should also be enabled if HPET support is required. 

2.
HugePage(需打开HUGETLBFS
对于1G页面,系统启动后无法保留大页面内存。
在IBM POWER系统上,应将nr_overcommit_hugepages设置为与nr_hugepages相同的值。
细节看文档。
附:
配置Hugepage:  https://www.cnblogs.com/yhp-smarthome/p/7500658.html
dpdk中文指南?: http://dpdk-docs.readthedocs.io/en/latest/index.html


DPDK及应用编译运行

安装:
make config T=x86_64-native-linuxapp-gcc
#要打开gdb调试功能,则export EXTRA_CFLAGS="-O0 -g"之后编译#
make
make install T=x86_64-native-linuxapp-gcc DESTDIR=install
export RTE_TARGET=x86_64-native-linuxapp-gcc

source usertools/dpdk-setup.sh

编译examples:
cd examples/helloworld/
export RTE_SDK=/home/cse/Public/dpdk-stable-17.11.3   //修改
export RTE_TARGET=x86_64-native-linuxapp-gcc

make


常用命令

1. 查看当前系统hugepages信息
     grep -i huge /proc/meminfo
2. 使用dmidecode检查内存配置
     dmidecode -t memory | grep Locator
3. 使用dmidecode确定内存频率
     dmidecode -t memory | grep Speed
4. 查看是否支持hpet
     grep hpet /proc/timer_list
5. 查看ethe设备所在socket的lcore
     cat /sys/class/net/eth1/device/local_cpulist

你可能感兴趣的:(乱披风)