dpdk
文章平均质量分 66
lsxkugou
这个作者很懒,什么都没留下…
展开
-
dpdk环境初始化异常 “failed to allocate private data“
dpdk默认支持4个Numa节点。所以在编译的时候要用。原创 2023-05-22 17:42:03 · 239 阅读 · 0 评论 -
dpdk rx或tx queue与lcore的数量关系
写网卡仿真器的时候, 遇到了一个问题, 可不可以多个核心对应一条queue, 这样可以大大加速填充的速率, 但会引起竞争条件。遂查询dpdk官方定义。本文摘自intel官方文档。转载 2023-05-18 18:26:38 · 320 阅读 · 0 评论 -
DPDK pci设备初始化过程
设备初始化利用gcc的属性attribute(constructor)定义的函数,可以在main函数执行前运行,还可以指定优先级attribute(constructor(prio)),prio从101开始,值越小越早执行。不指定优先级的版本是优先级更低的。原创 2023-05-18 14:45:02 · 417 阅读 · 0 评论 -
dpdk PA和IOVA模式
举例来说,一种减少分段影响的方式是使用更大的分页——问题虽然没被解决,但是单独的1千兆字节(GB)段比独立的2兆字节(MB)段能大幅度减小分段的数量。但上述的解决方法都不能根本地解决问题,而且整个DPDK社区都习惯了要去解决这些问题,每个DPDK用户(有意或无意)在使用时都会采取相同的思维模式——“我需要X MB内存,但以防万一,我要保留X + Y MB!作为PA的IOVA模式下,分配到整个DPDK存储区的IOVA地址都是实际的物理地址,而虚拟内存的分配与物理内存的分配相匹配。IOMMU就是MMU+IO。转载 2023-05-17 15:00:54 · 454 阅读 · 0 评论 -
dpdk vdev从进程设备获取
因为手上一个项目是网卡模拟器, 因此需要在rx_ring, tx_ring中写东西模拟网卡的收发功能。之前尝试使用物理地址完全解耦, 但是发现该种方案需要大量映射, 性能很差, 大概是发包仪的 1/2。如上图所示, 所有的dpdk程序都会使用hugepage作为存储全局变量的位置。这就是主从进程实现共享变量的原理。至此, 从进程可以通过全局变量去找到这个设备了。在probe函数中, 判断是否为从进程, 如果是从进程, 则尝试从主进程那里获取对应的。每次启动dpdk程序, dpdk对设备进行探测, 这里以。原创 2023-05-08 17:16:56 · 375 阅读 · 0 评论 -
网卡,dma,内存关系
讲述了dpdk dma 和内存 三者的联系原创 2023-04-25 09:00:05 · 954 阅读 · 0 评论