Ok, thanks.

So as soon as a device is directly assigned to a VM, setrlimit() or prlimit() are applied to the qemu-kvm process to avoid paging at the host level, right?
and if there is not enough physical RAM, is the device simply not connected or is the VM halted?

And the VM itself can page in/page out with its own page file, this is not a problem, right?

Regards,


2015-03-04 16:57 GMT+01:00 Laine Stump <laine@laine.org>:
On 03/04/2015 10:27 AM, Raymond Durand wrote:
> I read this in the context of direct device assignment: "All of the
> guest's memory must kept permanently in memory. This is because the
> guest may program the device with any address in its address space and
> the hypervisor has no way of handling a DMA page fault"
>
> is it still true?
>

Yes. libvirt takes care of this automatically (by calling setrlimit() or
prlimit()) when you assign a device to a guest. It does mean that you'll
need enough physical RAM on the machine to account for it, though.