![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入浅出dpdk笔记
文章平均质量分 71
峰巢
这个作者很懒,什么都没留下…
展开
-
深入浅出dpdk读书笔记----cache和内存总结
dpdk cache与内存原创 2024-07-08 16:56:23 · 121 阅读 · 0 评论 -
深入浅出dpdk读书笔记--dpdk uio
在通过UIO映射了设备的内存区域后,用户态程序可以配置DMA控制器,使其在CPU的监督下,直接读取内存中的数据传送到硬件设备,或者将硬件设备接收到的数据直接写入内存,从而实现了高效的数据传输。什么是uio,全称为Userspace I/O,是一种Linux内核技术,它允许用户态应用程序直接访问和控制硬件设备,特别是那些通常需要在内核态才能访问的硬件资源,如内存映射I/O(MMIO)、中断和DMA(Direct Memory Access)通道等。通过UIO驱动,硬件设备的资源在内核中被登记,并通过。原创 2024-02-27 17:53:27 · 938 阅读 · 0 评论 -
深入浅出dpdk读书笔记----dpdk的轮询模式
讲dpdk轮询模式之前,首先需要知道传统内核转发的模式,通过对比能够让我们清晰的知道内核 异步中断模式和dpdk的轮询模式有哪些区别,dpdk这种方式有哪些优化。原创 2024-02-26 17:19:53 · 1064 阅读 · 0 评论 -
深入浅出dpdk读书笔记--Mbuf,Mempool
Mbuf头部的大小为两个Cache Line,之后的部分为缓存内容,其起始地址存储在Mbuf结构的buffer_addr指针中,获取网络数据帧中的内容,需要在buffer_addr的基础上加head_room的大小,从而得到网络数据帧的内容。(1)多核访问同一个内存池或者缓冲区时,尽管使用无锁环在一定程度上提升了性能,但是无锁环通过CAS进行比较时,也会消耗很大的性能,在此基础之上,给每个线程申请了一个缓冲池,这样做的好处时实现真正的无锁,没有竞争,缺点就是存在资源的浪费。原创 2024-02-23 14:48:02 · 1080 阅读 · 0 评论 -
深入浅出dpdk读书笔记--pcie与包处理(三)---收发包流程
pcie是报文转发的基础,DMA是网卡和CPU交互的具体方式,这两个知识点就像公路和汽车,外在的硬件已经有了,该启动汽车上路了,所以就有了接下来所讲的内容,dpdk数据的收发包流程。原创 2024-02-23 08:58:03 · 1116 阅读 · 0 评论 -
深入浅出dpdk读书笔记-DDIO
解释一下:处理器收到报文信息时,此时会触发cache不命中,这个时候就会从内存中读取报文的相关信息送到cache中网卡读取信息之后进行处理,也就是寄存器处理流程,处理之后,更新cache消息,为了保证数据的一致性,会把cache中的数据更新到内存中,然后通过pcie将报文发送到网络中。1)处理器更新报文和控制结构体。b)如果该内存没有缓存在Cache中,则在最后一级Cache中分配一块区域,并相应更新Cache表,表明该内容是对应于内存中的某个地址的。1)报文和控制结构体通过PCI总线送到指定的内存中。原创 2024-01-30 17:58:52 · 422 阅读 · 1 评论 -
深入浅出dpdk笔记---------内存(二)
内存方面还有一种优化方案,是预取。但是预取存在较多的局限性,需要把握好度和时机,虽然大多时候软件开发不需要关心底层硬件或者cache的预取机制,但是懂得它的原理对我们进行性能优化有很大的帮助。原创 2024-01-24 20:26:26 · 421 阅读 · 1 评论 -
深入浅出dpdk读书笔记--无锁队列
深入浅出dpdk读书笔记关于无锁环的理解原创 2024-02-01 19:57:49 · 551 阅读 · 1 评论 -
深入浅出dpdk笔记---并行计算
多核并行计算的吞吐率随核数增加而线性扩展,可并行处理部分占整个任务比重越高,则增长的斜率越大。这个是dpdk优化性能一个理论基础,资源局部化、避免跨核共享、减少临界区碰撞、加快临界区完成速率等,都不同程度地降低了不可并行部分和并发干扰部分的占比。原创 2024-01-31 16:29:16 · 427 阅读 · 0 评论 -
深入浅出dpdk笔记-转发框架
转发框架分为两种:RTC(run to cpmplete)运行至终结,pipeline(流水线)模型。原创 2024-02-05 15:09:13 · 527 阅读 · 1 评论 -
深入浅出dpdk笔记----内存
(1)TLB提供的是虚拟地址到物理地址的快速转换服务。当CPU要访问内存时,首先根据当前执行线程的虚拟地址查找TLB。如果TLB中存在该虚拟地址对应的页表条目(即物理地址),则可以直接获取到物理地址,并基于此物理地址进行后续的缓存访问操作(如加载数据到Cache)。所以,从这个角度讲,TLB可以看作是虚拟地址到物理地址映射的一个高速缓存。(2)而Cache Line映射则是针对已经获得的物理地址,如何在Cache内部高效定位和存储内容的过程。原创 2024-01-22 17:12:20 · 950 阅读 · 0 评论 -
深入浅出dpdk读书笔记--pcie与包处理(二)----dma
DMA(Direct Memory Access,直接存储器访问)是一种高速的数据传输方式,允许在外部设备和存储器之间直接读写数据。数据既不通过CPU,也不需要CPU干预。整个数据传输操作在DMA控制器的控制下进行。但是这种方式存在多次访存的情况,而且还存在内存一致性问题,基于此intel提出DDIO技术,是对传统DMA技术的一个优化。DDIO允许I/O设备(如支持该技术的网卡)将数据直接写入或读取CPU的最后级缓存(LLC),而非内存。原创 2024-02-22 11:58:31 · 1341 阅读 · 0 评论 -
深入浅出dpdk读书笔记--pcie与包处理(一)---pcie
pcie是一种数组传输协议,它遵循开放系统互联网模型,自上而下分为事务层、链路层、物理层。把流向pcie组件方向的流量称为上游流量;把pcie流向网卡NIC的流量称为下游流量,如图所示:网卡和pcie插槽交互是通过pcie协议,由于它遵循开放系统互联网模型,所以网卡接收方向,是插入头的一个过程,依次增加物理层、数据链层、事务传输层。网卡发送方向是剥头的一个过程:依次剥离实物传输层、链路层、物理层。这些处理都是在硬件层次处理的。原创 2024-02-22 10:38:20 · 529 阅读 · 0 评论