Hi Alex,
This is v2 of my attempt of fixing an issue we have on s390 with vfio-pci
pass-through of the s390 specific virtual PCI device called ISM and used for
cross LPAR communication. As the patch tries to explain the fact that
vfio_test_domain_fgsp() uses an IOMMU mapping at IOVA 0 irrespective of any
reserved regions causes the ISM device to go into an error state and thus
becomes unusable for a KVM guest breaking pass-through. I tried to improve
the background and explanation compared to v1 hope its more clear now.
As for testing, I tested this based on current master on both on s390 where it
skips the reserved 0x0-0x100000000 range and on an AMD Ryzen 3990X where it
continues to do the test on DMA address 0 and sets domain->fgsp to true.
Thanks,
Niklas Schnelle
Changes since v2:
- Don't require region->start to be aligned but instead just that we can fit an
aligned allocation (Alex)
- Use Fixes tag for the introduction of reserved regions as that came
after the fine grained super pages test (Alex)
Changes since v1:
- Reworded commit message to hopefully explain things a bit better and
highlight that usually just mapping but not issuing DMAs for IOVAs in
a resverved region is harmless but still breaks things with ISM devices.
- Added a check for PAGE_SIZE * 2 alignment (Jason)
Niklas Schnelle (1):
vfio/type1: Respect IOMMU reserved regions in vfio_test_domain_fgsp()
drivers/vfio/vfio_iommu_type1.c | 31 ++++++++++++++++++++-----------
1 file changed, 20 insertions(+), 11 deletions(-)
--
2.34.1