7. EAL parameters(dpdk参数介绍)
本文共 3536 字,大约阅读时间需要 11 分钟。
版本:18.11
此文档介绍全部的EAL参数列表,linux上的任何DPDK应用程序都会用到这些参数。
7.1. Common EAL parameters
以下EAL参数在所有DPDK支持的平台上都是一样的。
7.1.1. Lcore-related options(逻辑线程相关参数)
- -c <core mask> 16进制掩码设置应用程序使用哪些cpu核,eg:-c 3, 3代表的是十六进制0x03,它的二进制是11,假如服务器有8个cpu核,二进制11写成00000011,从右到左依次代表核0-7,11设置使用0和1号核。 备注:注意core编号在不同的平台不一样,需要事先确定好
- -l <core list> 列出使用的cores 参数格式是< c1 > [c] [, c3 (c4),…]在c1、c2等core索引在0到128之间。 这个参数就是明确指定使用哪些核,用列表的形式指定。
- --lcores <core map> lcores指一个EAL线程,这个参数的作用就是将每个EAL线程和物理cpu核进行绑定。 参数格式为:
[<,lcores[@cpus]>...]通过“(”和“)”将lcores和cpu列表进行分组,“-”是一个范围分隔符,“,”作为单一数字分隔符。分组“()”为单一元素组可以省略。“@”可以省略,如果cpu核编号和lcores线程编号有相同的值。eg:"--lcores='1,2@(5-7),(3-5)@(0,2),(0,6),7-8'"表示启动了9个EAL pthread(9个lcore):lcore 0运行于CPU组0x41,也就是CPU(0,6) lcore 1运行于CPU组0x2, 也就是CPU(1) lcore 2运行于CPU组0xe0,也就是CPU(5,6,7) lcore 3-5运行于CPU组0x5,也就是CPU(0,2) lcore 6运行于CPU组0x41,也就是CPU(0,6) lcore 7运行于CPU组0x80,也就是CPU(7) lcore 8运行于CPU组0x100,也就是CPU(8) 使用这个选项,对于给定的lcore ID,可以分配对应的CPU组。它也兼容corelist(' - l')选项的模式。如果‘@cpus’值未指定,‘cpus’的值默认与‘lcore’相等。
!Note对于一个DPDK实例应用,core选项--lcores, -l 或 -c只能使用其中一个
- --master-lcore <core ID> 指定master 线程运行在<core ID>上。dpdk线程分为 master, slave 两种类型,一般 master 做管理相关的,slave 是真正处理业务的线程。
- -s <service core mask> 十六进制位掩码指定哪些cpu 核作为slave线程(服务线程)。
7.1.2. Device-related options(设备相关参数)
- -b, --pci-blacklist <[domain:]bus:devid.func> EAL不会使用黑名单中的pci设备,可以使用多个-b参数。
- -w, --pci-whitelist <[domain:]bus:devid.func> 添加一个pci设备到白名单中。 !Note:一次只能使用-b和-w中的一个参数。
- --vdev <device arguments> 添加一个虚拟设备,格式如下:
[,key=val, ...]例如:--vdev 'net_pcap0,rx_pcap=input.pcap,tx_pcap=output.pcap'
- -d <path to shared object or directory> 加载额外驱动,参数可以是一个驱动文件或是包含多个驱动文件的文件夹。可以使用多个-d选项。
- --no-pci 禁止pci总线
7.1.3. Multiprocessing-related options(多进程相关参数)
- --proc-type <primary|secondary|auto> 设置当前进程类型,详细参考
7.1.4. Memory-related options(存储相关参数)
-n <number of channels>
设置每个处理器socket的内存通道数。内存通道参见 -r <number of ranks> 设置内存ranks数(默认自动检测)。
-m <megabytes> 设置启动时与分配存储数量。
--in-memory 不要创建任何共享数据结构,完全运行在存储中。暗指--no-shconf
和--huge-unlink --iova-mode <pa|va>
强制设置IOVA模式为指定值。
7.1.5. Debugging options
- --no-shconf 不创建共享文件(暗指不支持多进程)。
- --no-huge 使用匿名存储而不是大页(暗指不支持多进程)。
- --log-level <type:val> 为一个特定的组件指定日志级别,例如:
--log-level eal:8可以指定多次。
7.1.6. Other options
-h
, --help 展示帮助信息,列出所有EAL参数。
- -v 展示版本信息。
mbuf-pool-ops-name
: mbuf的内存池名字。
7.2. Linux-specific EAL parameters(EAL linux特性参数)
除了共用的EAl参数,还有EAL linux特性参数。
7.2.1. Device-related options(设备相关参数)
- --create-uio-dev 为设备创建
/dev/uioX
文件并绑定的igb_uio内核驱动(通常由ifb_uio驱动自己完成) - --vmware-tsc-map 使用VMware TSC map而不是本地RDTSC。
- --no-hpet 禁止使用HPET定时器
- --vfio-intr <legacy|msi|msix> 为绑定到VFIO内核驱动的设备指定中断模式。
7.2.2. Multiprocessing-related options(多进程相关参数)
- --file-prefix <prefix name> 为一个DPDK进程设置一个不同的共享文件前缀。使用多个不同的前缀文件允许运行多个独立的dpdk进程组。dpdk支持多进程协同完成工作,多进程使用相同的共享文件组成进程组(进程组里的进程分为primary和secondary)。
- --base-virtaddr <address> DPDK的primary进程尝试使用一个不同的内存映射开始地址。 对于因为地址映射冲突而不能启动的secondary 进程非常有用。
7.2.3. Memory-related options(存储相关参数)
7.2.4. Other options
- --syslog <syslog facility> 设置日志设备,有效的日志设备如下:
authcrondaemonftpkernlprmailnewssysloguseruucplocal0local1local2local3local4local5local6local7
转载地址:http://tdqci.baihongyu.com/