Re: [PATCH] VFIO driver: Non-privileged user level PCI drivers

From: Avi Kivity
Date: Wed Jun 02 2010 - 07:22:07 EST


On 06/02/2010 01:04 PM, Joerg Roedel wrote:
On Wed, Jun 02, 2010 at 12:49:28PM +0300, Avi Kivity wrote:
On 06/02/2010 12:45 PM, Joerg Roedel wrote:
IOMMU mapped memory can not be swapped out because we can't do demand
paging on io-page-faults with current devices. We have to pin _all_
userspace memory that is mapped into an IOMMU domain.
vhost doesn't pin memory.

What I proposed is to describe the memory map using an object (fd), and
pass it around to clients that use it: kvm, vhost, vfio. That way you
maintain the memory map in a central location and broadcast changes to
clients. Only a vfio client would result in memory being pinned.
Ah ok, so its only about the database which keeps the mapping
information.

Yes.

It can still work, but the interface needs to be extended to include
dirty bitmap logging.
Thats hard to do. I am not sure about VT-d but the AMD IOMMU has no
dirty-bits in the page-table. And without demand-paging we can't really
tell what pages a device has written to. The only choice is to mark all
IOMMU-mapped pages dirty as long as they are mapped.


The interface would only work for clients which support it: kvm, vhost, and iommu/devices with restartable dma.

Note dirty logging is not very interesting for vfio anyway, since you can't live migrate with assigned devices.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/