RE: [Intel-gfx] [PATCH v9 5/7] vfio: Define vfio based dma-buf operations

From: Zhang, Tina
Date: Wed Jun 21 2017 - 20:21:29 EST




> -----Original Message-----
> From: intel-gvt-dev [mailto:intel-gvt-dev-bounces@xxxxxxxxxxxxxxxxxxxxx] On
> Behalf Of Gerd Hoffmann
> Sent: Wednesday, June 21, 2017 7:04 PM
> To: Zhang, Tina <tina.zhang@xxxxxxxxx>; Alex Williamson
> <alex.williamson@xxxxxxxxxx>
> Cc: Wang, Zhenyu Z <zhenyu.z.wang@xxxxxxxxx>; intel-
> gfx@xxxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Chen, Xiaoguang
> <xiaoguang.chen@xxxxxxxxx>; Kirti Wankhede <kwankhede@xxxxxxxxxx>; Lv,
> Zhiyuan <zhiyuan.lv@xxxxxxxxx>; intel-gvt-dev@xxxxxxxxxxxxxxxxxxxxx; Wang,
> Zhi A <zhi.a.wang@xxxxxxxxx>
> Subject: Re: [Intel-gfx] [PATCH v9 5/7] vfio: Define vfio based dma-buf
> operations
>
> On Wed, 2017-06-21 at 09:20 +0000, Zhang, Tina wrote:
> > Thanks for all the comments. I'm planning to cook the next version of
> > this patch set
>
> How about posting only this patch instead of the whole series until we've settled
> the interfaces?
OK.

>
> > Could the following two works?
> > #define VFIO_DEVICE_FLAGS_DMABUFÂÂ(1 << 5)ÂÂÂÂÂÂÂÂ/* vfio-dmabuf
> > device */
>
> VFIO_DEVICE_FLAGS_GFX_DMABUF?
>
> > 2. vfio_device_gfx_plane_info
> > struct vfio_device_gfx_plane_info {
> > __u64 start;-> offset
> > __u64 drm_format_mod;
> > __u32 drm_format;
> > __u32 width;
> > __u32 height;
> > __u32 stride;
> > __u32 size;
> > __u32 x_pos;
> > __u32 y_pos;
> > };
> > > Does it make sense to have a "generation" field in the plane_info
> > > struct (which gets increased each time the struct changes) ?
>
> > Well,ÂÂGerd, can you share more details about how to use this field in
> > user mode, so that we can figure out a way to support it? Thanks.
>
> generation would be increased each time one of the fields in
> vfio_device_gfx_plane_info changes, typically on mode switches (width/height
> changes) and pageflips (offset changes). So userspace can simply compare
> generation instead of comparing every field to figure whenever something
> changed compared to the previous poll.
Make sense for dma-buf. Thanks.

>
> >
> > 3. vfio_device_query_gfx_plane
> > 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;
> > __u32 plane_type;
> > };
> > So far, dmabuf use id for DRM_PLANE_TYPE_PRIMARY or
> > DRM_PLANE_TYPE_CURSOR.
>
>
> > If the newly added plane_type is used for this, the id field may be
> > useless in dmabuf usage. Do you have any idea about the usage of this
> > id field in dmabuf usage?
>
> plane_type should be DRM_PLANE_TYPE_PRIMARY or
> DRM_PLANE_TYPE_CURSOR for dmabuf.
>
> Given that nvidia doesn't support a separate cursor plane in their region they
> would support DRM_PLANE_TYPE_PRIMARY only.
>
> I can't see yet what id would be useful for.
>
> Likewise I can't see yet what the VFIO_GFX_PLANE_FLAGS_* are good for.
>
> cheers,
> Gerd
>
> _______________________________________________
> intel-gvt-dev mailing list
> intel-gvt-dev@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev