Quoting Alexey Kardashevskiy (2019-11-11 21:53:49) > Hi! > > I am enabling IOMMU for virtio in the pseries firmware (SLOF) and seeing > problems, one of them is SLOF does SCSI bus scan, then it stops the > virtio-scsi by clearing MMIO|IO|BUSMASTER from PCI_COMMAND (as SLOF > stopped using the devices) and when this happens, I see unassigned > memory access (see below) which happens because disabling busmaster > disables IOMMU and QEMU cannot access the rings to do some shutdown. And > when this happens, the device does not come back even if SLOF re-enables it. > > Hacking SLOF to not clear BUSMASTER makes virtio-scsi work but it is > hardly a right fix.
I hit the same issue enabling IOMMU for virtio-blk using this branch: https://github.com/mdroth/SLOF/commits/virtio-iommu I just sent a tentative fix for QEMU as: "virtio-pci: disable vring processing when bus-mastering is disabled" It's an RFC since piggy-backing off dev->broken seems a bit hacky, but it seems to fix the issue at least. BTW, the SLOF branch above needs cleanup, but it's booting guests okay and I was planning to post this week. Where are you at on yours? Maybe we should sync up...