Messages in this thread | | | Date | Wed, 02 Jun 2010 14:21:47 +0300 | From | Avi Kivity <> | Subject | Re: [PATCH] VFIO driver: Non-privileged user level PCI drivers |
| |
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
| |