Re: [PATCH V3 1/9] vfio: option to unmap all

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 1 Feb 2021 07:52:04 -0500
Steven Sistare <steven.sistare@xxxxxxxxxx> wrote:

> On 2/1/2021 6:42 AM, Cornelia Huck wrote:
> > On Fri, 29 Jan 2021 08:54:04 -0800
> > Steve Sistare <steven.sistare@xxxxxxxxxx> wrote:
> >   
> >> For the UNMAP_DMA ioctl, delete all mappings if VFIO_DMA_UNMAP_FLAG_ALL
> >> is set.  Define the corresponding VFIO_UNMAP_ALL extension.
> >>
> >> Signed-off-by: Steve Sistare <steven.sistare@xxxxxxxxxx>
> >> ---
> >>  include/uapi/linux/vfio.h | 8 ++++++++
> >>  1 file changed, 8 insertions(+)
> >>
> >> diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
> >> index 9204705..55578b6 100644
> >> --- a/include/uapi/linux/vfio.h
> >> +++ b/include/uapi/linux/vfio.h
> >> @@ -46,6 +46,9 @@
> >>   */
> >>  #define VFIO_NOIOMMU_IOMMU		8
> >>  
> >> +/* Supports VFIO_DMA_UNMAP_FLAG_ALL */
> >> +#define VFIO_UNMAP_ALL			9
> >> +
> >>  /*
> >>   * The IOCTL interface is designed for extensibility by embedding the
> >>   * structure length (argsz) and flags into structures passed between
> >> @@ -1074,6 +1077,7 @@ struct vfio_bitmap {
> >>   * field.  No guarantee is made to the user that arbitrary unmaps of iova
> >>   * or size different from those used in the original mapping call will
> >>   * succeed.
> >> + *
> >>   * VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP should be set to get the dirty bitmap
> >>   * before unmapping IO virtual addresses. When this flag is set, the user must
> >>   * provide a struct vfio_bitmap in data[]. User must provide zero-allocated
> >> @@ -1083,11 +1087,15 @@ struct vfio_bitmap {
> >>   * indicates that the page at that offset from iova is dirty. A Bitmap of the
> >>   * pages in the range of unmapped size is returned in the user-provided
> >>   * vfio_bitmap.data.
> >> + *
> >> + * If flags & VFIO_DMA_UNMAP_FLAG_ALL, unmap all addresses.  iova and size
> >> + * must be 0.  This may not be combined with the get-dirty-bitmap flag.  
> > 
> > wording nit: s/may not/cannot/  
> 
> OK. So, the same edit should be applied to this from patch 4:
> 
> + * iova's vaddr will block.  DMA to already-mapped pages continues.  This may
> + * not be combined with the get-dirty-bitmap flag.
> 
> Alex, can you make these edits please?

With that,

Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx>

> 
> - Steve
> 
> > Or maybe
> > 
> > "VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP and VFIO_DMA_UNMAP_FLAG_ALL are
> > mutually exclusive."
> > 
> > ?
> >   
> >>   */
> >>  struct vfio_iommu_type1_dma_unmap {
> >>  	__u32	argsz;
> >>  	__u32	flags;
> >>  #define VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP (1 << 0)
> >> +#define VFIO_DMA_UNMAP_FLAG_ALL		     (1 << 1)
> >>  	__u64	iova;				/* IO virtual address */
> >>  	__u64	size;				/* Size of mapping (bytes) */
> >>  	__u8    data[];  
> >   
> 




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux