linux开启IOMMU方法

 2023-09-15 阅读 13 评论 0

摘要:一、IOMMU简介 IOMMU:input/output memory management unit。连接DMA io bus和主存,完成从设备虚拟地址到物理地址的映射。提供对故障设备的内存保护的功能。 优点 因为IOMMU的映射,能够将多个不连续的物理地址映射为大块连续的地址供设备使用,便

一、IOMMU简介

  • IOMMU:input/output memory management unit。
  • 连接DMA io bus和主存,完成从设备虚拟地址到物理地址的映射。
  • 提供对故障设备的内存保护的功能。
    在这里插入图片描述

优点

  • 因为IOMMU的映射,能够将多个不连续的物理地址映射为大块连续的地址供设备使用,便于简化驱动设计
  • 使旧设备(32bit设备)能够使用高位地址
    (能够改善内存使用,提高性能)
  • 内存保护,避免设备使用不属于它的地址
  • 提供硬件中断remapping功能

linux文件权限,缺点

  • 地址转换和管理开销带来的性能降级
  • 消耗物理内存

虚拟化中的应用
一般来说,因为内存地址不同,虚拟机中的操作系统无法直接访问host上的设备。通过IOMMU,能够将设备地址在虚拟机中和host中映射为同样的支持,供虚拟机使用。
这样的做法也能够缓解IO延时。

二、Linux开启IOMMU
2.1 修改/etc/default/grub, 调整GRUB_CMDLINE_LINUX内容

  GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet amd_iommu=on iommu=pt"(amd_iommu/intel_iommu/AuthenticAMD)

linux进入图形界面命令,2.2 重新创建引导

  • 如果服务器时UEFI启动
 grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
  • 普通模式启动
  grub2-mkconfig -o /boot/grub2/grub.cfg

2.3 在BIOS中开启IOMMU选项,如果网卡有对应的虚拟化选项需同步开启
2.4 查看状态

   dmesg | grep -E "DMAR|IOMMU"

参考:
https://loveyu.org/5685.html
https://www.jianshu.com/p/035287ba9acb
https://www.cnblogs.com/bhlsheji/p/5317002.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/61060.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息