Re: [PATCH v3] vfio iommu: Add dma available capability

From: Matthew Rosato
Date: Tue Sep 15 2020 - 16:33:23 EST


On 9/15/20 3:05 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 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.

Link to latest QEMU patchset:
https://lists.gnu.org/archive/html/qemu-devel/2020-09/msg05505.html


Changes from v2:
- Typos / fixed stale comment block

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

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