DPDK
文章平均质量分 50
u013982161
这个作者很懒,什么都没留下…
展开
-
DPDK内存管理 -----(二)rte_mempool
DPDK以两种方式对外提供内存管理方法,一个是rte_mempool,主要用于网卡数据包的收发;一个是rte_malloc,主要为应用程序提供内存使用接口。本文讨论rte_mempool。rte_mempool由函数rte_mempool_create()负责创建,从rte_config.mem_config->free_memseg[]中取出合适大小的内存,放到rte_config.mem_co转载 2016-06-25 10:12:54 · 7261 阅读 · 0 评论 -
dpdk参考文章
http://www.cnblogs.com/MerlinJ/tag/DPDK/ ------ dpdk系列文章http://www.cnblogs.com/jiayy/p/3430974.html ----- dpdk多进程和多线程http://blog.chinaunix.net/uid-387104-id-1744111.html ----- dma芯片8237原创 2016-06-11 17:11:36 · 797 阅读 · 0 评论 -
能力提升需要完善的知识点
dpdk/内核协议栈/nginx/python/c++/汇编1. RCU锁2. 内存屏障3. vrrp4. 组播5. aaa6. ipsec/ike7. 二层转发(mac学习过程,报文转发过程)8. ospf9. 内核协议栈10.numa架构11. 64位汇编12. dpdk13. ipv614. coredump文件15. ma原创 2016-07-24 16:11:29 · 659 阅读 · 0 评论 -
DPDK内存管理 ----- (四) rte_mbuf
本文主要介绍rte_mbuf与rte_mempool数据结构之间的组织关系、以及网卡接收到的数据是如何存储在rte_mbuf中的。一、 rte_mbuf、rte_mempool及网卡收到的数据包在内存中的组织结构一、 网卡接收的数据是如何存储到rte_mbuf中的?以e1000网卡为例,在网卡初始化的时候,调用eth_igb_rx_init()初始化网卡转载 2016-06-25 10:34:46 · 3114 阅读 · 0 评论 -
DPDK 代码分析一 : 内存初始化
一 前言 http://www.dpdk.org/ dpdk 是 intel 开发的x86芯片上用于高性能网络处理的基础库,业内比较常用的模式是linux-app模式,即利用该基础库,在用户层空间做数据包处理,有了这个基础库,可以方便地在写应用层的网络包处理高性能程序,目前该库已经开源。Main libraries· multicore framework转载 2016-06-05 13:18:45 · 10182 阅读 · 0 评论 -
DPDK中断机制简析
DPDK 通过在线程中使用 epoll 模型,监听 UIO 设备的事件,来模拟操作系统的中断处理。一、中断初始化在 rte_eal_intr_init() 函数中初始化中断。具体如下:1、首先初始化 intr_sources 链表。所有 UIO 设备的中断都挂在这个链表上,中断处理线程通过遍历这个链表,来执行设备的中断。2、创建 intr_pipe 管道,用于 ep转载 2016-06-26 08:32:19 · 1713 阅读 · 0 评论 -
DPDK多核多线程机制简析
DPDK通过在多核设备上,创建多个线程,每个线程绑定到单独的核上,减少线程调度的开销,以提高性能。DPDK的线程分为控制线程和数据线程,控制线程一般绑定到MASTER核上,主要是接受用户配置,并传递配置参数给数据线程等;数据线程主要是处理数据包。一、初始化1、rte_eal_cpu_init() 函数中,通过读取 /sys/devices/system/cpu/cpuX/ 下的转载 2016-06-26 09:05:56 · 1724 阅读 · 0 评论 -
DPDK收发包处理流程 ----- 网卡初始化
本文基于DPDK-1.8.0分析。网卡驱动模型一般包含三层,即,PCI总线设备、网卡设备以及网卡设备的私有数据结构,即将设备的共性一层层的抽象,PCI总线设备包含网卡设备,网卡设备又包含其私有数据结构。在DPDK中,首先会注册设备驱动,然后查找当前系统有哪些PCI设备,并通过PCI_ID为PCI设备找到对应的驱动,最后调用驱动初始化设备。一、网卡驱动注册以e1000网卡驱动为例说明。转载 2016-06-25 10:54:21 · 4642 阅读 · 0 评论 -
DPDK内存管理 -----(一)初始化
1 前言DPDK通过使用hugetlbfs,减少CPU TLB表的Miss次数,提高性能。2 初始化 DPDK的内存初始化工作,主要是将hugetlbfs的配置的大内存页,根据其映射的物理地址是否连续、属于哪个Socket等,有效的组织起来,为后续管理提供便利。2.1 eal_hugepage_info_init()eal_hugepage_info_ini转载 2016-06-25 09:52:44 · 2221 阅读 · 0 评论 -
DPDK内存管理 -----(三)rte_malloc
rte_malloc()为程序运行过程中分配内存,模拟从堆中动态分配内存空间。 1 void *2 rte_malloc(const char *type, size_t size, unsigned align)3 {4 return rte_malloc_socket(type, size, align, SOCKET_ID_ANY);5 } rte_m转载 2016-06-25 10:24:02 · 2209 阅读 · 0 评论 -
【DPDK】虚拟机开发环境配置
正文本文介绍的步骤基本适用于dpdk 1.7.0 - dpdk 2.0.0 各版本。只是setup.sh显示的菜单有一些小的不同;同样的,也适用于ubuntu更高版本(已在ubuntu 12.04+及14.04上验证过) 1. 所用系统与软件版本系统:Ubuntu 12.04.3 LTS 64位, CentOS Linux release 7.0.1406 64位dpdk:转载 2017-06-11 10:06:09 · 2288 阅读 · 0 评论