7. EAL parameters(dpdk参数介绍)

2023-11-22 20:48

本文主要是介绍7. EAL parameters(dpdk参数介绍),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

https://doc.dpdk.org/guides-18.11/linux_gsg/linux_eal_parameters.html?highlight=parameters 

版本: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[@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>
    添加一个虚拟设备,格式如下:
    <driver><id>[,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>
    设置当前进程类型,详细参考https://blog.csdn.net/shaoyunzhe/article/details/78840419

7.1.4. Memory-related options(存储相关参数)

  • -n <number of channels>
    设置每个处理器socket的内存通道数。内存通道参见https://blog.csdn.net/m0_37561165/article/details/81704977
  • -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(存储相关参数)

  • --legacy-mem
    使用传统DPDK存储分配模式。
  • --socket-mem <amounts of memory per socket>
    预分配每个socket内存大小。参数用逗号分隔列表值。例如:
    --socket-mem 1024,2048
    意思是在0号socket上预分配1024M,在1号socket上分配2048M。
  • --socket-limit <amounts of memory per socket>
    设置每个socket的内存上限(仅仅是非传统存储模式),0代表关闭限制。
  • --single-file-segments
    在hugetlbfs 中创建少量的文件(仅仅是非传统存储模式)。
  • --huge-dir <path to hugetlbfs directory>
    使用指定的hugetlbfs目录而不是自动检测的。hugetlbfs 是大页使用目录。
  • --huge-unlink
    创建大页文件后Unlink (暗指不支持多进程)。
  • --match-allocations
    释放hugepages回到系统完全像他们最初分配前一样。

7.2.4. Other options

  • --syslog <syslog facility>
    设置日志设备,有效的日志设备如下:
auth
cron
daemon
ftp
kern
lpr
mail
news
syslog
user
uucp
local0
local1
local2
local3
local4
local5
local6
local7

 

这篇关于7. EAL parameters(dpdk参数介绍)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/412812

相关文章

详解Spring Boot接收参数的19种方式

《详解SpringBoot接收参数的19种方式》SpringBoot提供了多种注解来接收不同类型的参数,本文给大家介绍SpringBoot接收参数的19种方式,感兴趣的朋友跟随小编一起看看吧... 目录SpringBoot接受参数相关@PathVariable注解@RequestHeader注解@Reque

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja

spring 参数校验Validation示例详解

《spring参数校验Validation示例详解》Spring提供了Validation工具类来实现对客户端传来的请求参数的有效校验,本文给大家介绍spring参数校验Validation示例详... 目录前言一、Validation常见的校验注解二、Validation的简单应用三、分组校验四、自定义校

SpringBoot中Get请求和POST请求接收参数示例详解

《SpringBoot中Get请求和POST请求接收参数示例详解》文章详细介绍了SpringBoot中Get请求和POST请求的参数接收方式,包括方法形参接收参数、实体类接收参数、HttpServle... 目录1、Get请求1.1 方法形参接收参数 这种方式一般适用参数比较少的情况,并且前后端参数名称必须

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