目录一、概述二、初始化流程2.1 main之前2.2 rte_eal_init2.3 rte_eal_cpu_init2.4 eal_parse_args2.4.1 eal_parse_common_option2.4.2 eal_create_runtime_dir2.4.3 eal_adjust_config2.5 eal_plugins_init2.6
前言 阅读过Qt源码的同学一定对d指针不陌生,前段时间其实写过一次关于Qt d指针的文章,但是感觉不够透彻就删除了,这次打算彻底地详细地再分析一次。Pimpl机制 对Pimpl机制不熟悉的先熟悉下Pimpl机制Pimpl机制。Qt的d指针其实主要还是采用了Pimpl机制。关于Pimpl机制的优点:降低耦合信息隐藏降低编译依赖,提高编译速度接口与实现分离 其实Pimpl机制最大作用是实现二进制
什么是 virtio#
virtio 是一种 I/O 半虚拟化解决方案,是一套通用 I/O 设备虚拟化的程序,是对半虚拟化 Hypervisor 中的一组通用 I/O 设备的抽象。提供了一套上层应用与各 Hypervisor 虚拟化设备(KVM,Xen,VMware等)之间的通信框架和编程接口,减少跨平台所带来的兼容性问题,大大提高驱动程序开发效率。为什么是 virtio#
在完全虚拟化的解决方案
QEMU-KVM作为一个VMM提供了全虚拟化环境,guest不经过任何修改就能运行在KVM环境中。不过KVM在IO虚拟化方面,使用QEMU纯软件的方式来模拟IO设备,效率并不高。在KVM中,要想提高IO虚拟化的效率,就要使用半虚拟化的方式:virtio。简单介绍全虚拟化和半虚拟化 在全虚拟化 中,guest操作系统运行在VMM之上,并不知道它已被虚拟化,不需要任何更改就可
转载
2023-10-08 21:50:17
217阅读
在上文我们讲解了Excel 2010工作表中为一组数据插入一个分类汇总级别的方法,本文则讲解了Excel 2010工作表中插入分类汇总的嵌套级别的方法。Excel 2010工作表中可以在相应的外部组中为内部嵌套组插入分类汇总,如下例所示。Excel 2010工作表中插入分类汇总的嵌套级别的方法一、每次在外部组中更改时,地区列。二、对该地区的销售额进行分类汇总,每次在内部组中更改时,运动列对销售额进
一、QEMU简介及与KVM等虚拟化的关系QEMU是“Quick Emulator”的缩写,是一个用C语言编写的开源虚拟化软件。本文的目的是描述本人所理解的QEMU技术架构的见解,并以此抛砖引玉。众所周知,QEMU的源代码开发文档非常稀少,描述内部结构和工作机理的文档更是凤毛麟角,一般的开发人员想要从事QEMU的开发工作,通常只能从源代码入手。因此,对于技术人员来说,了解QEMU是一项艰巨的任务。Q
目录文章目录目录架构OvS 架构OvS-DPDK 架构
架构
OvS 架构openvswitch.ko :在内核态负责 “快速路径” 的数据转发。转发靠流表来完成,每一个流表都包含很多的匹配项(match fields)和相应的动作(actions)。match fields:定义了能够标识一个数据包的头部字段。actions:定义了能够对这个数据包操作的动作,比如:添加或去除 VLAN 标
原创
2022-04-07 11:02:43
1578阅读
一、版本的选择首先要说明的是,对于生产来说DPDK版本不是越高越好,如何选择合适的版本?1、要选择长期支持的版本LTS(Long Term Support)2、根据当前开发的系统环境选择可以在以下文档里从高至低查看不同版本的System Requirements章节,它对kernel、glibc等限制有详细说明。http://core.dpdk.org/doc/archives/我开发是在Cent
DPDK(Data Plane Development Kit)是由6WIND,Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。DPDK使用了轮询(polling)而不是中断来处理数据包。在收到数据包时,经DPDK重载的网卡驱动不会通过中断通知CPU,而是直接将数据包存入内存,交付应用层软
转载
2023-07-26 22:02:41
312阅读
一,什么是kni,为什么要有kni Kni(Kernel NIC Interface)内核网卡接口,是DPDK允许用户态和内核态交换报文的解决方案,模拟了一个虚拟的网口,提供dpdk的应用程序和linux内核之间通讯。kni接口允许报文从用户态接收后转发到linu协议栈去。 为什么要弄一个kni接口,虽然dpdk的高速转发
转载
2023-07-28 16:42:41
224阅读
目录文章目录目录架构OvS 架构OvS-DPDK 架构性能环境参数Hardware ComponentSoftware ComponentConfigurationphysical-to-physical 场景physical-to-virtual-to-physical 场景架构OvS 架构openvswitch.ko :在内核态负责 “快速路径” 的数据转发。转发靠流表来完成,每一个流表都包含很多的匹配项(match fields)和相应的动作(actions)。match fields:
原创
2021-07-14 15:53:58
1021阅读
DPDK是INTEL公司开发的一款高性能的网络驱动组件,旨在为数据面应用程序提供一个简单方便的,完整的,快速的数据包处理解决方案,主要技术有用户态、轮询取代中断、零拷贝、网卡RSS、访存DirectIO等。一、主要特点1、UIO(Linux Userspace I/O)提供应用空间下驱动程序的支持,也就是说网卡驱动是运行在用户空间的,减下了报文在用户空间和应用空间的多次拷贝
转载
2021-09-29 10:40:12
1152阅读
dpdk学习DPDK学习一1. DPDK简述1.1 核心组件1.1.1 环管理器 (librte_ring)1.1.2 内存池管理器 (librte_mempool)1.1.3 网络数据包缓冲区管理 (librte_mbuf)1.1.4 定时器管理器 (librte_timer)1.2 以太网* 轮询模式驱动程序架构1.3 数据包转发算法支持1.4 librte_net1.5 EAL(Envir
DPDK优化技术: 一、内存相关优化点: Cache和内存——软件预取函数rte_prefetch0。 Cache一致性——DPDK对很多结构体定义会指定对齐;避免多个核访问同一个内存地址或数据结构,采用每个核对应一个数据结构;每个接收和发送ring队列分别对应一个core。 TLB和大页——常规页(4KB),如果程序比较大,可以采用大页(比如2MB),这样只需要一个表项就可以命中。以ubuntu
DPDK基础概念和原理
1、DPDK做什么的?数据平面开发套件(DPDK,Data Plane Development Kit)dpdk 为 Intel 处理器架构下用户空间高效的数据包处理提供了库函数和驱动的支持,它不同于 Linux 系统以通用性设计为目的,而是专注于网络应用中数据包的高性能处理。dpdk 绕过了 Linux 内核协
转载
2023-07-19 14:04:30
411阅读
网路的核心是报文的转发过程,linux网路是通过内核协议栈进行转发的,报文控制平面和数据转发平面没有分离,不适合处理大规模网络数据包,因为linux分为内核区和用户区,报文先进入内核区然后拷贝到用户区,供给上层应用程序处理。并且为了全面的支持用户空间的各个功能,协议栈中嵌入了大量用于对接的接口。如果能让应用程序直接接管网络数据包处理、内存管理以及CPU调度,那么性能可以得到一个质的提升。 如今的
转载
2017-12-04 21:48:34
867阅读
有段时间不写博客了 也不知道写什么 消息队列的笔记虽然是自己敲出来的 但实际课程里面能吸收的很少 素材1:https://blog..net/qq_20817327/article/details/105587309 最近在闪存中看到dpdk的文章 加上自己搜索了下 其中这张图 我是看
原创
2022-01-06 14:38:43
766阅读
纯记录安装步骤,供研究使用,日常工作建议使用VmWare VirtualBox HyperV等qemu版本λ qemu-system-x86_64 -version
QEMU emulator version 6.2.0 (v6.2.0-11889-g5b72bf03f5-dirty)
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Pro
一、首先我们需要准备一个物理机或者一个虚拟机。 物理机: 需要一个高性能的网卡跑dpdk和一个普通网卡进行网络通信,机器安装Ubuntu16.04. 虚拟机: 使用vnware安装Ubuntu16.04,配置一个多队列网卡和一个普通网卡。二、虚拟机配置 如果使用物理机,我们不需要做任何配置,只需要安装Ubuntu16.04即可。如果没有物理机,我们就需要使用vmware安装Ubuntu 16.04
本来想把DPDK 样的知识做一个总结, 看了下这个文章已经总结了, 分享一下(《深入浅出dpdk》书中讲的差不多就这些):1、DPDK特点DPDK 全称为 Date planedevelopment kit,是一个用来进行包数据处理加速的软件库。与传统的数据包处理相比,DPDK 具有以下特点:轮询:在包处理时避免中断上下文切换的开销,用户态驱动:规避不必要的内存拷贝和系统调用,便于快速迭代优化亲和