RE: semantics of VFIO_IOMMU_DIRTY_PAGES_FLAG_GET_BITMAP

From: Thanos Makatos
Date: Tue Jun 01 2021 - 11:07:59 EST




> -----Original Message-----
> From: Alex Williamson <alex.williamson@xxxxxxxxxx>
> Sent: 01 June 2021 15:14
> To: Thanos Makatos <thanos.makatos@xxxxxxxxxxx>
> Cc: vfio-users@xxxxxxxxxx; John Levon <john.levon@xxxxxxxxxxx>; Swapnil
> Ingle <swapnil.ingle@xxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx;
> kvm@xxxxxxxxxxxxxxx
> Subject: Re: semantics of VFIO_IOMMU_DIRTY_PAGES_FLAG_GET_BITMAP
>
> On Tue, 1 Jun 2021 13:48:22 +0000
> Thanos Makatos <thanos.makatos@xxxxxxxxxxx> wrote:
>
> > (sending here as I can't find a relevant list in
> > https://urldefense.proofpoint.com/v2/url?u=http-3A__vger.kernel.org_vg
> > er-
> 2Dlists.html&d=DwICAg&c=s883GpUCOChKOHiocYtGcg&r=XTpYsh5Ps2zJvtw
> 6og
> >
> tti46atk736SI4vgsJiUKIyDE&m=E6G0G_Z_M2cIQvruwQk6NRrha3NkW8gdO11
> pPUm8vg
> > k&s=-7KcTuEYFphAcU1aya0t_Jh4aP9jVPq2N2YxVu9Lu84&e= )
>
> $ ./scripts/get_maintainer.pl include/uapi/linux/vfio.h Alex Williamson
> <alex.williamson@xxxxxxxxxx> (maintainer:VFIO DRIVER) Cornelia Huck
> <cohuck@xxxxxxxxxx> (reviewer:VFIO DRIVER) kvm@xxxxxxxxxxxxxxx (open
> list:VFIO DRIVER) linux-kernel@xxxxxxxxxxxxxxx (open list)
>
> > I'm trying to understand the semantics of
> > VFIO_IOMMU_DIRTY_PAGES_FLAG_GET_BITMAP. My (very rough)
> understanding
> > so far is that once a page gets pinned then it's considered dirty and
> > if the page is still pinned then it remains dirty even after we're
> > done serving VFIO_IOMMU_DIRTY_PAGES_FLAG_GET_BITMAP. Is my
> > understanding correct?
>
> This is the current type1 implementation, but the semantics only require that
> a page is reported dirty if it's actually been written.
> Without support for tracking DMA writes, we assume that any page
> accessible to the device is constantly dirty. This will be refined over time as
> software and hardware support improves, but we currently error on the side
> of assuming all pinned pages are always dirty.
> Thanks,

Makes sense, thanks.

>
> Alex