虚拟化
zhenghuaduo
这个作者很懒,什么都没留下…
展开
-
kvm中断虚拟化
1、x86平台主要使用的中断类型有pic、apic及msi中断,在多核系统下的apic结构图如下所示,每个cpu有一个lapic,外部中断通过ioapic转发到lapic,如果是msi中断,则绕过了io apic直接发给lapic。2、kvm初始化过程为每个虚拟机维护一个pic主控制器、一个pic备控制器以及一个ioapic控制器,每个vcpu维护一个lapic控制器。同时每个虚拟机有一张...原创 2020-04-11 20:20:38 · 1746 阅读 · 0 评论 -
IOMMU之Interrupt Posting
Interrupt Posting是在Interrupt Remapping的基础上进一步提升了直通设备的中断处理效率,使用Posting模式时,vcpu可以直接在non-root模式下处理中断而不会被vm-exit到宿主机。1、为了支持中断Posting,每个vcpu数据结构新增了一个Posted-Interrupt Descriptor结构体,该结构体主要保存post的部分信息。st...原创 2020-04-11 00:02:15 · 1716 阅读 · 0 评论 -
IOMMU之Interrupt Remapping
1、原理介绍在使用设备直通虚拟机的场景下,外设中断无法直接发送到Guest,使用iommu,可以改变虚拟机外设中断的投递方式。以msi中断为例,msi msg里不再需要填写相关的中断信息,而是转换成interrput index的方式。中断的管理信息(投递方式、目标cpu信息、vector信息)存放在一个叫irte的内存区域里,每个iommu最多可以有64k个irte,iommu通过inter...原创 2020-04-04 17:03:11 · 3173 阅读 · 0 评论 -
ovs+dpdk场景下的tx checksum offload
一、checksum:tcp checksum包括三部分:1)、伪头部校验和; 伪头部包括: 源ip 、宿ip、 协议号、tcp 长度,主要用于校验是正确的目的机器接收到数据包2)、tcp头部校验和;3)、数据部分校验和;当硬件有checksum offload能力时,可以通过ethtook -K tx on/off设置是否将checksum offload到硬件处理;如果将c...原创 2020-03-13 23:07:04 · 2457 阅读 · 0 评论 -
SPEC virt2013 KVM测试
1、背景介绍 SPEC是Standard Performance Evaluation Corporation(标准性能评估机构)的简称,是一个全球性的、权威的、代表目前业界标准的第三方应用性能测试组织。成立于1988年,是由斯坦福大学、清华大学、微软、等全球几十所知名大学、研究机构、IT企业组成,得到Intel、IBM、Huawei等支持和全球众多用户的广泛认可。 ...原创 2018-03-15 19:04:50 · 4063 阅读 · 9 评论 -
Nvidia GPU虚拟化性能测试
环境准备:硬件:浪潮服务器(NF5270M3)一台,Nvidia K1独立显卡一个; 软件:vsphere 6.5、PassMark、VMware-view-agent步骤: 1:从VMware官网下载K1显卡支持vGPU的相关驱动 (NVIDIA-vGPU-kepler-vSphere-6.5-367.106-370.12.zip,包括esxi、Guest两部分); 2:将NVIDIA-v...原创 2018-03-15 18:58:31 · 23554 阅读 · 4 评论 -
openstack GPU passThough 设置
1、bios开启vt-d;2、cmdline设置intel_iommu=on;3、查询GPU设备信息[root@ws_compute01 nova]# lspci -nn | grep VGA81:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:1b06] (rev a1)4、controller设置(n...原创 2018-05-30 18:39:05 · 1382 阅读 · 0 评论 -
kvm vlan bridge
From: http://blog.davidvassallo.me/2012/05/05/kvm-brctl-in-linux-bringing-vlans-to-the-guests/Irecently had the opportunity to setup a KVM machine running on a Centosmachine. Tools such as Virtual Mac...转载 2018-06-28 13:16:39 · 801 阅读 · 0 评论 -
KVM虚拟机,使用linux bridge配置vlan隔离
利用linux bridge + vlan方式配置KVM虚拟机的vlan,如下图所示:配置过程:1、安装vconfig工具;2、增加vlan子接口: vconfig add eth1 100; vconfig add eth1 200;3、增加vlan子接口对应的bridge设备,配置br100的IP为172.20.100.1,配置br200的IP为172.20.200.1: ...原创 2018-06-28 18:40:30 · 5881 阅读 · 0 评论 -
vhost源码分析
1、概述 vhost的大致原理就是qemu在Guest、Host之间创建一些共享buffer,Guest作为生产者往buffer填充可用描述符信息,Host作为消费者从可用描述符里消费buffer。Host消费完buffer后再通知Guest回收描述符; 本文主要基于3.10版本kernel,分析了vhost的报文收发过程。2、vringGuest、Host...原创 2019-04-28 12:31:00 · 2969 阅读 · 0 评论 -
ovs内核转发流程
虚拟机使用ovs场景下,流量从物理网卡转发到tap设备过程:__netif_receive_skb __netif_receive_skb_core rx_handler() (ovs场景下,通过netdev_rx_handler_register将rx_handler注册为netdev_frame_hook) netdev_frame_ho...原创 2019-07-29 18:26:42 · 1235 阅读 · 0 评论 -
ovs+dpdk,前后端feature协商过程
1、qemu与vhost_user建立sock通信vhost_user_start (qemu) vhost_dev_init vhost_user_get_features (VHOST_USER_GET_FEATURES) vhost_user_get_features(获取dpdk端的feature) rte_...原创 2019-07-29 18:33:36 · 622 阅读 · 0 评论 -
kvm 处理中断流程
一、x86In x86 architecture, Intel in this case, most interrupts will cause CPU VM exit, which means the control of CPU will return to host from guests.So the processes areCPU is used by guest OS in VMX ...转载 2018-02-28 11:01:23 · 950 阅读 · 0 评论 -
ARM虚拟化
ARM目前采用的是硬件辅助虚拟化的方式,即在处理器模式上增加了EL2级别,将hypervisor运行在EL2上,那为什么需要这么做呢?1、虚拟化在业界上有一种说法叫做“经典可虚拟化模型”,也就是要求cpu的敏感指令属于特权指令的一个子集,这样在VM里访问敏感指令的时候就会触发异常并被hypersiver捕获;2、ARM(x86也类似)的模式是不符合“经典可虚拟化模型”的,也就是说ARM有很原创 2018-02-02 14:35:28 · 2581 阅读 · 0 评论 -
ARM平台的虚拟化介绍
FROM https://www.cnblogs.com/miachel-zheng/archive/2017/05/09/6829801.html本篇博文主要介绍虚拟化的基本思想以及在arm平台如何做虚拟化,arm提供的硬件feature等等。虚拟化技术简介虚拟化技术虚拟化是一个概念,单从这个概念的角度来看,只要是用某一种物品去模拟另一种物品都可以称为虚拟转载 2017-11-17 17:28:05 · 4321 阅读 · 0 评论 -
Arm 虚拟中断
虚拟中断与物理中断的映射:1)当kvm向VM注入一个虚拟中断时,中断信息保存在lr寄存器中,包含了中断号、中断优先级、中断状态(activate、pending)等信息2)lr里还有一个HW标志位信息,HW置为1时,lr寄存器中会加入相应的物理终端号信息,这样在VM里deactivate一个虚拟中断时会同步deactivate对应的物理中断;struct vgic_v3_cpu_if原创 2017-11-02 16:27:45 · 1897 阅读 · 0 评论 -
kvm tick中断模拟
1:创建irq设备KVM_CREATE_IRQCHIPKVM_CREATE_PIT2:struct kvm_pit *kvm_create_pit(struct kvm *kvm, u32 flags){ struct kvm_pit *pit; struct kvm_kpit_state *pit_state; struct pid *pid; pid_t pi原创 2017-11-08 14:18:28 · 571 阅读 · 0 评论 -
SR-IOV配置
1:bios开启vt-d2:内核CMDLINE开启iommu && 设置pf开启vf的个数 crashkernel=auto rd.lvm.lv=cl00/rootrd.lvm.lv=cl00/swap rhgb quiet LANG=en_US.UTF-8 isolcpus=12,13,14,15,16,17,18,19,20 intel_iommu=on ixgb原创 2017-11-08 14:13:00 · 11594 阅读 · 0 评论 -
kvm I/O cache 模式
KVM针对HOST的cache,可以设置以下几种模式;cache mode unspecifiedIn qemu-kvm versions older than v1.2 (eg SLES11 SP2), not specifying a cache mode meant thatwritethrough would be used as the default. Since th翻译 2017-11-07 17:37:24 · 684 阅读 · 0 评论 -
ARM虚拟化介绍
FROM: https://www.cnblogs.com/miachel-zheng/archive/2017/05/09/6829801.html本篇博文主要介绍虚拟化的基本思想以及在arm平台如何做虚拟化,arm提供的硬件feature等等。虚拟化技术简介虚拟化技术虚拟化是一个概念,单从这个概念的角度来看,只要是用某一种物品去模拟另一种物品都可以称为虚拟化转载 2017-12-26 17:10:45 · 1791 阅读 · 0 评论 -
vhost vsock
Linux VM sockets in GoDuring a recent discussion with coworkers, I discovered a new Linux socket family: VM sockets (AF_VSOCK address family). This new socket family enables bi-directional, many-t转载 2017-12-18 10:39:44 · 5997 阅读 · 4 评论 -
VFIO IOMMU UIO ...
1、UIO的出现,允许将驱动程序用到用户态空间里实现,但UIO有它的不足之处,如不支持DMA、中断等;2、随着虚拟化的出现,IOMMU也随之出现,IOMMU为每个直通的设备分配独立的页表,因此不同的直通设备,彼此之间相互隔离;3、有一些场景,多个PCI设备之间是有相互联系的,他们互相组成一个功能实体,彼此之间是可以相互访问的,因此IOMMU针对这些设备是行不通的,随之出现VFIO技术,VF原创 2017-11-27 22:24:10 · 6042 阅读 · 0 评论 -
VFIO
FROM: https://lwn.net/Articles/474088/ As a general rule, most developers feel that device drivers belong in the kernel. Kernel-space drivers are (hopefully) widely reviewed, implement standard de转载 2017-11-22 19:43:26 · 1414 阅读 · 0 评论