IOMMU(Input/Output Memory Management Unit,输入输出的内存管理单元)
是一种内存管理单元(MMU,Memory Management Unit)
,它将具有直接存储器访问(DMA)
能力的I/O总线
连接至主内存(Main Memory)
。
介绍
说明:
MMU(Memory Management Unit,内存管理单元)
支持多进程的虚拟地址共享同一个物理内存,以及对物理地址的访问进行权限检查的一个硬件单元- 传统的
MMU(内存管理单元)
会把 CPU 访问的虚拟地址
转化成为物理地址
IOMMU
把设备(device)
访问的虚拟地址
转化成物理地址
- 有些
IOMMU
提供了访问内存保护机制防止错误地访问内存
使用场景:
- 在虚拟化技术(virtualization):
虚拟机操作系统(Guest OS)
通常不知道它所访问的宿主机物理内存地址。如果对物理内存进行DMA(Direct Memory Access)
操作,有可能破坏内存,因为硬件不知道给定Guest OS
与宿主机物理地址之间的映射关系。IOMMU
可以依靠将客户机物理地址映射到宿主机物理地址的相同或兼容转换表(translation table)
映射(re-mapping)
硬件访问地址,从而解决延迟问题。
配置方法
修改 /etc/default/grub
,在字段 GRUB_CMDLINE_LINUX
后添加:
# intel
GRUB_CMDLINE_LINUX="... intel_iommu=on"
# amd
GRUB_CMDLINE_LINUX="... amd_iommu=on"
- 修改 grub
grub2-mkconfig -o /boot/grub2/grub.cfg
# or
grub-mkconfig -o /boot/grub/grub.cfg
- 重启
reboot
参考
- 上一页:Pause Pod 介绍
- 下一页:Go string 字符串
专栏文章
- Linux 系统调优
- QPS和TPS介绍
- Linux 清空缓存 drop caches
- Linux 使用 isolcpu 参数隔离 cpu
- Linux NUMA 介绍
- Linux hugepage 介绍和配置
- Linux IOMMU 介绍(当前)
最近更新
最新评论
加载中...