多线程每个线程默认初始化模型_DPDK深度详解:EAL的多线程初始化

DPDK是运行在linux用户面的程序,支持多线程。

线程个数通过启动入参确定

比如“-c 7”

代表可以运行3个线程,十进制的7,相当于二进制的0b111,三个1代表三个线程。

EAL的线程初始化

EAL初始化时候,对线程进行初始化。

在初始化的时候,线程分为主线程和从线程,主线程负责资源的初始化,从线程共享这些资源。

EAL里的主线程和从线程并不是真正执行的业务线程,而是仅仅为了初始化而创建的一模型线程,为了便于线程资源的创建。

真正执行的业务线程会在EAL初始化后再创建。

EAL初始化会创建线程间通信用的pipe通道。

有了模型线程和pipe,线程间可以在初始化阶段相互通信,确保资源初始化能够线程间同步。保证主线程和从线程处于正确的状态。

110ee8acf369d5e9e40a40b6f8a0ed42.png
0eceed60953381728fed4cfa883fb999.png

入上图,显示了主线程和从线程初始化阶段的同步示意图。

EAL对线程初始化的工作:

1、 绑定主线程的lcore

2、 对从线程依次创建pipe通道,同步用

3、 创建从线程

4、 将从线程绑定到lcore

5、 从线程等待主线程的pipe消息

6、 从线程给主线程回响应

7、 主线程收集所有从线程响应

5284641df1911e0d34f110db5e5030d6.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值