LWN: KVM Forum 2019的主要内容!

Arm GIC-v3中断原理及验证(通过kvm-unit-tests) 由于讲述中断,所以直接开讲的中断发送以及中断处理,其实是倒叙看源码了。至此,SGI中断的逻辑以及原理差不多可以了,反正就是触发SGI中断就写ICC_SGI1R_EL1寄存器,接收中断handler就是按标准步骤操作寄存器:读取iar,获取irq,逻辑处理,回写eoi。kut中关于发送sgi中断的函数是lib/arm/gic-v3.c中的gicv3_ipi_send_mask()函数(可类比kernel-5.10中的gic_ipi_send_mask函数),IPI即核间中断,arm的叫sgi。 阅读详情

关注了就能看到更多这么棒的文章哦~

 

A recap of KVM Forum 2019

November 19, 2019

By Cornelia Huck, Pankaj Gupta, Stefan Hajnoczi, and Stefano Garzarella


KVM Forum

原文来自:https://lwn.net/Articles/805097/

第13届KVM FOrum虚拟化会议于2019年10月在法国里昂举行。不少人以为,在2007年KVM(Kernel Virtual Machine)的代码合入Linux 2.6.20的时候,开发工作就已经结束了。而今年的会议中着重强调了当前仍在进行的开发工作,包括side-channel攻击的防护,I/O设备如何分配VFIO和mdev,采用micro virtual machines (VMs)来减少资源占用,以及在VM内部继续运行VM的能力。很多话题都牵涉到VMM (virtual machine monitor)这个用来调用KVM kernel module的用户程序,QEMU就是一个最常用到的VMM。

Side-channel attacks and memory isolation/encryption

Side-channel攻击,是指攻击者利用在常用的输入输出方法之外利用某些方式获取敏感信息的攻击方式。这种攻击近来越来越麻烦,因为跟预测执行(speculative execution)搅在了一起。KVM项目就在想办法能对这种攻击方式进行防护。

Dario Faggioli就进行了题为“Core-Scheduling for Virtualization: Where are We?”的演讲,主要着重于在scheduler调度器这个角度如何避免side-channel攻击。

在支持simultaneous multi-threading(就是Hyperthreading或者称为SMT),会有多个线程同时使用CPU核心,这样一来某些CPU资源就是公用的,例如这些线程都会共同使用cache (包括L1 cache),这样在识别出SMT功能的调度器里面可以提高性能。Core scheduling算法会对那些能在同一个CPU核心上同时执行的task打上tag标签,而调度器知会把拥有相同标签的task放在同一个CPU核上同时运行。那些属于不同security domain的task则拥有不同的标签值,从而确保他们不会在同一个CPU核心上同时运行,就能避免一些side-channel attack。Core scheduling也有助于改进云计算环境中的统计公平性,因为在同时共享同一个CPU核心的两个线程之中,更加繁忙的那个线程则会比比较空闲的线程消耗更多CPU资源。

Core scheduling也能用来把guest系统里的虚拟CPU (vCPU)跟host系统里的SMT核心对应起来,这样可以更智能地做一些调度决策。并且coer scheduling还能避免L1 Terminal Fault (L1TF)和Microarchitectural Data Sampling (MDS)这两种最主要的side-channel攻击方式。

之所以需要利用core scheduling来防护side-channel攻击,主要是希望避免彻底关闭SMT(这样会导致更多性能损失)。Hyper-V和Xen已经能支持core scheduling了。Linux的patch还没有upstream,目前一些benchmark结果看下来性能变化在不同workload之下差异很大。还需要针对某些不合理的现象来继续调查,例如有时候看到workload在打开core scheduling之后跑得会非常慢。

L1TF是一类硬件漏洞,在针对某个虚拟地址的page-table entry (PTE)中"present" bit被清零或者其他一些reserved bit被置1的时候,有一些非特权级的预测访问可以拿到L1 data cache (L1D)里面的数据。当某条指令在访问一个不存在(non-present)的PTE映射的虚拟地址的时候,直到这条指令retire之后才会产生一个page fault,而从L1D cache中拿到的预测值也就得到了,这样这条指令会触发未授权的访问,有可能就会泄露另一个guest系统或者host系统的秘钥。

