dpdk详解_dpdk通俗理解

dpdk详解_dpdk通俗理解DPDK原理探索: igb_uio我们知道,DPDK的核心特性在于绕开内核对网卡设备进行操作,而要实现这一点,DPDK采用的是Linux内核提供的UIO框架,并且对其进行封装,最终暴露给用户的东西就是——。0.0

DPDK原理探索: igb_uio   我们知道,DPDK的核心特性在于绕开内核对网卡设备进行操作,而要实现这一点,DPDK采用的是Linux内核提供的UIO框架,并且对其进行封装,最终暴露给用户的东西就是——。   0.0 什么是?   本质上是一个驱动。它是以一个内核模块的形式被加入到内核中的。我们使用的命令其实就是一个插入内核模块的工具。   的初始化:   
dpdk详解_dpdk通俗理解
dpdk详解_dpdk通俗理解模块初始化   可以看到,的初始化是通过来实现的,而这个函数又是怎么被调用的呢?事实上,在内核模块被插入时,就会触发上图中所设置的初始化回调函数。
dpdk详解_dpdk通俗理解
dpdk详解_dpdk通俗理解igb_uio初始化回调函数   在函数中,我们关心的是函数,该函数将向内核中进行注册。同时,在结构体中,还有一个的字段,它是一个数组,表示当前驱动所管理的所有设备。在函数中,会调用回调函数去探测所有设备。但特殊的是,在初始化时是没有管理任何设备的,即数组为空。   奇怪了,显然的驱动是需要管理网卡设备的,但是我们这里又没有任何驱动可以被探测到,那我们的网卡设备是什么时候被加入到驱动的管理中的呢?   答案就是DPDK提供的脚本,这个脚本可以将某个网卡设备绑定为驱动下的网卡设备,而绑定之后,就可以触发回调函数探测这个新的网卡设备,探测成功后,我们的新网卡就进入了的设备数组中。   1.0的设备探测过程:   在函数中, 完成的主要工作有五个:使能当前设备,即通过函数当前设备,该函数的功能是将当前设备的所有的全部信息读取到结构体中,后续注册设备时需要使用设置模式初始化设备的,即、和等通过函数将当前设备注册为设备。   1.1 设备信息的读取:   事实上,一个设备通常有6个,这些在内核中被称为。而每一个都有各自的类型和物理地址。其中,类型有两种,一种是类型的资源,另一种是。
dpdk详解_dpdk通俗理解
dpdk详解_dpdk通俗理解PCI BAR的数据读取   其中,对于IORESOURCE_MEM类型,通过函数进行读取,而对于IORESOURCE_IO类型,通过来进行读取。   那么,到底是什么呢?的全称是,它是一个存储基地址的寄存器。在PCI设备内部的内存布局是这样的:
dpdk详解_dpdk通俗理解
dpdk详解_dpdk通俗理解PCI内存布局   而每个的数据分布如下:
dpdk详解_dpdk通俗理解
dpdk详解_dpdk通俗理解每一个PCI BAR的数据分布   1.1.0 的过程:   在函数中,通过内核函数可以当前的物理地址起点,而通过可以当前的物理地址长度。
dpdk详解_dpdk通俗理解
dpdk详解_dpdk通俗理解IORESOURCE_MEM类型的PCI BAR   在上图中,最后方框标注的部分,就是将我们所读取到的的数据存入结构体中,以供后面注册设备时使用。   值得一提的是,其实在DPDK中是没有用到的,它表示当前的物理地址映射到内核中的虚拟地址。   1.1.1 的过程:   函数的过程与大致相同。
dpdk详解_dpdk通俗理解
dpdk详解_dpdk通俗理解IORESOURCE_IO   1.1.2 为什么有和两种类型?   对于一个设备来说,除了自带的内存之外,还可能有寄存器等存储手段。显然,设备自带的内存就属于,而寄存器等其他的存储手段属于类型。
dpdk详解_dpdk通俗理解
dpdk详解_dpdk通俗理解I/O Space 和 Memory Space   2.0 如何绕开内核?   事实上,所有设备在文件系统下都有一系列的文件接口,而用户程序就可以通过这些文件读取所需的设备信息,例如我们关心的等。得到了里存储的设备物理地址,就可以建立内存映射,进而与设备进行通信。   但是在DPDK的PMD中,并未使用的信息建立内存映射,而是直接使用,直接映射文件从而与某个设备建立联系。   而不同的对应的内存区域在时如何区分呢? 简单地说,可以通过计算偏移量来区分,第n个对应的内存偏移量为,即每个对应的内存区域都在不同的页内。   参考资料:   DPDK-IGB_UIOUserspace I/O HOWTOHow to Write Linux PCI DriverPCI – OSDev WikiLinux Driver Development, Edition 3, by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/30426.html

(0)
上一篇 2024年 9月 11日 下午11:21
下一篇 2024年 9月 11日

相关推荐

关注微信