
DPDK
cuibin1991
这个作者很懒,什么都没留下…
展开
-
Docker学习(五)DPDK 网卡绑定和解绑
我是用f-stack中的dpdk工具进行网卡绑定和解绑的。1.网卡绑定进入dpdk工具目录cd /data/f-stack/dpdk/usertools/查看网卡信息./dpdk-devbind.py --status关掉网卡ifconfig ens33down绑定网卡到dpdk驱动上./dpdk-devbind.py --bind=igb_uio ens33查看网卡状态2.网卡解绑sudo python dpdk-devbind.py -u 0000:.原创 2020-06-12 16:24:08 · 1708 阅读 · 0 评论 -
DPDK学习(四)DPDK例子编译
本文以f-stack中dpdk为例编译用例及运行设置环境变量export RTE_SDK=/data/f-stack/dpdk切换目录cd $RTE_SDK构建dpdkmake defconfigmake构建应用程序cd examples/helloworld/设置环境变量RTE_TARGET的值export RTE_TARGET=build编译make运行./build/helloworld...原创 2020-06-03 12:06:30 · 740 阅读 · 0 评论 -
DPDK内存(四)内存函数
1.DPDK内存的初始化(rte_eal_init函数)头文件:dpdk/lib/librte_eal/common/include/rte_eal.h源文件:dpdk/lib/librte_eal/linuxapp/eal/eal.c源码:rte_eal_init(int argc, char **argv){ ······ rte_config_init(); if (...原创 2019-12-18 09:37:28 · 422 阅读 · 0 评论 -
DPDK内存(三)内存管理
前言:DPDK的内存管理主要分布在几个大的部分:(1)大页初始化与管理,内存管理。使用大页可以减少页表开销,是为了尽量减少TBL miss导致的性能损失。(2)基于大页,DPDK又进一步细化管理这部分内存,使得分配,回收更加方便。1. 内存管理的对象说明大页内存:linux内存是按照页来划分的,默认的每页为4K大小,对应的就存在页表(TBL)来记录每个页的地址等该单元的信息...原创 2019-12-13 16:26:34 · 725 阅读 · 0 评论 -
DPDK内存(二)内存申请操作
EAL提供了一个malloc API用于申请任意大小内存。这个API的目的是提供类似malloc的功能,以允许从hugepage中分配内存并方便应用程序移植。通常,这些类型的分配操作不应该在数据面处理中进行,因为他们比基于池的分配慢,并且在分配和释放路径中使用了锁操作。但是,他们可以在配置代码中使用。1.Cookies当CONFIG_RTE_MALLOC_DEBUG开启时,分配的内...原创 2019-12-13 10:15:50 · 1228 阅读 · 0 评论 -
DPDK内存(一)存储系统
简介一般而言,存储系统不仅仅指用于存储数据的磁盘、磁带和光盘存储器等,还包括内存和CPU内部的Cache。当处理完毕之后,系统还要提供数据存储的服务。存储系统的性能和系统的处理能力息息相关,如果CPU性能很好,处理速度很快,但是配备的存储系统吞吐率不够或者性能不够好,那CPU也只能处于忙等待,从而导致处理数据的能力下降。1.系统架构的演进在当今时代,一个处理器通常包含多个核心(Core...原创 2019-12-11 18:49:21 · 281 阅读 · 0 评论 -
DPDK内存(一)基本概念
引言内存管理是数据面开发套件(DPDK)的一个核心部分,以此为基础,DPDK的其他部分和用户应用得以发挥其最佳性能。标准大页现代CPU架构中,内存管理并不以单个字节进行,而是以页为单位,即虚拟和物理连续的内存块。这些内存块通常(但不是必须) 存储在RAM中。在英特尔®64和IA-32架构上,标准系统的页面大小为4KB。基于安全性和通用性的考虑,软件的应用程序访问的内存位置使用...原创 2019-10-21 17:50:41 · 255 阅读 · 0 评论 -
DPDK学习(三)DPDK多进程解读
1.启动primary和secondary进程第一步:先切换到simple_mp目录下,在dpdk/examples/multi_process/simple_mp目录下第二步:编译make第三步:运行先启动primary进程,-l参数指定使用的逻辑核为core0和core1,–proc-type参数可以省略,默认第一个进程是primary进程,也可以指定值auto,表示自...原创 2019-09-30 14:54:22 · 2198 阅读 · 0 评论 -
DPDK学习(二)DPDK多进程支持
在DPDK中,多进程支持旨在允许一组DPDK进程以简单的透明方式协同工作,以执行数据包处理或其他工作负载。为了支持此功能,已经对核心的DPDK环境抽象层(EAL)进行了一些增加。EAL已被修改为允许不同类型的DPDK进程产生,每个DPDK进程在应用程序使用的hugepage内存上具有不同的权限。现在可以指定两种类型的进程:primary processes, 可以初始化,拥有共享内存的完全权限...原创 2019-09-23 16:18:25 · 3840 阅读 · 1 评论 -
DPDK学习(一)DPDK简介
1.DPDK介绍Intel® DPDK 全称 Intel Data Plane Development Kit,是intel提供的数据平面开发工具集,为Intel architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持,它不同于Linux系统以通用性设计为目的,而是专注于网络应用中数据包的高性能处理。其工作在用户层,取代传统Linux系统中的网络数据报文处理。...原创 2019-09-19 13:35:44 · 2194 阅读 · 0 评论