0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ARM对虚拟化下设备直通的支持

安芯教育科技 来源:极术社区 作者:James张 2021-09-26 10:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着云计算领域里,ARM架构处理器的广泛使用,应用开发人员熟悉ARM架构相关技术的需求越来越迫切。众所周知,提供虚拟机服务是云计算的典型应用场景,而虚拟机里设备性能的优劣对服务质量至关重要。

提到虚拟机里的设备,就不得不提及设备的虚拟化,最初虚拟机里的设备完全是依靠软件模拟来实现,也叫全虚拟化设备,这样的好处是运行在物理机里的OS可以完全不需要修改就能在虚拟机里运行,但设备性能很差,满足不了人们的需求。

后来,有人提出了半虚拟化的思想,寄希望于软件的优化,比如修改设备模型,减少不必要的内存拷贝,来满足大家对设备的性能需求。典型代表virtio设备。此法使性能虽有较大提升,但与真实的设备仍有较大差距。为了获取等同于真实设备的性能,设备直通的方式被提了出来,也渐渐成为主流方式。

虚拟机里使用直通的设备,的确可以带来最大的性能提升。但是却暴漏出一系列的系统安全问题。比如提供DMA的设备通常可以写内存的任意页,因此虚拟机里的Guest OS拥有创建DMA的能力就等同于用户空间拥有了root权限,恶意的设备可能利用此发动DMA攻击,给其他虚拟机乃至整个物理机带来安全问题。

因此,需要提供DMA重映射功能,通过页表方式将直通设备对内存的访问限制到特定的域中,在提高IO性能的同时完成了直通设备的隔离,保证了直通设备DMA的安全性。此外,直通设备的中断默认是发给物理CPU的,要想通知到虚拟机里的vCPU,就需要中断的重定向。

DMA重映射跟中断重定向的实现,最初是完全交由虚拟机监控器(Hypervisor)或模拟器(比如qemu)来负责。这是一种纯软件的思路,必然大大降低设备的性能,因此急需硬件的参与配合。

为此,ARM的SMMU和GIC规范顺势添加了对DMA重映射跟中断重定向的支持。本文的重点便是围绕这两大特性介绍如何支持虚拟化环境下的设备直通。

DMA重映射

SMMU是System MMU的缩写,是ARM架构下一种对非CPU设备提供地址翻译服务的组件,功能类似于CPU的MMU组件。这里非CPU设备主要指发起DMA操作的外围子系统。如下图所示:

21cffc8e-10f8-11ec-8fb8-12bb97331649.png

注:PE为Processing Element 的缩写,可理解为CPU。

在虚拟化应用场景下,地址翻译往往分为两个阶段。阶段一是虚拟地址(VA)到GuestOS认为的物理地址(IPA)间的转换;阶段二为IPA到真实物理地址(PA)间的转换。而SMMU既可以同时支持两个阶段的转换,也可以单独支持每个阶段的转换。

这为直通设备DMA重映射提供了可能。直通设备的DMA只需要获取IPA,之后的工作便交由SMMU来做阶段二的处理,以达到安全高效的访问PA的目的。如下图所示:

针对以上应用场景,我们介绍SMMU的内部结构来阐述具体实现原理。SMMU含有两个核心单元,分别为翻译控制单元TCU和翻译缓冲单元TBU。其中TCU主要含有Stream Mapping Table(SMT)和Context Bank Table(CBT)。

SMT通过StreamID来索引内部的Entry,StreamID跟具体直通设备一一对应, 从而获取到指向CBT具体Entry的指针。CBT的Entry内容则含有阶段二翻译表的指针,当获取到此指针后,翻译过程即可像普通MMU一样按部就班的进行下去。而TBU的作用等同于TLB,借助Cache原理,加快SMMU工作效率,不再赘述。以上描述过程总结为如下框图所示:

21e87cc8-10f8-11ec-8fb8-12bb97331649.png

中断重定向

GIC是Generic Interrupt Controller的缩写。GIC的主要作用是路由各种不同的中断信息给CPU。虚拟化环境下的中断处理情形要复杂的多,有些因指令trap产生的中断需要Hypervisor本身来处理;

有些是分配给某个虚拟机的直通设备产生的中断则需要虚拟机内的软件来处理;也有中断被接收时,对标的虚拟机没有处于运行状态的情况。这需要GIC提供机制,重定向中断以满足上述复杂的需求。

