• linux性能优化基础——iommu相关配置


    此篇文档介绍了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但是实际上系统却并没有打开它的情况。

  • 相关阅读:
    实现两个窗口通信方法-postMessage
    Java中的参数传值方式
    数据库连接池(connection pool)
    批量处理JDBC语句提高处理速度
    数据库事务,隔离级别
    BeanUtils介绍及使用
    JDBC获得数据库连接及使用
    jquery radio 行选中 操作
    EXTJS4.0 grid 可编辑模式 配置
    sql server 中使用 LIKE 语句 SqlParameter 使用
  • 原文地址:https://www.cnblogs.com/goto2091/p/14773734.html
Copyright © 2020-2023  润新知