[发明专利]一种基于Intel DPDK的地址转换方法在审
申请号: | 201710303727.0 | 申请日: | 2017-05-03 |
公开(公告)号: | CN108810181A | 公开(公告)日: | 2018-11-13 |
发明(设计)人: | 陈晓科;李曙光 | 申请(专利权)人: | 普天信息技术有限公司 |
主分类号: | H04L29/12 | 分类号: | H04L29/12 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 蒋欢;王琦 |
地址: | 100080 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 地址转换 内核地址 网口 操作系统内核 内核协议栈 差值计算 地址利用 用户地址 初始化 内存区 配置的 协议栈 申请 发送 配置 应用 | ||
本申请公开了一种基于Intel DPDK的地址转换方法,首先,在初始化时,对内核配置DPDK各个内存区zone的内核地址和用户地址的差值;然后,对每个从操作系统内核协议栈通过DPDK网口向外发送的或通过DPDK网口接收进内核协议栈的包,通过该包的地址利用所述配置的差值计算对应的内核地址。应用本申请公开的技术方案,能够实现快速的DPDK地址转换。
技术领域
本申请涉及计算机软件开发技术领域,特别涉及一种基于Intel DPDK的地址转换方法。
背景技术
DPDK(Data Plane Development Kit,数据面开发套件)是Intel公司提出的一种高速网络数据包的软件开发套件,现已开源。前期主要支持采用Intel CPU及网卡的系统,现已支持IBM Power、Cavium等其他CPU,以及部分非Intel的网卡。DPDK通过旁路Linux系统网络协议栈,直接对网卡进行读写,结合对多核CPU中不同内核的绑定,创造一个没有线程调度、没有系统调用、没有网卡中断的环境,能够实现10Gbit网络小包流量下的线速收发。
DPDK模型示意图如图1所示。DPDK程序都是运行在用户面下的,DPDK直接从PCIE(Peripheral Component Interconnect Express,高速外部设备互连)网口轮询接收网络包,然后送给linux操作系统内核协议栈,即从用户面向内核空间递交网络数据包。这需要从用户空间到内核空间的地址转换才能在内核看到数据包。反过来从linux内核协议栈向DPDK网口发送数据包时也是先要从内核空间将报文送到DPDK的用户空间,再由DPDK填进PCIE网口。而DPDK用户空间是无法访问内核空间的,报文的交互都只能在linux内核完成(因为内核是能看到用户空间内容的,而用户空间不能读出内核的数据),因此,无论是接收方向还是发送方向,linux内核协议栈都要进行“从用户空间向内核的地址转换”。通常这种转换都是要先读出用户任务的任务结构块(structtask_struct),再在任务结构块的任务内存信息(structmm_struct)中找到该地址信息,然后通过pgd_offset函数找到该地址的页目录指针表(PDPT),再通过pud_offset函数找到该地址的中间级的页表的页目录表项PUD,再用pud_offset找到页目录表项(PGD->PUD->PMD),最后将表内地址转成内核地址,才能读写该地址内的数据。而且DPDK和其它用户程序通过ip交互时也需要这种地址转换。因此高效准确的地址转换对DPDK的使用很重要。
上述现有地址转换不仅步骤繁多,效率低,而且需要用户任务完全启动,该任务页表配置完成后才能进行,如果在页表配置完之前进行该任务页表的查找还会出现内存异常问题。通过在intel服务器、PC、嵌入式Soc上对已有的DPDK多个版本的测试,证实:在内存转换处理上现有方法有较高的内存异常风险,而且分配的总内存zone空间越大,DPDK引起系统死机的风险越大。
发明内容
本申请提供了一种基于Intel DPDK的地址转换方法,以快速实现地址转换。
本申请提供了一种基于Intel数据面开发套件DPDK的地址转换方法,包括:
在初始化时,对内核配置DPDK各个内存区zone的内核地址和用户地址的差值;
对每个从操作系统内核协议栈通过DPDK网口向外发送的或通过DPDK网口接收进内核协议栈的包,通过该包的地址利用所述配置的差值计算对应的内核地址。
较佳的,所述配置DPDK各个zone的内核地址和用户地址的差值的方式包括:
在内核空间建立两级表,其中,第一级表为查找表,用于存储zone地址,第二级表为索引表,用于存储各个zone的物理地址和用户地址的差值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于普天信息技术有限公司,未经普天信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710303727.0/2.html,转载请声明来源钻瓜专利网。