由于本文的重点是对直通设备虚拟化支持的讲解,因此此部分将介绍GIC是如何支持直通设备中断重映射的,并不会剖析GIC内部组成及实现原理。我们以GICv3为例,图示如下:

2202c5f6-10f8-11ec-8fb8-12bb97331649.png

配以如下步骤说明:

1 直通设备发起的中断IRQ到达GIC;

2 GIC发物理的IRQ到CPU;

3 Hypervisor会从Physical CPU Interface读取中断信息;

4 Hypervisor发现此中断是某虚拟机内的直通设备触发,于是通过写GIC List Register重新注入一个虚拟IRQ到GIC中;

5 GIC产生vIRQ中断并发给vCPU;

6 最终vCPU接收vIRQ中断并由运行其上的GuestOS接管并通过跟Virtual CPU interface交互处理后续中断任务。

至此,一个完整的中断重映射过程结束。

在GIC参与直通设备的中断重映射后,虚拟机在处理中断效率上有了明显提升,但是跟Host主机上普通物理中断相比,总是多了一步由软件Hypervisor参与的动作。因此,我们称以上方式为间接注入中断的方式。

为了进一步提高处理中断的效率,GICv4引入了直接注入中断方式。具体原理则是直通设备在获取中断时,GIC会将分配给设备的物理中断与虚拟中断做一个映射。这样当设备触发中断时,GIC会直接发信号给vCPU。

有这样一种情况,设备触发中断时vCPU没有运行,即虚拟机处于休眠态,如果直接发vIRQ给vCPU是得不到响应的,这时候会产生一个物理的door-bell中断来代替,此中断交由Hypervisor处理,它会重新调度vCPU,从而使中断得到及时响应。

本文通过虚拟化下如何支持设备直通的角度,讲解了ARM架构支持DMA重映射跟中断重定向的原理,旨在普及ARM架构下一些支持虚拟化的技术。当然ARM架构对虚拟化的支持不仅局限于此。相信随着ARM生态的不断完善,这些技术会被越来越多的人所熟知。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    135

    文章

    9499

    浏览量

    388567
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11216

    浏览量

    222871
  • dma
    dma
    +关注

    关注

    3

    文章

    577

    浏览量

    105323
  • CBT
    CBT
    +关注

    关注

    0

    文章

    5

    浏览量

    8311

