Does IOMMU Benefit Outside of Virtualization?

Discussion in 'Processors and motherboards AMD' started by Espionage724, Nov 22, 2014.

  1. Espionage724

    Espionage724 Guest

    I typically see IOMMU mentioned when it comes to passthrough with Virtual Machines, but I'm wondering if IOMMU offers any kind of benefit outside of that; particularly with a host OS? Maybe better GPU stability?
     
  2. mbk1969

    mbk1969 Ancient Guru

    Messages:
    11,683
    Likes Received:
    9,676
    GPU:
    GF RTX 2070 Super
    According to Wikipedia`s article
    http://en.wikipedia.org/wiki/IOMMU
    real hardware and OS both can utilize it.

    From Intel`s document:

    OS Usages of DMA Remapping
    There are several ways in which operating systems can use DMA remapping:
    OS Protection: An OS may define a domain containing its critical code and data structures, and restrict access to this domain from all I/O devices in the system. This allows the OS to limit erroneous or unintended corruption of its data and code through incorrect programming of devices by device drivers, thereby improving OS robustness and reliability.
    Feature Support: An OS may use domains to better manage DMA from legacy devices to high memory (For example, 32-bit PCI devices accessing memory above 4GB). This is achieved by programming the I/O page-tables to remap DMA from these devices to high memory. Without such support, software must resort to data copying through OS “bounce buffers”.
    DMA Isolation: An OS may manage I/O by creating multiple domains and assigning one or more I/O devices to each domain. Each device-driver explicitly registers its I/O buffers with the OS, and the OS assigns these I/O buffers to specific domains, using hardware to enforce DMA domain protection.
    Shared Virtual Memory: For devices supporting appropriate PCI-Express1 capabilities, OS may use the DMA remapping hardware capabilities to share virtual address space of application processes with I/O devices. Shared virtual memory along with support for I/O page-faults enable application programs to freely pass arbitrary data-structures to devices such as graphics processors or accelerators, without the overheads of pinning and marshalling of data.

    Interrupt Migration
    The interrupt-remapping architecture may be used to support dynamic re-direction of interrupts when the target for an interrupt request is migrated from one logical processor to another logical processor. Without interrupt-remapping hardware support, re-balancing of interrupts require software to reprogram the interrupt sources. However re-programming of these resources are non-atomic (requires multiple registers to be re-programmed), often complex (may require temporary masking of interrupt source), and dependent on interrupt source characteristics (e.g. no masking capability for some interrupt sources; edge interrupts may be lost when masked on some sources, etc.)
    Interrupt-remapping enables software to efficiently re-direct interrupts without re-programming the interrupt configuration at the sources. Interrupt migration may be used by OS software for balancing load across processors (such as when running I/O intensive workloads).
     
    Last edited: Nov 22, 2014

Share This Page