![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
#dpdk
文章平均质量分 60
ling_gang
懂DNS-懂流量采集-高性能服务器开发
展开
-
DPDK 无锁ring, 详解
本文整理下之前的学习笔记,基于DPDK17.11版本源码,主要分析无锁队列ring的实现。rte_ring_tailq保存rte_ring链表创建ring后会将其插入共享内存链表rte_ring_tailq,以便主从进程都可以访问。//定义队列头结构 struct rte_tailq_elem_headTAILQ_HEAD(rte_tailq_elem_head, rte_tailq_elem);//声明全局变量rte_tailq_elem_head,类型为struct rte_tail原创 2022-03-11 22:10:16 · 2317 阅读 · 0 评论 -
dpdk多进程ring用法示例
多进程通信还是很不错的服务端(取ring数据)static const char *_MSG_POOL = "MSG_POOL";static const char *RING_NAME = "t_ring";struct rte_ring *t_ring;struct rte_mempool *message_pool;volatile int quit = 0;const char *tmp="abc!";int main(int argc, char **argv){原创 2022-02-14 10:51:12 · 1032 阅读 · 1 评论 -
DPDK igb/ixgbe/igb_uio bind ubind,网卡解绑
igb是千兆网卡ixgbe是万兆网卡igb_uio 是DPDK用户层网卡驱动一般电脑的文件安装DPDK的文件这个绑定和解除绑定的命令查看网卡的指令是dpdk tool是里面的 ./dpdk_nic_bind.py --statusecho "0000:0c:00.0" > /sys/bus/pci/drivers/igb_uio/unbindecho "0000:0c:00.0" > /sys/bus/pci/drivers/igb/bi.原创 2021-11-02 15:49:14 · 1402 阅读 · 0 评论 -
如何获取Intel平台上网卡的最佳性能,网卡与内存、cpu统一numa
本文档一步一步教你如何在Intel平台上运行DPDK程序以获取最佳性能。7.1. 硬件及存储需求¶为了获得最佳性能,请使用Intel Xeon级服务器系统,如Ivy Bridge,Haswell或更高版本。确保每个内存通道至少插入一个内存DIMM,每个内存通道的内存大小至少为4GB。 Note: 这对性能有最直接的影响。可以通过使用 dmidecode 来检查内存配置:dmidecode -t memory | grep LocatorLocator: DIMM_A1Bank L原创 2021-04-15 17:01:25 · 1676 阅读 · 0 评论 -
dpdk项目使用cmake编译
新版本的dpdk使用了libdpdk.pc来封装库,所以使用cmake相对dpdk旧版本就好用多了用法只需要添加这么几条即可在使用 CMake 作为项目构建工具时,有一些库并没有提供 cmake 文件,往往提供的是 pkg-config 的 .pc 文件,虽然可以在 cmake 中用 include_directories 和 link_directories 来手动指定查找目录,但这样写并不能保证跨平台,甚至同一个库在不同Linux发行版中的位置也不一样,这个时候最好的解决方法就是能.原创 2021-03-26 10:44:11 · 1589 阅读 · 3 评论 -
dpdk相关pktgen 的安装以及使用
pktgen安装1. 需要先正确安装dpdk2. 在地址下载pktgen:http://git.dpdk.org/apps/pktgen-dpdk/refs/一般情况选取最新版本,对应dpdk的最新版本3. 使用meson编译pktgen在编译过程成会发现需要libdpdk库,原因是使用meson,需要使用pkg-config进行编译,但pkg-config默认库目录没有libdpdk的目录,dpdk默认安装之后一般都在目录:/usr/local/lib64/pkgconfig原创 2021-03-08 10:03:34 · 2171 阅读 · 0 评论 -
dpdk:vfio-pci模式下iommu(N+Y)-Huge配置-numa配置
一、 l2fwd运行首先需要绑定网卡,绑定方式如下:(numa禁用+iommu禁用)PS:以挂载ens7 网卡,pci 0000:02:05.0 为例 1.关闭计划用dpdk接管的网卡接口,并查询其pci端口号,可以通过lspci |grep Ethernet查看。此时需要确认本机物理网卡或虚拟网卡为DPDK支持类型,查询网址https://core.dpdk.org/supported/ ifconfig ens37 down2. 安装NIC网卡驱动模块并启动非安全NOIOMMU...原创 2021-03-05 14:09:11 · 7084 阅读 · 0 评论 -
dpdk铺垫知识
用法命令行参数testpmd支持多个命令行参数, 例如:命令行:$./testpmd -l 7-11 -n 4 -- -i --portmask=0x3 --nb-cores=4 --port-topology=paired --rxq=2 --txq=2 --burst=32 --mbcache=32 --rxd=1024 --txd=1024实际命令:[root@localhost dpdk-21.02]# build/app/dpdk-testpmd -l 7-11 --vdev原创 2021-03-01 17:46:44 · 1918 阅读 · 0 评论 -
dpdk比较好的文章
官方文档:https://core.dpdk.org/doc/quick-start/https://dpdk-docs.readthedocs.io/en/latest/sample_app_ug/ip_frag.htmlhttp://doc.dpdk.org/guides/testpmd_app_ug/run_app.htmlDPDK-testpmd系列文章:https://blog.csdn.net/qq_34863439/article/details/102561074ht原创 2021-02-26 17:17:46 · 128 阅读 · 0 评论 -
dpdk环境搭建+创建dpdk项目,并连接dpdk库
新的编译方式DPDK 较新版本已经支持 meson+ninja 的编译方式, 而在 20.11 应该就要抛弃上述老的编译方式. 其中我个人理解, meson 相当于 CMake, ninja 相当于 make.依赖项有些依赖项是和编译方式没有关系的, 比如对 make, gcc, Python, NUMA库等的依赖, 详见:https://doc.dpdk.org/guides/linux_gsg/sys_reqs.html#compilation-of-the-dpdk如果使用新编译方式.原创 2021-02-26 16:24:08 · 10213 阅读 · 3 评论 -
dpdk安装入门
目前网上关于dpdk的介绍相对较老,已经不适合新版本的dpdk的安装了,新版本的dpdk安装使用了nijna那首先需要安装https://blog.csdn.net/gentleliuyy/article/details/110766599Ninja使用教程软件简介Ninja 是Google的一名程序员推出的注重速度的构建工具,一般在Unix/Linux上的程序通过make/makefile来构建编译,而Ninja通过将编译任务并行组织,大大提高了构建速度。Ninja的目标是成为汇编程序原创 2021-01-05 09:58:54 · 890 阅读 · 0 评论