此篇文档介绍了IOMMU相关的信息:

https://blog.chaosjohn.com/Check-VT-D-or-IOMMU-under-Linux.html

iommu和vt-d都是io半虚拟化的一种技术,两者很接近,只不过iommu是AMD的,vt-d是Intel的。

IO半虚拟化对比IO虚拟化,主要是虚拟机可直接和IO设备通信,而不必走VMM虚拟出来的虚拟IO设备。举例来说,VMguest系统可以直接访问物理显卡并调用其资源,而不必通过VMM虚拟出来的显卡调用资源。

linux中检查IOMMU是否开启

一般可以在主板BIOS/UEFI中可以找到,但是如果该硬件不支持虚拟化或者硬件固件被阉割但是实际上vt-d/iommu是被启用的。所以通过BIOS/UEFI固件并不能保证一定可以看到IOMMU信息。

正确的方法是通过dmesg命令查看。因为如果vt-d或者ioMmu开启并被使用,系统就会配置和启动DMA重映射,所以通过观察DMA是否启动来得知iommu是否开启。

执行以下命令:

dmesg | grep -i dmar

可以得到如下结果:

[    0.144034] DMAR: IOMMU enabled
[ 0.779260] DMAR: Host address width 52
... [ 0.779305] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[ 0.781570] DMAR-IR: Enabled IRQ remapping in x2apic mode
...
[ 3.776139] DMAR: Intel(R) Virtualization Technology for Directed I/O

可以看到有“IOMMU enabled”的信息,这说明此运行时系统打开了IOMMU。

除了用dmesg,还可以通过cat /proc/cmdline指令查看iommu是否打开。cmdline中的参数会被内核执行命令行时获取并解析,但不代表该一定能够起作用,也有发现cmdline中某配置被设置为enabling但是实际上系统却并没有打开它的情况。

linux性能优化基础——iommu相关配置的更多相关文章

  1. MySQL性能优化-I/O相关配置参数

    本文介绍InnoDB和MyISAM两种存储引擎的I/O相关参数配置. 1.InnoDB  I/O相关配置 Innodb是一种事务型的存储引擎,为了减少提交事务时产生的io开销,innodb采用了写日志 ...

  2. 深挖计算机基础:Linux性能优化学习笔记

    参考极客时间专栏<Linux性能优化实战>学习笔记 一.CPU性能:13讲 Linux性能优化实战学习笔记:第二讲 Linux性能优化实战学习笔记:第三讲 Linux性能优化实战学习笔记: ...

  3. 如何学习Linux性能优化?

    如何学习Linux性能优化? 你是否也曾跟我一样,看了很多书.学了很多 Linux 性能工具,但在面对 Linux 性能问题时,还是束手无策?实际上,性能分析和优化始终是大多数软件工程师的一个痛点.但 ...

  4. EMW 性能优化二之---并发配置

    EMW 性能优化二之---并发配置 在前一个日志中写到交货的异步更新,对于RFUI RF的前台操作会提升效率,异步更新不用等待更新状态的返回,启用更新队列的方式执行(SM13). 下面再补全性能相关的 ...

  5. Linux 性能优化之 IO 子系统 系列 图

    http://blog.sina.com.cn/s/articlelist_1029388674_11_1.html Linux 性能优化之 IO 子系统(一) 本文介绍了对 Linux IO 子系统 ...

  6. Linux性能优化从入门到实战:01 Linux性能优化学习路线

      我通过阅读各种相关书籍,从操作系统原理.到 Linux内核,再到硬件驱动程序等等.   把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序.库函数.系统调用.再到内核和硬件等不同的层级贯 ...

  7. Linux系统下ssh的相关配置详细解析

    Linux系统下ssh的相关配置进行了详细的分析介绍. ssh是大家常用的登录linux服务器的方式,但是为了安全考虑,有时候我们需要针对ssh做一些特殊处理,本文记录笔者曾经做过的一些修改,供大家参 ...

  8. Linux 性能优化解析

    前情概述 进程调度 老板 cpu 任劳任怨的打工仔 线程 工作在做什么 可运行队列 拥有的工作清单 上下文切换 和老板沟通以便得到老板的想法并及时调整自己的工作 中断 部分工作做完以后还需要及时向老板 ...

  9. Linux性能分析——分析系统性能相关的命令

    Linux性能分析——分析系统性能相关的命令 摘要:本文主要学习了Linux系统中分析性能相关的命令. ps命令 ps命令用来显示系统中进程的运行情况,显示的是当前系统的快照. 基本语法 ps [选项 ...

随机推荐

  1. <题解>「LibreOJ NOIP Round #1」序列划分

    solutions 题面loj#542 对我来说,这或许已经超出了我的能力,我,只能看题解 不知道我写完这一篇题解之后,会不会对我的构造题有一点点的帮助 让我在这类题的解决上能过有一些提升 直接说明白 ...

  2. layui的CRUD案列

    用layui来实现一个简单的二级权限和增删改查案列 利用layui提供的组件(table , layer , form,tree)来进行开发 写一个简单的登录界面   根据用户的ID来 获取用户所对应 ...

  3. Python PIL、Pillow笔记

    原文链接:https://blog.csdn.net/FlashKoala/article/details/90649464 一.PIL.Pillow简介 PIL(Python Imaging Lib ...

  4. B. 2194: 快速傅立叶之二解题报告

    $$\begin{eqnarray}&c[k] = \sum_{i}^{n}a[i]b[i-k] \\&c[k] = \sum_{i}^{n}a[n-i]b[i-k] (倒序保存a) ...

  5. python3 爬虫五大模块之二:URL管理器

    Python的爬虫框架主要可以分为以下五个部分: 爬虫调度器:用于各个模块之间的通信,可以理解为爬虫的入口与核心(main函数),爬虫的执行策略在此模块进行定义: URL管理器:负责URL的管理,包括 ...

  6. Abp Vnext3 vue-admin-template(三获取用户信息)

    因为获取用户比较简单,只需要把用户名及头像地址赋值即可(也许理解错误,如果发现请告知谢谢), 首先将src\api\usr.js中的url请求地址改为以下代码 export function getI ...

  7. AQS深入分析

    一.node概念 1.当线程获取锁失败时,会被打包成一个node放到同步队列中 2.node属性 当线程获取锁失败时,会被打包成一个node放到同步队列中,所以node属性中有一个thread属性; ...

  8. 泛微OA E-cology(CNVD-2019-32204)远程命令执行漏洞复现分析

    漏洞复现 影响版本: E-cology 7.0 E-cology 8.0 E-cology 8.1 E-cology 9.0   直接在网站根目录后加入组件访问路径 /weaver/bsh.servl ...

  9. 用Java写了一个程序,将一个Mysql库中的表,迁移到另外一个server上的Mysql库中

    用Navicat做数据迁移,因为数据量比较大,迁移过过程中一个是进展不直观,另外就是cpu占用率高的时候,屏幕跟死机了一样点不动按钮,不好中断. 想了想,干脆自己写一个. 在网上找了一个sqllite ...

  10. 将dict.define转化成dict.txt

    在使用捷通智能灵云外呼系统V6.1时.需要大量使用到模式码,也就是正则表达式.而老版本365还是使用场景文件. 当要将老版本改编成新版本的时候,需要需要将dict.define文件中的一行行的词条用& ...