public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] vfio iommu: Add dma available capability
@ 2020-09-14 22:25 Matthew Rosato
  2020-09-14 22:25 ` Matthew Rosato
  2020-09-14 22:32 ` Matthew Rosato
  0 siblings, 2 replies; 5+ messages in thread
From: Matthew Rosato @ 2020-09-14 22:25 UTC (permalink / raw)
  To: alex.williamson, cohuck; +Cc: pmorel, schnelle, kvm, linux-kernel

Commit 492855939bdb ("vfio/type1: Limit DMA mappings per container") added
a limit to the number of concurrent DMA requests for a vfio container.
However, lazy unmapping in s390 can in fact cause quite a large number of
outstanding DMA requests to build up prior to being purged, potentially 
the entire guest DMA space.  This results in unexpected 'VFIO_MAP_DMA
failed: No space left on device' conditions seen in QEMU.

This patch proposes to provide the remaining number of allowable DMA 
requests via the VFIO_IOMMU_GET_INFO ioctl as a new capability.  A 
subsequent patchset to QEMU would collect this information and use it in 
s390 PCI support to tap the guest on the shoulder before overrunning the 
vfio limit.

Changes from v1:
- Report dma_avail instead of the limit, which might not have been accurate
  anyway
- Text/naming changes throughout due to the above

Matthew Rosato (1):
  vfio iommu: Add dma available capability

 drivers/vfio/vfio_iommu_type1.c | 17 +++++++++++++++++
 include/uapi/linux/vfio.h       | 16 ++++++++++++++++
 2 files changed, 33 insertions(+)

-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-09-15 14:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-14 22:25 [PATCH v2] vfio iommu: Add dma available capability Matthew Rosato
2020-09-14 22:25 ` Matthew Rosato
2020-09-15  9:44   ` Cornelia Huck
2020-09-15 13:22     ` Matthew Rosato
2020-09-14 22:32 ` Matthew Rosato

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox