Re: [PATCH v2 2/3] vfio-pci: Fault mmaps to enable vma tracking

From: Alex Williamson
Date: Thu May 07 2020 - 18:03:45 EST


On Thu, 7 May 2020 17:47:44 -0400
Peter Xu <peterx@xxxxxxxxxx> wrote:

> Hi, Alex,
>
> On Tue, May 05, 2020 at 03:54:53PM -0600, Alex Williamson wrote:
> > +/*
> > + * Zap mmaps on open so that we can fault them in on access and therefore
> > + * our vma_list only tracks mappings accessed since last zap.
> > + */
> > +static void vfio_pci_mmap_open(struct vm_area_struct *vma)
> > +{
> > + zap_vma_ptes(vma, vma->vm_start, vma->vm_end - vma->vm_start);
>
> A pure question: is this only a safety-belt or it is required in some known
> scenarios?

It's not required. I originally did this so that I'm not allocating a
vma_list entry in a path where I can't return error, but as Jason
suggested I could zap here only in the case that I do encounter that
allocation fault. However I still like consolidating the vma_list
handling to the vm_ops .fault and .close callbacks and potentially we
reduce the zap latency by keeping the vma_list to actual users, which
we'll get to eventually anyway in the VM case as memory BARs are sized
and assigned addresses.

> In all cases:
>
> Reviewed-by: Peter Xu <peterx@xxxxxxxxxx>

Thanks!
Alex