
深入浅出dpdk笔记
文章平均质量分 70
峰巢
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
dpdk读书笔记--阈值的设置
(1)tx_rs_thresh控制何时批量更新描述符的RS位,通知网卡发送数据包。(2)tx_free_thresh控制何时批量释放已完成发送的数据包描述符,以便它们可以被重新使用。(3)当接收队列中空闲的描述符数量降到rx_free_thresh以下时,DPDK会触发一个事件,促使应用程序向网卡提供更多的描述符,以保证接收队列不会因为空间不足而无法接收新到达的数据包。这有助于避免数据包丢失和接收延迟,从而维持高吞吐量和低延迟的网络性能。原创 2024-07-23 11:23:09 · 700 阅读 · 0 评论 -
深入浅出读书笔记----性能调优
如果将队列的信息设置的很长就会占用缓存资源,可能会导致性能的降低;但是也不是缓存的报文越长越好,因为缓存的报文越长,占用的资源越多,当要缓存的内容不足以保存下申请的报文时,就会将缓存的内容清掉,清掉的这些数据可能是当前需要的,造成性能的降低。还有一个原因就是减少内存读取的次数,包处理的过程如下图,如果处理一个包,由于内存加载都是cache加载,就会把其他包的数据加载上,由于中间流程需要占用比较大的空间,会把之前取到的缓存信息去掉,待处理下一个报文时,需要重新加载,这个时候可能需要从内存加载数据。原创 2024-07-23 11:18:25 · 371 阅读 · 0 评论 -
深入浅出dpdk读书笔记----cache和内存总结
dpdk cache与内存原创 2024-07-08 16:56:23 · 181 阅读 · 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 · 1198 阅读 · 0 评论 -
深入浅出dpdk读书笔记----dpdk的轮询模式
讲dpdk轮询模式之前,首先需要知道传统内核转发的模式,通过对比能够让我们清晰的知道内核 异步中断模式和dpdk的轮询模式有哪些区别,dpdk这种方式有哪些优化。原创 2024-02-26 17:19:53 · 1615 阅读 · 0 评论 -
深入浅出dpdk读书笔记--Mbuf,Mempool
Mbuf头部的大小为两个Cache Line,之后的部分为缓存内容,其起始地址存储在Mbuf结构的buffer_addr指针中,获取网络数据帧中的内容,需要在buffer_addr的基础上加head_room的大小,从而得到网络数据帧的内容。(1)多核访问同一个内存池或者缓冲区时,尽管使用无锁环在一定程度上提升了性能,但是无锁环通过CAS进行比较时,也会消耗很大的性能,在此基础之上,给每个线程申请了一个缓冲池,这样做的好处时实现真正的无锁,没有竞争,缺点就是存在资源的浪费。原创 2024-02-23 14:48:02 · 1814 阅读 · 0 评论 -
深入浅出dpdk读书笔记--pcie与包处理(三)---收发包流程
pcie是报文转发的基础,DMA是网卡和CPU交互的具体方式,这两个知识点就像公路和汽车,外在的硬件已经有了,该启动汽车上路了,所以就有了接下来所讲的内容,dpdk数据的收发包流程。原创 2024-02-23 08:58:03 · 1583 阅读 · 0 评论 -
深入浅出dpdk读书笔记-DDIO
解释一下:处理器收到报文信息时,此时会触发cache不命中,这个时候就会从内存中读取报文的相关信息送到cache中网卡读取信息之后进行处理,也就是寄存器处理流程,处理之后,更新cache消息,为了保证数据的一致性,会把cache中的数据更新到内存中,然后通过pcie将报文发送到网络中。1)处理器更新报文和控制结构体。b)如果该内存没有缓存在Cache中,则在最后一级Cache中分配一块区域,并相应更新Cache表,表明该内容是对应于内存中的某个地址的。1)报文和控制结构体通过PCI总线送到指定的内存中。原创 2024-01-30 17:58:52 · 647 阅读 · 1 评论 -
深入浅出dpdk笔记---------内存(二)
内存方面还有一种优化方案,是预取。但是预取存在较多的局限性,需要把握好度和时机,虽然大多时候软件开发不需要关心底层硬件或者cache的预取机制,但是懂得它的原理对我们进行性能优化有很大的帮助。原创 2024-01-24 20:26:26 · 559 阅读 · 1 评论 -
深入浅出dpdk读书笔记--无锁队列
深入浅出dpdk读书笔记关于无锁环的理解原创 2024-02-01 19:57:49 · 940 阅读 · 1 评论 -
深入浅出dpdk笔记---并行计算
多核并行计算的吞吐率随核数增加而线性扩展,可并行处理部分占整个任务比重越高,则增长的斜率越大。这个是dpdk优化性能一个理论基础,资源局部化、避免跨核共享、减少临界区碰撞、加快临界区完成速率等,都不同程度地降低了不可并行部分和并发干扰部分的占比。原创 2024-01-31 16:29:16 · 593 阅读 · 0 评论 -
深入浅出dpdk笔记-转发框架
转发框架分为两种:RTC(run to cpmplete)运行至终结,pipeline(流水线)模型。原创 2024-02-05 15:09:13 · 935 阅读 · 1 评论 -
深入浅出dpdk笔记----内存
(1)TLB提供的是虚拟地址到物理地址的快速转换服务。当CPU要访问内存时,首先根据当前执行线程的虚拟地址查找TLB。如果TLB中存在该虚拟地址对应的页表条目(即物理地址),则可以直接获取到物理地址,并基于此物理地址进行后续的缓存访问操作(如加载数据到Cache)。所以,从这个角度讲,TLB可以看作是虚拟地址到物理地址映射的一个高速缓存。(2)而Cache Line映射则是针对已经获得的物理地址,如何在Cache内部高效定位和存储内容的过程。原创 2024-01-22 17:12:20 · 1078 阅读 · 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 · 2061 阅读 · 0 评论 -
深入浅出dpdk读书笔记--pcie与包处理(一)---pcie
pcie是一种数组传输协议,它遵循开放系统互联网模型,自上而下分为事务层、链路层、物理层。把流向pcie组件方向的流量称为上游流量;把pcie流向网卡NIC的流量称为下游流量,如图所示:网卡和pcie插槽交互是通过pcie协议,由于它遵循开放系统互联网模型,所以网卡接收方向,是插入头的一个过程,依次增加物理层、数据链层、事务传输层。网卡发送方向是剥头的一个过程:依次剥离实物传输层、链路层、物理层。这些处理都是在硬件层次处理的。原创 2024-02-22 10:38:20 · 909 阅读 · 0 评论