Skip to content

EAL参数 ​


更新于 2021-05-07

常规参数 ​

逻辑核 ​

  • -c <core mask> 设置使用的核对应得16进制掩码.

  • -l <core list> 列出将要使用的核,参数格式<c1>[-c2][,c3[-c4],...],其中 c1, c2表示核索引(0-128)

  • --lcores <core map> 关联逻辑核集合到物理核集合,参数格式<lcores[@cpus]>[<,lcores[@cpus]>...]()表示一组逻辑核;-表示逻辑核范围;,分隔单个逻辑核

注意 ​

--lcores, -l or -c只能用其中的一个.

  • --main-lcore <core ID> 主核是使用的逻辑核ID

  • -s <service core mask>

    作为从核的16进制掩码

设备 ​

  • -b, --block <[domain:]bus:devid.func> 不适用某个PCI设备,可以添加多个-b.

  • -a, --allow <[domain:]bus:devid.func> 增加探测设备.
    注意:-b和-a不能同时使用

  • --vdev <device arguments> 增加虚拟设备,格式: <driver><id>[,key=val, ...]

txt
例如:
--vdev 'net_pcap0,rx_pcap=input.pcap,tx_pcap=output.pcap'
  • -d <path to shared object or directory> 加载额外的驱动库,可以是单个文件或目录。可以添加多个-b

  • --no-pci 禁用PCI总线

多进程 ​

  • --proc-type <primary|secondary|auto> 设置当前进程类型

  • --base-virtaddr <address> 设置DPDK第一个dpdk进程的内存映射地址.避免多个DPDK进程使用的相同的内存映射地址而导致冲突

内存 ​

  • -n <number of channels> 内存通道数

  • -r <number of ranks> 设置内存rank数(默认自动检测)

  • -m <megabytes> 启动时预分配内存总数

  • --in-memory Do not create any shared data structures and run entirely in memory. Implies --no-shconf and (if applicable) --huge-unlink.

  • --iova-mode <pa|va> 指定IOVA模式

调试 ​

  • --no-shconf 不创建共享文件(不支持多个DPDK进程)

  • --no-huge 用匿名内存替代大页内存(不支持多个DPDK进程)

  • --log-level <type:val> 指定模块等级

txt
#例如:
--log-level lib.eal:debug
  • --trace=<regex-match> 基于正则表达式的追踪.默认不启用.需要指定特定追踪模块以启用跟踪功能.
txt
#只跟踪EAL模块
--trace=eal
#跟踪所有模块
--trace=.*
  • --trace-dir=<directory path> 指定日志文件路径,默认路径会/home下
txt
#例如,放到/tmp
--trace-dir=/tmp
  • --trace-bufsz=<val> 指定每个线程跟踪输出时可用的最大内存.有效单位:B or K or M for Bytes, KBytes and MBytes.默认大小是1MB
txt
--trace-bufsz=2M
  • --trace-mode=<o[verwrite] | d[iscard] > 指定日志超出指定最大值后处理方式,覆盖或丢弃.默认是覆盖
txt
--trace-mode=d or --trace-mode=discard

其他 ​

  • -h, --help 列出所有eal参数

  • -v 启动时显示版本信息

  • mbuf-pool-ops-name: mbuf池的可选名字

  • --telemetry 遥测功能,默认启动

  • --no-telemetry 禁用遥测功能

  • --force-max-simd-bitwidth=<val>: 指定SIMD bit位大小.

--force-max-simd-bitwidth=512
#限制SIMD的位宽到64位以禁止所有向量码:
--force-max-simd-bitwidth=64
#禁用SIMD位宽限制
To disable use of max SIMD bitwidth limit:
--force-max-simd-bitwidth=0

Linux特殊参数 ​

设备 ​

  • --create-uio-dev 为绑定到igb_uio的设备创建/dev/uioX文件.(默认igb_uio驱动会自动创建)

  • --vmware-tsc-map 使用VMware TSC map替代RDTSC

  • --no-hpet 不使用HPET定时器

  • --vfio-intr <legacy|msi|msix> 制定绑定到内核VFIO驱动的中断模式

  • --vfio-vf-token <uuid> 指定绑定到VFIO驱动的VF设备标识

多进程 ​

  • --file-prefix <prefix name> 对于一个DPDK进程,使用不同的共享文件前缀.

内存 ​

  • --legacy-mem 使用legacy内存分配模式

  • --socket-mem <amounts of memory per socket> 设置每个socket预分配内存大小

#在socket0上分配1G内存,在socket1上分配2G内存
--socket-mem 1024,2048
  • --socket-limit <amounts of memory per socket> 设置每个socket内存上限

  • --single-file-segments 在hugetlbfs里创建较少的文件(非逻辑模式下使用)

  • --huge-dir <path to hugetlbfs directory> 指定大页内存路径

  • --huge-unlink[=existing|always|never] 创建大页后不链接(不支持第二个进程)

  • --match-allocations 将最初分配的内存归还给系统

其他 ​

  • --syslog <syslog facility> 设置系统日志工具,可用的有:
txt
auth
cron
daemon
ftp
kern
lpr
mail
news
syslog
user
uucp
local0
local1
local2
local3
local4
local5
local6
local7