On Tue, 2017-06-20 at 08:41 +0000, Zhang, Tina wrote: > 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; > }; Looks good to me. > 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; > }; I'm not convinced the flags are a great idea. Whenever dmabufs or a region is used is a static property of the device, not of each individual plane. I think we should have this for userspace to figure: enum vfio_device_gfx_type { VFIO_DEVICE_GFX_NONE, VFIO_DEVICE_GFX_DMABUF, VFIO_DEVICE_GFX_REGION, }; struct vfio_device_gfx_query_caps { __u32 argsz; __u32 flags; enum vfio_device_gfx_type; }; Then this to query the plane: struct vfio_device_gfx_query_plane { __u32 argsz; __u32 flags; struct vfio_device_gfx_plane_info plane_info; /* out */ __u32 plane_type; /* in */ }; 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. Yes. > VFIO_DEVICE_GET_DMABUF_FD: used to create and return the dmabuf fd. Yes. The plane might have changed between query-plane and get-dmabuf ioctl calls though, we must make sure we handle that somehow. Current patches return plane_info on get-dmabuf ioctl too, so userspace can see what it actually got. With the generation we can also do something different: Pass in plane_type and generation, and have VFIO_DEVICE_GET_DMABUF_FD return an error in case the generation doesn't match. In that case it doesn't make much sense any more to have a separate plane_info struct, which was added so we don't have to duplicate things in query-plane and get- dmabuf ioctl structs. cheers, Gerd _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx