Re: [RFC PATCH 0/4] mm: Add PG_zero support

From: Dave Hansen
Date: Mon Apr 13 2020 - 11:14:36 EST


On 4/13/20 7:49 AM, Alex Williamson wrote:
>> VFIO's unconditional page pinning is the real problem here IMNHO. They
>> don't *really* need to pin the memory. We just don't have good
>> paravirtualized IOMMU support or want to pay the runtime cost for
>> pin/unpin operations. You *could* totally have speedy VM startup if
>> only the pages being accessed or having DMA performed to them were
>> allocated. But, the hacks that are in place mean that everything must
>> be pinned.
> Maybe in an SEV or Secure Boot environment we can assume the VM guest
> OS uses the IOMMU exclusively for DMA, but otherwise the IOMMU is
> optional (at least for x86, other archs do require IOMMU support
> afaik). Therefore, how would we know which pages to pin when there are
> only limited configs where we might be able to lean on the vIOMMU to
> this extent? Thanks,

You can delay pinning until the device is actually used. That should be
late enough for the host to figure out whether a paravirtualized IOMMU
is in place.