- 410
- 0
- 约 33页
- 2017-01-08 发布于辽宁
- 举报
DPDKL2fwd代码走读报告(代码流程分析)分析
一、对于DPDK的认识:主要应用x86通用平台,转发处理网络数据包,定位在不需要专用网络处理器,但通用网络处理器对数据处理性能又不能满足需求的客户。DPDK,搭载x86服务器,成本变化不大,但对数据的处理性能又有非常显著的提高,对传统linux技术做一定的优化,特别之处在于:hugepage,uio,zero copy, cpu affinity等。关于hugetlbpage(在这块大页面上做自己的内存管理系统),之前讲过,它的主要好处当然是通过利用大内存页提高内存使用效率,。由于DPDK是应用层平台,所以与此紧密相连的网卡驱动程序(当然,主要是intel自身的千兆igb与万兆ixgbe驱动程序)都通过uio(用户层驱动、轮询、0拷贝)机制运行在用户态下。cpu affinity(多核架构,核线程绑定物理核)机制是多核cpu发展的结果,,在越来越多核心的cpu机器上,如何提高外设以及程序工作效率的最直观想法就是让各个cpu核心各自干专门的事情,比如两个网卡eth0和eth1都收包,可以让cpu0专心处理eth0,cpu1专心处理eth1,没必要cpu0一下处理eth0,一下又处理eth1,还有一个网卡多队列的情况也是类似,等等,DPDK利用cpu affinity主要是将控制面线程以及各个数据面线程绑定到不同的cpu,省却了来回反复调度的性能消耗,各个线程一个while死循环,专心致志的做事,互不干扰(当然还是有通信的,比如控制面接收用户配置,转而传递给数据面的参数设置等)。总结如下:1、 使用大页缓存支持来提高内存访问效率。2、 利用UIO支持,提供应用空间下驱动程序的支持,也就是说网卡驱动是运行在用户空间 的,减下了报文在用户空间和应用空间的多次拷贝。 3、 利用LINUX亲和性支持,把控制面线程及各个数据面线程绑定到不同的CPU核,节省了 线程在各个CPU核来回调度。 4、 提供内存池和无锁环形缓存管理,加快内存访问效率。在x86服务器,1G/10G/40G网卡包转发,64Byte小包,基本能做到70%以上的转发,而传统linux系统只能达5%左右,在网络大数据流时代,DPDK加码,优势明显。二、对L2fwd的认识:2.1运行配置虚拟机软件:VMWare WorkStation?12.0.0 build-2985596CPU: 2个CPU, 每个CPU2个核心内存: 1GB+网卡:intel网卡*2, 用于dpdk试验;另一块网卡用于和宿主系统进行通信2.2运行环境搭建在root权限下:1)编译dpdk进入dpdk主目录dpdk,输入make install T=x86_64-native-linuxapp-gcc进行编译2)配置大页内存(非NUMA)echo 128 /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepagesmkdir /mnt/hugemount -t hugetlbfs nodev /mnt/huge可以用以下命令查看大页内存状态:cat /proc/meminfo | grep Huge3)安装igb_uio驱动modprobe uioinsmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko4)绑定网卡先看一下当前网卡的状态./tools/dpdk_nic_bind.py --status图1 网卡已经绑定好进行绑定:./tools/dpdk_nic_bind.py -b igb_uio 0000:02:06.0./tools/dpdk_nic_bind.py -b igb_uio 0000:02:05.0如果网卡有接口名,如eth1, eth2, 也可以在-b igb_uio后面使用接口名, 而不使用pci地址。5 ) 设置环境变量:export RTE_SDK=/home/lv/dpdk/dpdk-1.7.0export RTE_TARGET=x86_64-native-linuxapp-gcc之后进入dpdk/examples/l2,运行make,成功会生成build目录,其中有编译好的l2fwd程序。6)运行程序?./build/l2fwd?-c?f?-n?2?--?-q?1?-p?0x3??2.3功能分析:DPDK搭建环境完成后,网卡绑定到相应IGB_UIO驱动接口上,所有的网络数据包都会到DPDK,网卡接收网络数据包,再从另一个网卡转发出去2.4详细流程图(调用关系)如下:(初学者,欢迎讨论QQ:780102849,望各位指错)DPDK L2fwd详细流程图(调用关系)2.5运行截图2.6详细代码注释分析:1 #include stdio.h 2 #include stdlib.h 3 #
您可能关注的文档
- 人民版必修一民主政治的扩展(课件)解析.ppt
- 人民版八年级下册第二单元第五课第3框《校园不容暴力》课件(共22张PPT)解析.ppt
- 人民版必修一专题七第二节《美国1787年宪法》(共33张PPT)解析.ppt
- DHCP三周课程每周2分析.ppt
- 人民版必修一第18课:罗马人的法律人民版解析.ppt
- DCS及现场总线技术_第7章分析.ppt
- DG第8章分析.ppt
- DELL-12G服务器PPT分析.ppt
- 人民版政治八年级(下)第五课《当冲突发生》第3课时“校园不容暴力”(PPT21张)解析.ppt
- DISC性格分析分析.ppt
- 2026年中国窗饰产品市场全景调查与市场供需预测报告.docx
- 2026年中国船舶水下清洗行业深度研究报告:市场需求预测、进入壁垒及投资风险.docx
- 2026年中国船用绞车行业运行态势及十五五盈利前景预测报告.docx
- 2026年中国橱柜行业深度调研报告.docx
- 2026年中国船用绞车市场深度调研及投资前景战略分析报告.docx
- 2026年中国船用配套设备市场发展策略及投资潜力可行性预测报告.docx
- 2026年中国储能材料行业运营态势与投资前景预测分析报告.docx
- 2026年中国储氢材料行业运营现状及发展规划分析报告.docx
- 2026年中国传真机市场深度研究及投资前景咨询报告.docx
- 2026年中国储能变流器(PCS)产业深度评估与发展前景趋势分析研究报告.docx
最近下载
- 2026年农药行业市场需求饱和度与增长潜力分析报告.docx VIP
- 发动机机构4HK1和6HK1发动机维修手册.pdf VIP
- 西门子3RV2902-2AV0欠压脱扣器技术参数说明书.pdf VIP
- 三菱 FX3U系列(MODBUS 通信篇) 用户手册.pdf
- 开角型青光眼多学科决策模式中国专家共识(2025版).docx VIP
- 6G高频段通信技术研发与产业化项目可行性研究报告.docx
- 高考数学知识点梳理精华版完整版.docx VIP
- SN544-4-2005-02 国外国际标准.pdf VIP
- 基于时序动态标签的学习者画像构建与预测方法研究.docx VIP
- 威胁猎人:2024年上半年互联网黑灰产研究报告.pdf VIP
原创力文档

文档评论(0)