DPDK多进程支持

DPDK的多进程支持允许主进程和辅助进程协同处理数据包。主进程负责初始化共享内存,辅助进程则能访问共享内存并创建对象。在多进程模式下,共享内存的正确使用是关键,DPDK通过记录内存配置文件实现进程间的内存共享。simple_mp和symmetric_mp示例展示了如何运行多进程DPDK应用。然而,多进程应用需要注意ASLR关闭、逻辑核分配、中断处理和二进制函数指针等问题。
摘要由CSDN通过智能技术生成

一. 介绍

在DPDK中,多进程支持旨在允许一组DPDK进程以简单的透明方式协同工作,来处理数据包或其他工作负载。为了支持此功能,已经对核心DPDK环境抽象层(EAL)进行了一些增加。

EAL已被修改为允许不同类型的DPDK进程被产生,每个DPDK进程在应用程序使用的hugepage内存上具有不同的权限。 现在有两种类型的进程指定:

a.主进程,他能初始化和拥有共享内存的所有权限;

b.辅进程,不能初始化共享内存,但是能访问已初始化的共享内存和在其中创建对象。

独立DPDK进程是主进程,而辅助进程只能与主进程一起运行,或者主进程已经为其配置了hugepage共享内存。

为支持这两种进程类型,以及后面描述的多进程设置,EAL提供了附加的命令行:

--proc-type: 为进程指定类型,是主或辅。

--file-prefix:允许不想合作的进程有不同的内存区域。

1.共享内存

使用dpdk来开发多进程应用程序的关键是保证内存资源能够在多个进程之间正确的使用。一旦在多个进程间有共享的内存块访问,那面多个进程内部通讯(IPC)将变得相当简单。

在主进程或独立进程中的应用程序启动时,DPDK将内存配置文件的详细信息记录到内存映射文件 - 使用的hugepages,映射的虚拟地址,存在的内存通道数等。当从进程启动时,这些文件被读取,并且EAL在从进程中重新创建相同的内存配置,以便所有内存区域在进程之间共享,并且所有指向该内存的指针都是有效的,并且指向相同的处理对象。

2.开发模式

2.1对称/对等进程</

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值