From: Anthony L. <an...@co...> - 2008-05-07 19:22:24
|
Avi Kivity wrote: > Anthony Liguori wrote: > > >>> What should be done for unmodified guest where there is no PV driver in >>> the guest? Would a call to mlock() from >>> qemu/hw/pci-passthrough.c/add_pci_passthrough_device() a reasonable >>> thing to do? >>> >> >> Yup. The idea is to ensure that the memory is always present, >> without necessarily taking a reference to it. This allows for memory >> reclaiming which should allow for things like NUMA page migration. >> We can't swap of course but that doesn't mean reclaimation isn't useful. >> > > I don't think we can do page migration with VT-d. You need to be able > to detect whether the page has been changed by dma after you've copied > it but before you changed the pte, but VT-d doesn't allow that AFAICT. Hrm, I would have to look at the VT-d but I suspect you're right. That's unfortunate. That means mlock() isn't sufficient. It also means that the VMAs can't be updated while the guest is running. Is there any way to lock a vma region such that things like madvise/mmap(MAP_FIXED) will always fail? Regards, Anthony Liguori |