EAL 命令行选项

EAL 命令行选项
    The usual EAL commandline usage for pktgen is:
    pktgen -c COREMASK -n NUM \
             [-m NB] \
             [-r NUM] \
             [-b ] \
             [--proc-type primary|secondary|auto] -- [pktgen options]
            
    
  EAL options:
  -c COREMASK         : A hexadecimal bitmask of cores to run on
  -n NUM              : Number of memory channels
  -v                  : Display version information on startup
  -d LIB.so           : Add driver (can be used multiple times)
  -m MB               : Memory to allocate (see also --socket-mem)
  -r NUM              : Force number of memory ranks (don't detect)
  --xen-dom0          : Support application running on Xen Domain0 without
                        hugetlbfs
  --syslog            : Set syslog facility
  --socket-mem        : Memory to allocate on specific
                        sockets (use comma separated values)
  --huge-dir          : Directory where hugetlbfs is mounted
  --proc-type         : Type of this process
  --file-prefix       : Prefix for hugepage filenames
  --pci-blacklist, -b : Add a PCI device in black list.
                        Prevent EAL from using this PCI device. The argument
                        format is .
  --pci-whitelist, -w : Add a PCI device in white list.
                        Only use the specified PCI devices. The argument
                        format is <[domain:]bus:devid.func>. This option
                        can be present several times (once per device).
                        NOTE: PCI whitelist cannot be used with -b option
  --vdev              : Add a virtual device.
                        The argument format is [,key=val,...]
                        (ex: --vdev=eth_pcap0,iface=eth2).
  --vmware-tsc-map    : Use VMware TSC map instead of native RDTSC
  --base-virtaddr     : Specify base virtual address
  --vfio-intr         : Specify desired interrupt mode for VFIO
                        (legacy|msi|msix)
  --create-uio-dev    : Create /dev/uioX (usually done by hotplug)

EAL options for DEBUG use only:
  --no-huge           : Use malloc instead of hugetlbfs
  --no-pci            : Disable pci
  --no-hpet           : Disable hpet
  --no-shconf         : No shared config (mmap'd files)
 
————————————————————————————————————————————————————————————————————————————————————————————
对于DPDK程序来说,-c/-l 和 -n 是必须指定的,其它的都是可选的
这就好了,看关键的就行,别的需要时再看吧

-c COREMASK 表示使用的cpu 掩码,如果你有4个CPU下标是0,1,2,3那么就可以使用
-c -0xF(二进制是00001111)
或者 -l 0-3

-n 网上说可以参考这个
dmidecode -t 17 | grep -c 'Size:'
我的显示是64
本人一般给个 -n 4
————————————————————————————————————————————————————————————————————————————————————————————

pktgen 需要2个及以上的逻辑核心,第一个核 lcore 0 用来执行
命令行,定时器,显示,相关的
别的核 1-n 用来收发报文,以及和报文相关的逻辑
注意:你不需要实际启动系统的lcore 0, pktgen会使用-c mask的第一个lcore作为上面的lcore 0

————————————————————————————————————————————————————————————————————————————————————————————
在介绍几个常用的EAL参数
-m size        :CPU能够分配的内存数目,平均分
--socket-mem   :cpu能分配的内存数目,指定分配 --socket-mem="s1,s2,s3"
--huge-dir     : 指定大页内存挂在在哪个路径
--proc-type    : 指定运行的进程类型,用于多进程,写auto就行,让系统自动识别
--file-prefix  :指定大页内存文件的 文件名前缀
————————————————————————————————————————————————————————————————————————————————————————————
一个典型的启动参数
pktgen -l 0-4 -n 3 --proc-type auto --socket-mem 256,256
             -b 0000:03:00.0 -b 0000:03:00.1 \
              --file-prefix pg \
             -- -P -m "[1:3].0, [2:4].1

-c 0x1f表示(0b11111) 有5个lcore.第一个用来进行管理
-n 内存通道数目
--proc-type auto 用于多进程
--socket-mem 256,256 表示每个CPU分配的内存,这里是两个。
-b 黑名单
--file-prefix pg 大页内存文件名前缀

-P 所有端口
-m 表示1对0进行接收,3对1进行发送,2对1进行读取,4对1进行发送,下一节进行介绍

你可能感兴趣的:(pktgen-dpdk,pktgen)