DPU

2024/4/11 23:43:26

DPU网络开发SDK——DPDK(二)

Hello world 上一次的文章中主要介绍了DPDK是什么,主要用在什么地方。作为一个SDK,DPDK提供了大量的function接口用于网络转发面程序的编写。接下来的几篇文章,我们会基于DPDK程序的实例,以剖析关键function接口的方式逐步分析DP…

DPU网络开发SDK—DPDK(六)

rte_eal_init() 接上次内容继续对rte_eal_init()所做的工作进行分析。 20. 大页内存配置 internal_conf中的no_hugetlbfs指明是否禁用大页内存,通过命令行参数"--no-huge"设置禁用,默认情况下大页内存是开启的。DPDK根据进程是primary还是s…

DPU网络开发SDK—DPDK(七)

rte_eal_init() 接上次内容继续对rte_eal_init()所做的工作进行分析。 24. 内存初始化 24.2. 内存分配 调用eal_memalloc_init()来处理内存分配,前半部分根据进程是primary还是secondary走不同的流程,后半部分两者相同。 前后两个初始化过程中&#xf…

DatenLord前沿技术分享 No.26

达坦科技专注于打造新一代开源跨云存储平台DatenLord,通过软硬件深度融合的方式打通云云壁垒,致力于解决多云架构、多数据中心场景下异构存储、数据统一管理需求等问题,以满足不同行业客户对海量数据跨云、跨数据中心高性能访问的需求。达坦科…

DPU网络开发SDK——DPDK(十四)

继续接之前的内容分析ethtool,分析setup_ports()中对网卡的初始化操作,包括几个重要的接口函数。 rte_eth_rx_queue_setup()完成之后是rte_eth_tx_queue_setup(),该func中,首先检查device和queue_id的合法性,然后调用r…

DPU网络开发SDK—DPDK(四)

rte_eal_init() 接上次内容继续对rte_eal_init()所做的工作进行分析。 12. 初始化配置 rte_config_init()中,会根据process_type进行不同的初始化任务。process_type是由eal的启动参数指定的,目前支持两种模式:primary和secondary。proces…

DPU网络开发SDK——DPDK(十二)

rte_bus_probe()->pci_probe_all_drivers()->rte_pci_probe_one_driver()->eth_ixgbe_pci_probe() 继续分析rte_pci_probe_one_driver()的实现,接下来调用与设备匹配的驱动的probe方法,此处以ixgbe设备的驱动为例,其probe方法为eth…

DPU网络开发SDK—DPDK(五)

rte_eal_init() 接上次内容继续对rte_eal_init()所做的工作进行分析。 18. 检查是否允许直接物理地址访问 rte_eal_using_phys_addrs()会去检查当前系统是否允许在进程虚拟地址空间直接访问物理地址。需要有两个支持条件:存在大页内存和能够进行虚拟地址到物理地…