原文标题:技术分享 | ARM对虚拟化下设备直通的支持

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开源鸿蒙技术大会2025丨虚拟与容器分论坛:构筑开源鸿蒙虚拟技术高地

    随着开源鸿蒙技术的快速发展,各行各业、各品类的生态设备加速融入生态,当数字世界的边界不断拓宽,我们正站在操作系统革命的十字路口。虚拟技术打破硬件桎梏,‌让一块芯片承载多重宇宙,从智能手表到车载系统
    的头像 发表于 11-20 17:35 523次阅读
    开源鸿蒙技术大会2025丨<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>与容器分论坛:构筑开源鸿蒙<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>技术高地

    5G工业网关支持采集哪些设备

    5G工业网关支持采集的设备类型广泛,涵盖工业控制、环境监测、能源管理、物流运输、农业生产等多个领域,具体包括以下设备 : 一、工业控制类设备 PLC(可编程逻辑控制器) :作为工业自动
    的头像 发表于 11-14 11:36 153次阅读
    5G工业网关<b class='flag-5'>支持</b>采集哪些<b class='flag-5'>设备</b>

    车载软件vECU虚拟测试解决方案

    虚拟测试:利用虚拟技术,实现将真实域控制器转化为虚拟域控制器,运行在PC或服务器环境中运行,从而实现在不依赖真实硬件的情况下完成对应测试
    的头像 发表于 10-30 09:34 1510次阅读
    车载软件vECU<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>测试解决方案

    PCBA直通率99.9%怎么做到的?头部工厂的“零缺陷”实战秘籍

    设计优化、供应链管控、工艺控制、设备升级、数字追溯及人员能力提升六大核心环节协同作用,具体实现路径如下:   PCBA加工厂实现99.9%直通率的方法 一、设计阶段:前置风险防控 DFM(可制造性设计)分析 利用专业软件对PC
    的头像 发表于 09-23 09:11 378次阅读

    KVM虚拟环境部署与性能优化教程

    在云计算时代,虚拟技术已经成为企业IT基础设施的核心组件。作为一名在生产环境管理过上千台虚拟机的运维工程师,我深知选择正确的虚拟平台对业
    的头像 发表于 09-08 17:13 951次阅读

    基于USB的多虚拟设备通信

    接口性能使MCU不仅能够处理典型的设备/主机通信,还可以通过USB虚拟多个设备或数据通道。这一特点有效满足了各种应用的多样需求。 U
    发表于 09-05 06:51

    龙芯处理器支持WINDOWS吗?

    目前尚无迹象。 总结 若需使用Windows,建议选择x86/ARM架构设备;若使用龙芯平台,需依赖Linux生态。龙芯的优势在于自主可控与特定领域(如工业控制、政务办公)的定制需求,而非通用消费市场的Windows兼容性。
    发表于 06-05 14:24

    虚拟数据恢复—XenServer虚拟平台上VPS不可用的数据恢复案例

    虚拟环境: 某品牌720服务器中有一组通过型号为H710P的RAID卡+4块STAT硬盘组建的RAID10,上层部署Xen Server服务器虚拟平台。
    的头像 发表于 05-30 11:35 517次阅读
    <b class='flag-5'>虚拟</b><b class='flag-5'>化</b>数据恢复—XenServer<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>平台上VPS不可用的数据恢复案例

    智慧矿山场景:聚徽嵌入式工控一体机如何实现井下设备无人化操控

    在矿山开采领域,传统的人工开采模式面临着效率低、安全风险高、人力成本上升等诸多问题。随着科技的飞速发展,智慧矿山建设成为矿业转型升级的关键方向,而井下设备的无人化操控则是智慧矿山的重要标志之一
    的头像 发表于 05-20 13:20 480次阅读

    基于云端虚拟技术云手机解决方案

    云手机解决方案基于云端虚拟技术,通过整合软硬件资源实现多设备集群化管理与智能操作,以下是针对不同应用场景的核心要素与技术架构解析: 一、核心技术架构‌
    的头像 发表于 05-09 08:04 578次阅读
    基于云端<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>技术云手机解决方案

    新思科技推出基于Arm服务器原生运行的Virtualizer虚拟仿真技术

    新思科技近日宣布在基于Arm服务器上推出新思科技Virtualizer 原生运行虚拟仿真技术(Synopsys Virtualizer Native Execution on Arm
    的头像 发表于 03-17 17:45 985次阅读

    hyper v 虚拟,Hyper-V 虚拟:Hyper-V虚拟的最佳实践

    在当今快节奏的商业环境中,数据的高效处理能力是企业竞争力的关键因素之一。批量管理工具以其强大的批量操作功能,为企业提供了一种高效、便捷的数据处理解决方案。今天就为大家介绍Hyper-V虚拟
    的头像 发表于 02-07 10:24 967次阅读
    hyper v <b class='flag-5'>虚拟</b><b class='flag-5'>化</b>,Hyper-V <b class='flag-5'>虚拟</b><b class='flag-5'>化</b>:Hyper-V<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>的最佳实践

    hyper v 虚拟,hyper-v虚拟:企业级虚拟化解决方案的全面解析

    在企业管理中,任务的分配和执行是核心环节之一。然而,传统方式往往因效率低下而影响整体工作进度。批量管理工具的出现,为企业管理提供了全新的思路和方法。今天就为大家介绍hyper-v虚拟:企业级虚拟
    的头像 发表于 01-24 14:21 2345次阅读
    hyper v <b class='flag-5'>虚拟</b><b class='flag-5'>化</b>,hyper-v<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>:企业级<b class='flag-5'>虚拟</b>化解决方案的全面解析

    RAID 5 在虚拟环境中的应用

    随着信息技术的飞速发展,虚拟技术已经成为数据中心和企业IT基础设施的重要组成部分。虚拟技术通过在单一物理服务器上运行多个虚拟机(VMs)
    的头像 发表于 12-27 17:18 1223次阅读

    直通电度表——关键的计量设备

    在现代电力计量领域,直通电度表作为一种关键的计量设备,发挥着极为重要的作用。它能够精确地测量电路中的电能消耗,为电力供应、能源管理以及电费结算等诸多环节提供不可或缺的数据支持直通
    的头像 发表于 12-11 09:51 1750次阅读