Re: [PATCH] vfio iommu: Add dma limit capability

From: Matthew Rosato
Date: Fri Sep 11 2020 - 13:04:13 EST

On 9/11/20 12:44 PM, Matthew Rosato wrote:
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 DMA limit 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.

Link to the QEMU patchset:

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

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