这个问题的防护办法,可以是在每次进入VM的时候就flush L1D cache,并且使用一个shadow MMU。flush L1D cache无法完全阻止在hyperthreading打开情况下的L1TF攻击,因为L1D cache在同一个CPU核之上同时运行的hyperthreads之间是公用的。Guest vCPU也可能会泄露L1D cache数据,要么是被在执行另一个VM的vCPU的兄弟hyperthread使用的cache数据,要么就是被目前正在执行VM-exit handler(这里VM会退出并把控制权交给kernel或者可以处理相应请求的user-space程序)的vCPU线程对应的兄弟hyperthread使用的cache数据。

 

Liran Alon和Alexandre Chartre介绍了“KVM Address Space Isolation (ASI)”,这个功能会让VM-exit handler使用一个独立的虚拟地址空间。此前的防护手段是把敏感数据从虚拟地址空间之中摘除,不过其实很难确认出来所有的敏感数据。KVM ASI就是一个白名单机制,只把那些KVM的VM-exit handler会需要用到的数据加入虚拟地址空间。

Thomas Lendacky则在题为“Improving and Expanding SEV Support"的演讲中介绍了AMD Secure Encrypted Virtualization (SEV) 这个CPU功能。SEV可以对VM进行保护,避免被不可信的hypervisor(例如在一个共有云上部署VM的时候)攻击。Guest系统里的内存会被加密,这样hypervisor就没法查看、修改这些内存内容了。Lendacky讨论了当前SEV相关的开发工作,例如消除memory pinning,live migration,以及支持encrypted state的SEV (SEV-ES)。

SEV live migration会对source和destination这两个VM使用不同的加密秘钥,秘钥并不会随着迁移。firmware里面需要持有一份加密过的内存内容,并利用特别的传输秘钥来在两个host之间移动page。

为了能让SEV性能更好,目前guest memory都是固定的(pinned)。固定的mmeory不是太好,因为这样swapping和overcommitting(指并不提前预留足够空间)功能就没法用了。要想避免guest-memory被固定下来,可以想法阻止page移动(migration/swapping),或者用SEV firmware来进行加密page的复制,目前有一些方向在调查。后面还需要利用SEV-ES支持VM寄存器的加密以及SEV-SNP(Secure Nested Paging)。

近来s390架构也开始实现对虚拟机的加密或保护了。在Claudio Imbrenda题为“Protected Virtual Machines for s390x”的演讲中包含了这一架构的概况。因为hypervisor被认为是不可信的,那么系统里唯一的可信实体就是通过硬件和固件实现的“ultravisor”。在需要确保guest是可靠的场景里,ultravisor会对启动镜像文件进行解密和验证,还要作为hypervisor和guest之间的交互代理。hypervisor就没法访问受保护的guest memory了,只能访问guest共享出来和它进行I/O操作的memory。s390的方案能够重用很多现有针对AMD SEV引入的代码。

VFIO and mdev

Linux里的VFIO驱动程序会把真实的PCI扩展卡以及其他一些设备暴露给应用程序。VFIO用在软件定义的网络应用程序里面所访问到的user-space设备驱动,也会用在VMM(例如QEMU)里面来把真实PCI卡传递给guest系统。目前基于VFIO已经有不少额外驱动可用了,大家正在推动更多的应用场景。

Kevin Tian题为“Toward a Virtualization World Built on Mediated Pass-Through”的演讲中就介绍了一下这套基于VFIO和mdev (mediated device framework)驱动的生态环境。VFIO可以把物理设备暴露给user space,mdev framework则可以些一些纯软件的设备,或者把软硬件功能结合起来。这样就可以用于在硬件之上增加一些软件逻辑,例如绕过一些硬件限制,或者作为硬件的一部分提供一些功能子集。

Xin Zeng和Yi Liu在他们的演讲“Bring a Scalable IOV Capable Device into Linux World”中,就介绍了一种基于VFIO/mdev的新应用。在数据中心里,PCI适配器有时候需要支持PCI single-root I/O virtualization (SR-IOV),这个功能可以把一个PCI卡分割成多个虚拟功能(VF, virtual function)的子设备,分别传递给不同的guest系统。这样多个虚拟机里面就可以安全的共享使用这块PCI卡,尽管其实每个VF里面只能访问一部分资源。最新的可扩展的I/O虚拟化方案(scalable I/O virtualization)则替换掉了这个硬件提供SR-IOV功能,而是利用一个mdev软件驱动来决定把哪些硬件资源传递给guest系统、哪些需要用软件来模拟。

Thanos Makatos和Swapnil Ingle的"muser: Mediated User Space Device"演讲里面介绍了mediated device的另一方面。Muser是一个mdev kernel驱动程序,还有相关的libmuser是一个user-space库,帮助在user space实现设备模拟。应用程序可以利用libmuser API来用软件实现出一个可以支持VFIO的PCI设备。QEMU或者其他的VMM就可以把这个设备传递给guest系统了。user space实现这个基于软件的PCI设备的时候,可以利用C或者Python接口,都能支持。这套API包括注册一个PCI device description,然后处理对设备的访问,既支持callback访问方式也支持polling mmap()过的寄存器空间的访问方式,后者性能更好一些。这种模拟了一个设备的程序可以定义PCI Base Address Register (BAR),configuration space,以及其他的PCI功能,这样就能模拟出一个现有的PCI设备,或者一个完全定制的新PCI设备。

Micro VMs and new VMMs

在过去几年中,容器(container)和微服务(micro-service)越来越流行。云服务用户以及供应商都在看如何利用虚拟机来增加安全性,对各个workload进行更好的隔离,因此有多个演讲都是基于KVM的方案。

Andreea Florescu和Alexandra Iordache在名为“Firecracker: Lessons from the Trenches”的演讲中,介绍了利用Rust写的一个轻量级VMM “Firecracker”。这是用在多租户(multi-tenant)云任务上的,例如容器或者功能即服务(FaaS)。它的核心优势是启动耗时最小,占用很小内存,并且可以多报(over-subscription)CPU和内存。每个Firecracker进程可以处理一个micro-VM,利用chroot(),control groups, seccomp来界定安全边界(security boundaries)。用Rust写代码可以写出可靠性更高的代码,不过Florescu和Iordache碰到了它内部一些隐藏的bug,例如一个整数溢出问题,导致Firecracker可能会跑出各种异常现象。

还有其他人也在用Rust来做类似的事情,Alibaba, AWS, CloudBase, Google, Intel, Red Hat合作建立了rust-vmm,这是一组Rust库(术语叫Rust crate)专用于虚拟化软件。Florescu和Samuel Ortiz在名为“Playing Lego with Virtualization Components”的演讲中介绍了rust-vmm。他们解释说,Rust的关键特性(memory safety, safe concurrency, great performance)非常吻合VMM的需求。rust-vmm提供的一些样例模块包括API binding (KVM, VirtIO, VFIO),a memory model,a kernel loader,以及一些工具函数库。

Xiao Guangrong和Zhang Yulei在名为“Bring QEMU to Micro Service World”的演讲中介绍了他们如何利用QEMU来极速运行微服务。他们的方案名为QEMU basepoint,会跳过QEMU和guest系统初始化。它利用了QEMU现存的migration(迁移)功能,当VM启动起来之后就马上把它的状态保存到一个template file(模板文件)里面,然后就利用这个basepoint来启动新的VM。为了节省QEMU初始化的时间,新的VM会直接从base QEMU进程这里fork出来。这个方案可以节省启动时间,不过还是有一些局限,例如无法支持内核地址空间分布随机化功能(address-space layout randomization),今后会继续改进。

Nested virtualization

嵌套虚拟化,是指在虚拟机里面继续再运行新的虚拟机,无论是用相同还是不同的hypervisor。在很流行的云端基础设置中,通常都会利用虚拟化,kernel本身通常已经是在另一个hypervisor的基础上运行的了,因此嵌套虚拟化对KVM很重要。嵌套虚拟化因此在开发、持续集成(CI)、云端生产环境等场景下都很重要。有KVM Forum有两个演讲是关于这方面的话题的。

