This series introduces the concept of the relaxed translation requirement for s390x guests in order to allow bypass of the guest IOMMU for more efficient PCI passthrough.
With this series, QEMU can indicate to the guest that an IOMMU is not strictly required for a zPCI device. This would subsequently allow a guest linux to use iommu.passthrough=1 and bypass their guest IOMMU for PCI devices. When this occurs, QEMU will note the behavior via an intercepted MPCIFC instruction and will fill the host iommu with mappings of the entire guest address space in response. There is a kernel series [1] that adds the relevant behavior needed to exploit this new feature from within a s390x linux guest. [1]: https://lore.kernel.org/linux-s390/20241209192403.107090-1-mjros...@linux.ibm.com/ Matthew Rosato (2): s390x/pci: add support for guests that request direct mapping s390x/pci: indicate QEMU supports relaxed translation for passthrough hw/s390x/s390-pci-bus.c | 23 ++++++++++++++++++ hw/s390x/s390-pci-inst.c | 42 +++++++++++++++++++++++++++++++-- hw/s390x/s390-pci-vfio.c | 4 +++- include/hw/s390x/s390-pci-bus.h | 2 ++ include/hw/s390x/s390-pci-clp.h | 1 + 5 files changed, 69 insertions(+), 3 deletions(-) -- 2.47.0