关闭

什么是IOMMU

5654人阅读 评论(0) 收藏 举报
分类:

IOMMU:input/output memory management unit。

Device的IOMMU类似于CPU的MMU。


对IOMMU的支持主要有两个原因,一个是对老设备的支持,另外一个是对scatter/gather的支持。

现有的VMM必须使用模拟设备将来自客户操作系统的驱动程序路由到VMM。这样做是为了管理对共同内存空间的访问,并闲置对内核模式驱动程序的真实设备访问。AMD的IOMMU设计消除了这些限制,提供DMA地址转换、对设备读取和写入的权限检查。有了IOMMU,客户操作系统中一个未经修改的驱动程序可以直接访问它的目标设备,避免了通过VMM运行产生的开销以及设备模拟。VMM将能够利用IOMMU硬件从运行在客户操作系统上的软件对物理设备的更快速、更直接以及更安全的访问。

IOMMU还加入了对虚拟化的支持:DMA Remapping和Interrupt Remapping。


IOMMU需要CPU支持,并在主板中启用。

AMD has published a specification for IOMMU technology in the HyperTransport architecture.

Intel has published a specification for IOMMU technology as Virtualization Technology for Directed I/O, abbreviated VT-d.

如果是intel cpu, 在linux下通过命令“dmesg | grep -e DMAR -e IOMMU”查看是否打开IOMMU。

如果是AMD CPU,则执行命令:dmesg | grep AMD-Vi


0
0
查看评论

IOMMU简介

IOMMU简介 随着虚拟化技术逐渐升温,Intel和AMD近来支持了IOMMU技术。而Solaris对IOMMU技术在SPARC平台上的支持则可能要追溯到它们诞生的时候了。Solaris去年已经支持了x86平台上的IOMMU。 早期Solaris在SPARC平台上对IOMMU的支持主...
  • force_eagle
  • force_eagle
  • 2012-07-13 17:38
  • 12300

IOMMU简述-上篇

IOMMU的全称是Input/Output Memory Management Unit,即输入/输出内存管理单元,其主要功能链接DMA-capable I/O总线和系统内存。传统的内存管理单元MMU,是将CPU-visible的虚拟地址转换成物理地址,而IOMMU则是将Device-visib...
  • mathstar
  • mathstar
  • 2014-04-24 20:50
  • 4774

IOMMU概念,优点,缺点

The IOMMU or input/output memory management unit is a computer memory management unit (MMU) that connects a DMA-capable I/O bus to the primary storage...
  • hotsolaris
  • hotsolaris
  • 2007-08-08 17:33
  • 3545

7.3 IOMMU流程分析

本节分析intel vt-d 在kvm中的实现流程
  • wanthelping
  • wanthelping
  • 2015-07-26 17:03
  • 3733

IO虚拟化和AMD的IOMMU

I/O Virtualization and AMD’s IOMMUAMD64s virtualization extensions provide hardware support for VMM CPU virtualization, but thats only half the pictur...
  • hotsolaris
  • hotsolaris
  • 2007-08-23 13:23
  • 2498

在Linux和Xen中实现IOMMU

Utilizing IOMMUs for Virtualization in Linux and XenAbstractIOMMUs are hardware devices that translate device DMA addresses to proper machine physical...
  • hotsolaris
  • hotsolaris
  • 2007-08-22 17:41
  • 2377

关于使用kvm-pci-assign IOMMU遇到的问题

按照书上写的配置了内核,BIOS里也启动了IOMMU,但是无论怎么弄都出现 ”qemu-system-x86_64 No IOMMU found.  Unable to assign device ”的错误。 这是因为最新的内核里,建议废除KVM_ASSIGN机制,只支持vfio...
  • leoufung
  • leoufung
  • 2016-08-07 20:33
  • 2237

DMABUF, DMA mapping,IOMMU的区别

DMABUF, DMA mapping,IOMMU的区别 1. DMABUF can be used as a wrapperto encapsulate other memory management frameworks. All these memory managementframewor...
  • lintwins
  • lintwins
  • 2015-12-07 10:30
  • 2077

Intel IOMMU在Linux上的实现架构

1.检测平台是否支持DMAR设备./drivers/pci/dmar.c->int __init early_dmar_detect(void){        acpi_status status = AE_OK;...
  • hotsolaris
  • hotsolaris
  • 2007-08-24 16:58
  • 3213

dev/iommu_group/iommu_domain 三者关系的简单理解

从device这个结构体中可以得到struct iommu_group *group; 例如: struct iommu_group *iommu_group_get(struct device *dev) {     struct iommu_group *g...
  • tiantao2012
  • tiantao2012
  • 2017-03-17 17:20
  • 964
    个人资料
    • 访问:1700625次
    • 积分:15308
    • 等级:
    • 排名:第881名
    • 原创:242篇
    • 转载:107篇
    • 译文:2篇
    • 评论:273条