在Marc Hartmayer名为“Managing Matryoshkas: Testing Nested Guests”的演讲中,他介绍了利用现有的基于Python的Avacado测试架构,如何测试多层嵌套(高达7层嵌套)的环境。他利用了Mitogen库来在远端guest系统上执行Python代码,这样就重用了嵌入到内部的guest的线程的虚拟化测试条件。他快速演示了一下,这个方法很容易扩展,测试结果也很容易获取,多深的嵌套层级都不怕。Hartmayer的实验里面利用了Avocado-vt插件,不过也可以比较容易的集成到更简单的Avocado-QEMU架构里面(QEMU的acceptance test suite里面已经包含),只要等Mitogen相关改动upstream即可。

在Vitaly Kuznetsov的"Nesting&testing"演讲中,他介绍了一下x86目前是如何测试这种嵌套虚拟化的。有两个测试架构互相补充:kvm-unit-tests会利用QEMU来运行测试,kvm-selftests则会利用客制化的user-space工具来测试一些边边角角场景不过这种测试写起来比较复杂。更进一步地,测试可以利用那些专用于测试嵌套功能的测试程序,也可以直接在hypervisor之下运行那些已有的虚拟化测试程序,后者就是KVM在Hyper-V中的测试方式。

目前已有的测试中,Intel CPU的VMX已经有很多测试了,Kuznetsov在kvm-unit-test里面对他们标记为了正确性、功能性、回归测试等类别。不过AMD CPU的SVM测试则很少,大多数都在功能性测试类别。对kvm-selftests来说,AMD CPU的情况则更加糟一些,因为目前完全没有SVM的支持。SVM还是需要更多工作。

除了增加更多测试之外,还需要把现有的测试集集成到一些持续集成系统里面,尤其是这样就可以在嵌套环境里面运行这些程序了,例如Hyper-V/Azure,这种环境通常大家并不容易获得。

Conclusion

上面就是KVM Forum 2019最主要的一些话题了。还有其他一些有趣的演讲,可以在线观看,也提供了演示文稿。看起来明年爱尔兰都柏林的KVM Forum 2020会议上side-channel attack防护还会时一个热点话题,VFIO/mdev生态系统则会继续增长,因为硬件供应商和软件都可以借助它的能力。诸如Amazon, Google, Microsoft, Tencent, Huawei这些公司的出席就充分证明了KVM在云主机领域已经多么重要,并且今后可见的时间内会继续快速成长。

全文完

LWN文章遵循CC BY-SA 4.0许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注LWN深度文章以及开源社区的各种新近言论~

浅谈Linux设备虚拟化技术的演进之路 序言设备虚拟化技术,一直是云计算领域最重要的基础技术之一。我们在虚拟机里面看到的形形色色的设备,比如:网卡,磁盘,键盘,鼠标等,都离不开这项技术的帮助。这篇文章,我们将从技术演进的角度来谈... 阅读详情

相关推荐

Linux-KVM源代码结构介绍

概述 kvm模块,kvm在加载之初,只存在/dev/kvm文件。 针对虚拟处理器最重要的IOCTL调用。 内存虚拟化也是KVM模块实现,并且是一个虚拟机中代码量最大,实现最复杂的部分。 处理器中的MMU通过页表形式将程序运行的虚拟地址转换成物理地址,在虚拟机模式下,内存管理单元的页表必须在一次查询完成两次转换,KVM     模块使用了影子页表技术解决该问题。 官网代码: ht

小宇宙的专栏 1958

LWN:扩展KVM社区!

关注了就能看到更多这么棒的文章哦~Scaling the KVM communityNovember 15, 2022This article was contributed by Paolo BonziniKVM ForumDeepL assisted translationhttps://lwn.net/Articles/914638/Linus Torvalds 的可扩展性(scalabil...

Linux News搬运工 386

VFIO框架源码分析(十六)- Legacy 模式下的脏页位图查询实现细节

本文深入解析了QEMU VFIO框架中直通设备实时迁移的关键技术——脏页追踪机制。文章重点剖析了Legacy VFIO模式下QEMU如何通过vfio_legacy_query_dirty_bitmap接口与内核交互,获取设备DMA写入的内存脏页信息。详细解读了变长结构体设计、页大小协商、位图缓冲区传递等核心实现细节,揭示了该机制在确保迁移数据一致性中的重要作用。同时指出了Legacy接口存在的粒度粗糙、内存开销大等局限性,为理解VFIO实时迁移的数据同步原理提供了深入的技术视角。

qq_36071928的博客 1138

