跳转至

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, ...]

    Text Only
    1
    2
    例如:
    --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> 指定模块等级

    Text Only
    1
    2
    #例如:
    --log-level lib.eal:debug
    

  • --trace=<regex-match> 基于正则表达式的追踪.默认不启用.需要指定特定追踪模块以启用跟踪功能.

    Text Only
    1
    2
    3
    4
    #只跟踪EAL模块
    --trace=eal
    #跟踪所有模块
    --trace=.*
    

  • --trace-dir=<directory path> 指定日志文件路径,默认路径会/home

    Text Only
    1
    2
    #例如,放到/tmp
    --trace-dir=/tmp
    

  • --trace-bufsz=<val> 指定每个线程跟踪输出时可用的最大内存.有效单位:B or K or M for Bytes, KBytes and MBytes.默认大小是1MB

    Text Only
    1
    --trace-bufsz=2M
    

  • --trace-mode=<o[verwrite] | d[iscard] > 指定日志超出指定最大值后处理方式,覆盖丢弃.默认是覆盖

    Text Only
    1
    --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位大小.

    Text Only
    1
    2
    3
    4
    5
    6
    --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预分配内存大小

    Text Only
    1
    2
    #在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> 设置系统日志工具,可用的有:
    Text Only
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    auth
    cron
    daemon
    ftp
    kern
    lpr
    mail
    news
    syslog
    user
    uucp
    local0
    local1
    local2
    local3
    local4
    local5
    local6
    local7