DPDK在国产龙芯平台的移植及评估
发布时间:2024-03-31 19:26
DPDK系Intel公司开发的开源高性能数据平面开发套件,可通过一系列功能库为使用者提供网络数据处理的二次开发支持。DPDK基于内核UIO机制,在业务处理过程中网络数据完全在用户态处理,避免了在内核态与用户态间的数据拷贝,可充分利用CPU的运算能力实现网络数据高速转发。目前,该开发套件的官方声明仅支持X86、Power、Arm平台,并不支持基于MIPS架构的龙芯平台。通过分析DPDK底层运行机制结合龙芯处理器特性,实现其在龙芯平台上的移植。通过进一步的性能对比测试表明,相比于linux内核的网络数据转发方式,转发性能实现成倍增长。
【文章页数】:5 页
【部分图文】:
本文编号:3944396
【文章页数】:5 页
【部分图文】:
图1DPDK架构
DPDK开发套件包含硬件抽象库(EAL)、网卡轮询驱动、内存池管理、无锁队列等一系列组件,其系统架构如图1所示。从图1中可以看出DPDK的EAL组件承上启下,在内核空间、用户空间均有出现,EAL完成对各种硬件平台、操作系统的适配工作,也是移植中需重点关注的部分。
图2DPDK代码结构
本次移植基于DPDK17.11.4版本进行,代码结构如图2所示。在DPDK中新增架构支持需调整config、lib、mk目录相关的配置文件、EAL组件和编译配置[4]。
图3rte_atomic32_add实现
原子操作包括内存屏障函数,16位、32位、64位的原子加减、CAS函数。这里以rte_atomic32_add为例做说明,其龙芯平台实现如图3所示[5-6]。(2)CPU时间标签计数器操作
图4rte_rdtsc实现
该操作用于快速获得CPU时间戳,可避免使用开销较大的系统函数gettimeofday。这在数据包轮询处理中非常有用。其函数为rte_rdtsc,实现如图4所示[5-6]。其他组件的移植实现不再详细叙述。
本文编号:3944396
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3944396.html