KVM Forum 2023:使用eBPF处理复杂的VM Exit

背景与动机:在KVM中处理I/O操作(尤其是MMIO)时存在性能瓶颈。传统的vhost模型虽然可以加速virtio设备,但对于其他设备,它需要在宿主内核中运行大量特定设备的代码,难以在运行时更新,且不能被沙箱化。eBPF介绍:eBPF是一个强大的内核编程工具,允许开发者在内核中运行经过安全检查的沙盒程序。eBPF的优点包括内核级的沙箱环境、可在运行时上传程序、灵活的ABI,以及目前的流行度。eBPF的应用:文档提出使用eBPF来处理KVM客户机的MMIO退出,以克服现有方法的限制。

743

kvm-unit-tests:https:git.kernel.orgpubscmvirtkvmkvm-unit-tests.git的副本

欢迎来到kvm-unit-tests 有关此项目的高级描述,以及运行测试和添加测试HOWTO,请参见 。 建立测试 该目录包含KVM测试套件的源。 要创建测试图像,请执行以下操作: ./configure make 在此目录中。 测试图像在./ARCH/*.flat中创建 注意:需要GCC交叉编译器。 独立测试 这些测试可以独立构建。 要创建和使用独立测试,请执行以下操作: ./configure make standalone (send tests/some-test somewhere) (go to somewhere) ./some-test make install会将所有测试安装在PREFIX / share / kvm-unit-tests / tests中,每个测试都是独立测试。 运行测试 然后使用运行程序脚本检测正确的调用并调用测试: ./x86-run ./

Zabbix在Ubuntu 22.04上的性能优化与监控实战:从基础安装到高级配置

本文详细介绍了在Ubuntu 22.04系统上部署和优化Zabbix监控系统的完整流程,从基础安装到高级配置。内容包括MySQL数据库设置、Zabbix服务器与Web前端优化、性能调优策略以及实战监控场景应用,帮助用户构建高效的企业级监控解决方案。

sss66的博客 894

KVM Forum 2022应该关注的话题

第15届KVM论坛于2022年9月12日至9月14日在爱尔兰都柏林会议中心举行。KVM Forum2022有哪些指的关注的技术,KVM未来发展方向如何,有哪些激动人心的想法,让我们一睹为快。

rayylee 1646

Python调用Google Trends官方数据接口实战指南

Google Trends作为全球最权威的搜索热度分析工具,其数据本质是公开、结构化、可编程访问的时序指标,而非需爬取的网页内容。其底层基于标准HTTP协议与JSON API交互,核心原理在于复现用户浏览器行为——通过/explore接口获取token,再凭token请求/widgetdata/multiline等端点获取归一化(0-100)时间序列数据。该技术路径规避了Selenium渲染依赖与非官方库的脆弱性,具备高稳定性、易调试、可监控等工程优势,广泛应用于竞品监测、内容选题验证、地域营销策略制定等业

weixin_29789925的博客 417

qemu 跑 kvm-unit-test

Compling process: git clone https://github.com/rhdrjones/kvm-unit-tests.git ./configure make After compiling successful, you will find there has a lot of *.elf file in the x86/ directory, each fil...

sfz200809242719的专栏 1091

Yolov5自学笔记之一--从入门到入狱,功能强大不要乱用(实现yolov5的基本功能使用流程及训练自己的数据集)

零基础自学yolov5,学会简单使用和训练自己的数据集,在自己工作中使用

qq_41597915的博客 1万+

Sigrity IBIS建模实战:如何用T2B工具快速转换SPICE模型(附避坑指南)

本文详细介绍了如何使用Sigrity T2B工具将SPICE模型高效转换为IBIS模型,涵盖从环境配置、模型预处理到转换流程和验证策略的全过程。通过实战案例和避坑指南,帮助硬件工程师掌握高速电路设计中的IBIS建模技术,提升信号完整性分析效率。

weixin_29243279的博客 393

虚拟化顶级技术会议KVM Forum演讲分享 | 移动云KVM共享云盘技术实践

2020年度的KVM Forum会议将于北京时间10月28日20:00-31日00:30在线上举行。作为虚拟化领域最具影响力的国际会议,KVM Forum为开发人员和用户提供了一个讨论Linux虚拟化技术的发展趋势及未来发展挑战的高端技术会议平台,是虚拟化领域最为重要和权威的大会。本次会议汇聚了Google、Amazon、Red Hat、Intel、Alibaba、ByteDance等众多国内外顶级云服务厂商,中国移动云能力中心的高级软件开发工程师白耀伟受邀参加会议,并将于北京时间10月31日00:00-0

RToax 1205

ROS智能车定位导航仿真+功能包自带的地图实现+自己建立的地图实现

ROS智能车定位导航仿真一、前言二、效果图三、准备工作[1.在Ubuntu上安装ROS Kinetic](https://blog.youkuaiyun.com/qq_42585108/article/details/104327661)2.创建ROS工作区间①1创建racecar_ws和src文件夹②初始化工作空间③下载racecar源代码包,并编译工程四、启动仿真1.设置环境变量2.启动地图五、建图1.启动slam和rviz2 控制车辆(左侧有个控制窗口),WASD控制前左后右的运动就可以建图了:3.新建终端保存地

qq_42585108的博客 1万+

KVM系统虚拟化性能测试过程总结

目录结构config:配置文件dl:下载的软件包output:输出文件package:软件包版本,编译配置信息配置界面:Target options:用于为构建目标选择特性和配置参数Toolchain:该选项用于配置工具链和编译器特性System configuration:该选项用于配置生成的文件系统的配置文件和启动特性Target packages:该选项用于选择和配置所需要的软件包和软件环境。

xuxuluo的博客 2011

HTTPDebugger实战:iTunes登录协议抓包与签名验证全解析

HTTPS抓包是分析客户端与服务端交互的重要手段,其原理是通过中间人证书解密TLS流量,从而观察请求与响应细节。在调试iTunes登录协议时,抓包能帮助我们定位签名验证失败、x-timestamp过期等棘手问题。然而,许多教程中常见的mumu模拟器抓包、fiddler手机抓包或charles抓包unknown问题,往往让新手陷入工具陷阱。本文以HTTPDebugger为切入点,从TLS握手到认证请求,系统拆解iTunes登录协议的关键字段与签名机制,覆盖证书配置、进程监听、域名过滤等实战经验,辅以Apple

weixin_30768881的博客 195

Open3D 点云重叠区域检测【2025最新版】

本文介绍了一种基于八叉树和KD树的点云重叠区域检测方法。算法提供两种检测模式:八叉树(快速)和KD树(精确),支持可视化显示和详细统计信息输出。实现功能包括边界扩展、索引去重、精度调节等,可通过max_depth参数控制八叉树细分程度,distance_threshold调整检测精度。代码使用Open3D库,能自动计算并显示各点云的重叠比例和点数统计,最终结果以不同颜色区分重叠与非重叠区域。该方案适用于三维点云数据处理中的重叠分析任务。

点云侠的博客 598

linux 测试工具

六款优秀的 Linux 基准测试工具 基准测试是指运行计算机程序去评估硬件和软件性能的行为。硬件基本测试包括评估处理器,内存,显卡,硬盘,网络等不同组件的性能。基准测试有两类: 复合和应用。复合基准对一个硬件执行压力测试,如连续写入和读取数据。应用基准则是衡量真实世界应用程序如数据库和服务器的性能。基准测试软件可以让系统 测试者和用户客观独立的评估硬件性能。Linux下有许多优秀的开源L

yuyin86的专栏 5173

最适合入门的100个深度学习项目

本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 12万+

KVM嵌套虚拟化性能优化:EPT与VPID技术实战指南

你是否遇到过虚拟化环境中多层虚拟机嵌套导致的性能骤降问题?在云计算和开发测试场景中,嵌套虚拟化(如KVM上运行KVM)常因内存地址转换效率低下导致性能损耗达30%以上。本文将详解Linux内核如何通过EPT(扩展页表)和VPID(虚拟处理器标识符)技术解决这一痛点,让你轻松掌握嵌套虚拟化性能调优的核心方法。 ## 技术原理:打破传统虚拟化性能瓶颈 传统虚拟化中,每个虚拟机(VM)的内存访问需经...

gitblog_00723的博客 603

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

KVM2023论坛开始征集演讲稿

KVM论坛是一个交流虚拟化技术的年度盛会,为KVM和QEMU的开发者和用户提供了一个难得的机会来讨论Linux虚拟化技术的现状,并为未来的挑战做计划。KVM forum会议内容包括KVM虚拟化的最新状况,对未来的规划,以及与会者之间合作的情况。今年的活动将于2023年6月14-15日在捷克共和国布尔诺举行。只在现场举行,并在DevConf.CZ开源社区会议之前举行。6月14日将有一部分时间用于黑客马拉松或 “day of BoFs”。

rayylee 699

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Intel Scalable IOV介绍及应用实例

另一种是使用内存映射,即图中的fast path:把VDEV映射到user space,建立MMU或者EPT页表,实现HVA(Host Virtual Address)或者GPA(Guest Physical Address)到HPA(Host Physical Address)的转换。设备驱动通过VFIO的mdev_get_iommu_domain() 接口和IOMMU的iommu_aux_get_pasid()接口获得VDEV所在的IOMMU domain和VDEV绑定的PASID.

weixin_60043341的博客 2238

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

一文带你领略虚拟化领域顶级技术会议KVM Forum 2018

KVM Forum是由Linux基金会组织的高端技术论坛会议,主要为社区各个维护者,开发人员,和用户提供一个讨论Linux虚拟化技术发展趋势以及挑战的交流场所。参会人员都集中在KVM虚拟化相关领域,是KVM社区最为重要和权威的大会。 概述 2018年度的KVM Forum于10月24-26日在英国爱丁堡召开。本次会议吸引了众多技术专家参与会议。同时,参会...

weixin_34375054的博客 323

vfio-mdev逻辑空间分析

在mdev的模型中,通过mdev_register_device()注册到mdev中的设备称为父设备(parent_dev),但你用的时候不使用父设备,而是通过父设备提供的机制(在sysfs中,后面会详细谈这个)创建一个mdev,这个mdev自带一个iommu_group,这样,你有多个进程要访问这个父设备的功能,每个都可以有独立的设备页表,而且互相不受影响。换句话说,如果一个设备需要给多个进程提供用户态驱动的访问能力,这个设备在probe的时候可以注册到mdev框架中,成为一个mdev框架的pdev。

runshui27的博客 662

【真的很先进】阿里云在2018-KVM Forum上分享的动态迁移实践

信息来源:https://segmentfault.com/a/1190000017103830 【如文中所说:如何解决实际生产环境中遇见的现实问题,正受到业界越来越多的重视。 确实啊,一线云计算大厂形成的技术壁垒,为其未来的寡头局面奠定了基础。】 《Cloudatlas: Ways to Make Live Migration Easy and Expectable》 如何平衡热迁...

weixin_30835649的博客 419

虚拟网络演进之路

本篇文章将带领大家了解以下网络设备虚拟化的演进之路,以及网络设备虚拟化发展的原因。本文是从全虚拟化->virtio->vhost->vfio->vdpa->vduse演进详细分析一下网络虚拟化的干货。序言设备虚拟化技术,云计算领域的核心之一。虚拟机里面的形形色色的设备,比如:网卡,磁盘,键盘,鼠标等,都是利用这项技术实现的,本文将从linux网络设备虚拟化的演进角度来看看,这发展的轨迹,网络虚拟化大体上分为三类,全虚拟化,半虚拟化,IO透传。全虚拟化场景下虚拟机操作系统不感知自己是虚拟机,半虚拟化虚拟机能感

weixin_37515230的博客 1900

Linux内核:VFIO Mediated Device(vfio-mdev)内核文档(翻译)

《ARM SMMU原理与IOMMU技术(“VT-d” DMA、I/O虚拟化、内存虚拟化)》 《提升KVM异构虚拟机启动效率:透传(pass-through)、DMA映射(VFIO、PCI、IOMMU)、virtio-balloon、异步DMA映射、预处理》 《内核引导参数IOMMU与INTEL_IOMMU有何不同?》 《DMAR(DMA remapping)与 IOMMU》 《Linux驱动:VFIO概述(vfio/iommu/device passthrough)》 《Linux内核:VFIO

RToax 6841
上一篇: LWN:改进KVM来增强guest系统保护和安全!
下一篇: LWN: 针对GCC的静态分析框架!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值