首页
学习
活动
专区
工具
TVP
发布

虚拟化笔记

虚拟化技术的搬运工
专栏作者
77
文章
145557
阅读量
47
订阅数
kvm timer虚拟化
在这篇中遗留了几个问题,先尝试回答一下,不一定准确,代码太多,看不过来,全靠猜测,代码的历史很长,都是智慧的结晶,一时半会消化不了很正常。
惠伟
2022-04-28
1.6K0
kvm timer导致exit过多的解决办法
timer简单理解就是cpu给硬件定时器写一个超时时间,超时时间到了后,硬件定时器超时后发送中断打断cpu。在虚拟化环境中,硬件定时器不存在,是kvm模拟出来的,guest给硬件定时器写超时时间就会导致guest exit出来,kvm进行模拟,kvm模拟时可以利用软件定时器也可以利用真正的硬件定时器,假如利用了真正的硬件定时器,kvm写完硬件定时器后重新enter guest,硬件定时器超时后发送中断打断cpu,cpu收到中断后从guest中exit出来,处理中断,然后把中断注入guest,模拟虚拟定时器的中断。这样guest就至少有两次exit。
惠伟
2022-04-28
7320
linux time和kvm time虚拟化综述
第一就是获取当前时间,就像人想知道时间时看墙上挂的时钟一样,简称clock,如time()/ftime()/gettimeofday()/data()等这些系统调用,都是软件主动获取时间。
惠伟
2022-04-28
2.6K0
IOMMU(七)-vfio and mdev
vfio是用户态和内核态之间的一种接口,类似于vhost和vhost-user,具体用法就是vfio.ko通过/dev/vfio在内核给用户态提供api,qemu或者dpdk用api和内核模块交互。
惠伟
2022-04-28
2.3K0
IOMMU(六)-post interrupt
post interrupt是intel提供的一种硬件机制,不用物理cpu从root模式exit到non-root模式就能把虚拟中断注入到non-root模式里,大概实现就是把虚拟中断写到post interrupt descriptor,预定义了一个中断号,然后给non-root模式下的cpu发送这个中断,non-root模式下cpu收到这个中断触发对virtual-apic page的硬件模拟,从post interrupt descriptor取出虚拟中断更新到virtual-apic page中,虚拟机中读virtual-access page,就能取到虚拟中断,处理中断,然后写EOI,触发硬件EOI virtulization,就能把virtual-apic page和post interrupt descriptor中数据清除。
惠伟
2022-04-28
1.6K1
IOMMU(五)-interrupt remmaping
通过DMA写物理地址0x0FEE_XXXX来产生中断,PCI config space中有MSI Address和Data寄存器,驱动配置这两个寄存器,Address寄存器中有Destination ID,表示Local APIC ID,Address寄存器所有字段组合起来就是x0FEE_XXXX,Data寄存器有vector号,表示中断号。
惠伟
2022-04-28
9160
IOMMU(二)-从配置说起
做过DPDK/SPDK开发或者用kvm做过pci passthrough的一定知道以下的配置:
惠伟
2022-04-28
1.6K0
virtio详细介绍和1.1新功能
virtio是一种实践出来的技术,并且最终标准化,virtio是一种通用的虚拟化设备模拟标准,得到了大部分guest操作系统和hypervisor的支持,方便guest操作系统和hypervisor之间任意互相匹配。virtio出现之前hypervisor各有各的IO设备模拟方案,并在guest操作系统中大量合入驱动代码,导致一片混乱,后来xen中出来了部分virtio思想,在kvm中实现并且发扬光大,发表了论文《virtio: Towards a De-Facto Standard For Virtual I/O Devices》,论文促使virtio形成了正式标准。virtio标准最早是0.9.5版本(Virtio PCI Card Specification Version 0.9.5),于2012年形成了draft,并没有正式发布,继续发展,2016年发布了1.0版本(Virtual I/O Device (VIRTIO) Version 1.0),2019年发布了1.1版本(Virtual I/O Device (VIRTIO) Version 1.1)。
惠伟
2022-04-28
1.6K0
由mellanox DPU bluefield-2想到的问题
本文全是个人感想和猜测,写一写软件人眼中的硬件,越底层越难,个人理解不一定对,请用批判的眼光看,特此声明,免得被人贻笑大方。
惠伟
2021-08-19
1.7K0
用mellanox DPU实现裸金属服务器
两种传输协议,mellanox的卡即可以工作于InfiniBand模式也可以工作于Ethernet模式。
惠伟
2021-07-30
8.3K2
虚拟化硬件加速-vdpa
惠伟:virtio+ovs转发原理和性能分析​zhuanlan.zhihu.com
惠伟
2021-07-28
5.1K0
kvm timer虚拟化
惠伟:linux time和kvm time虚拟化综述​zhuanlan.zhihu.com
惠伟
2021-07-16
2.3K0
kvm timer导致exit过多的解决办法
惠伟:linux time和kvm time虚拟化综述​zhuanlan.zhihu.com
惠伟
2021-06-28
1.6K0
linux time和kvm time虚拟化综述
第一就是获取当前时间,就像人想知道时间时看墙上挂的时钟一样,简称clock,如time()/ftime()/gettimeofday()/data()等这些系统调用,都是软件主动获取时间。
惠伟
2021-06-24
3K0
IOMMU(七)-vfio and mdev
vfio是用户态和内核态之间的一种接口,类似于vhost和vhost-user,具体用法就是vfio.ko通过/dev/vfio在内核给用户态提供api,qemu或者dpdk用api和内核模块交互。
惠伟
2021-05-28
3.9K0
IOMMU(六)-post interrupt
惠伟:IOMMU(五)-interrupt remmaping​zhuanlan.zhihu.com
惠伟
2021-05-18
2.1K0
IOMMU(五)-interrupt remmaping
惠伟:IOMMU(四)-dma remapping​zhuanlan.zhihu.com
惠伟
2021-05-14
1.3K0
IOMMU(四)-dma remapping
DMA remapping就是在DMA的过程中IOMMU进行了一次转换,MMU把CPU的虚拟地址(va)转换成物理地址(pa),IOMMU的作用就是把DMA的虚拟地址(iova)转换成物理地址(pa),MMU转换时用到了pagetable,IOMMU转换也要用到io pagetable,两者都是软件负责创建pagetable,硬件负责转换。IOMMU的作用就是限制DMA可操作的物理内存范围,当一个PCI设备passthrough给虚拟机后,PCI设备DMA的目的地址是虚拟机指定的,必须要有IOMMU限制这个PCI设备只能操作虚拟机用到的物理内存。
惠伟
2021-05-13
2.2K0
IOMMU(三)-初始化
BIOS收集IOMMU相关的信息,通过ACPI中的特定表组织数据,放置在内存中,等操作系统接管硬件后,它会加载驱动,驱动再详细解析ACPI表中的信息。
惠伟
2021-04-27
2K0
IOMMU(二)-从配置说起
做过DPDK/SPDK开发或者用kvm做过pci passthrough的一定知道以下的配置:
惠伟
2021-04-27
6.1K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档