Hi, Thanks for all the comments. Here are the summaries: 1. Modify the structures to make it more general. struct vfio_device_gfx_plane_info { __u64 start; __u64 drm_format_mod; __u32 drm_format; __u32 width; __u32 height; __u32 stride; __u32 size; __u32 x_pos; __u32 y_pos; __u32 generation; }; struct vfio_device_query_gfx_plane { __u32 argsz; __u32 flags; #define VFIO_GFX_PLANE_FLAGS_REGION_ID (1 << 0) #define VFIO_GFX_PLANE_FLAGS_PLANE_ID (1 << 1) struct vfio_device_gfx_plane_info plane_info; __u32 id; }; 2. Remove dmabuf mgr fd and add these two ioctl commands to the vfio device fd. VFIO_DEVICE_QUERY_GFX_PLANE : used to query vfio_device_gfx_plane_info. VFIO_DEVICE_GET_DMABUF_FD: used to create and return the dmabuf fd. Am I correct? Thanks. Tina > -----Original Message----- > From: Intel-gfx [mailto:intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Alex Williamson > Sent: Monday, June 19, 2017 10:56 PM > To: Gerd Hoffmann <kraxel@xxxxxxxxxx> > Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Kirti > Wankhede <kwankhede@xxxxxxxxxx>; Chen, Xiaoguang > <xiaoguang.chen@xxxxxxxxx>; intel-gvt-dev@xxxxxxxxxxxxxxxxxxxxx; Lv, Zhiyuan > <zhiyuan.lv@xxxxxxxxx> > Subject: Re: [PATCH v9 5/7] vfio: Define vfio based dma-buf > operations > > On Mon, 19 Jun 2017 08:38:32 +0200 > Gerd Hoffmann <kraxel@xxxxxxxxxx> wrote: > > > Hi, > > > > > My suggestion was to use vfio device fd for this ioctl and have > > > dmabuf mgr fd as member in above query_plane structure, for region > > > type it would be set to 0. > > > > Region type should be DRM_PLANE_TYPE_PRIMARY > > > > > Can't mmap that page to get surface information. There is no way to > > > synchronize between QEMU reading this mmapped region and vendor > > > driver writing it. There could be race condition in these two > > > operations. > > > Read > > > on this page should be trapped and blocking, so that surface in that > > > region is only updated when its asked for. > > > > Does it make sense to have a "generation" field in the plane_info > > struct (which gets increased each time the struct changes) ? > > It seems less cumbersome than checking each field to see if it has changed. > Thanks, > > Alex > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx