ASAravind Sivakumaran
Theme

Theme and appearance

Appearance
Palette

Pick any colour. The displayed accent adjusts for readable contrast in light or dark mode.

โ† IOMMU star map

VIRTUALIZATION / PASSTHROUGH AND ISOLATION

Who may a device reach, and who may take it?

A device can write to memory; the IOMMU decides where. Eight experiments ask who tells it what to do, and what changes when a guest takes a device: how firmware describes the IOMMU, how a program takes a device, four ways to give a guest a NIC (network card), the one table row that changes, a stranger's Thunderbolt dock, the default domain Linux picks, SR-IOV requester IDs and the RISC-V IOMMU. Why VFIO refuses a device in the first place is the previous chapter, IOMMU groups & ACS. Each step runs a small rule taken from the Linux source or a specification, so the numbers on screen are computed, not typed.

What claims does this page make? 3 points
Where a step happens: firmware, software, device, PCIe switch, IOMMU, memory. Firmware Software Device PCIe switch IOMMU Memory

Experiments

Experiment

    What the model holds after that step

    State

      Computed by the model

        Notes

          Look at your own machine

          Read-only commands on a Linux host. They change nothing; treat the output as private.

          for g in /sys/kernel/iommu_groups/*; do echo "group ${g##*/} ($(cat $g/type)):"; ls $g/devices; done
          cat /sys/bus/pci/devices/0000:03:00.0/sriov_totalvfs /sys/bus/pci/devices/0000:03:00.0/sriov_numvfs
          cat /sys/bus/thunderbolt/devices/domain0/iommu_dma_protection
          dmesg | grep -i -E 'iommu|DMAR|AMD-Vi|Default domain|DMA domain'
          cat /proc/cmdline

          Sources