[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <237F54289DF84E4997F34151298ABEBC7C578198@SHSMSX101.ccr.corp.intel.com>
Date: Tue, 4 Jul 2017 01:22:37 +0000
From: "Zhang, Tina" <tina.zhang@...el.com>
To: "alex.williamson@...hat.com" <alex.williamson@...hat.com>,
"kraxel@...hat.com" <kraxel@...hat.com>,
"chris@...is-wilson.co.uk" <chris@...is-wilson.co.uk>,
"zhenyuw@...ux.intel.com" <zhenyuw@...ux.intel.com>,
"Lv, Zhiyuan" <zhiyuan.lv@...el.com>,
"Wang, Zhi A" <zhi.a.wang@...el.com>,
"Tian, Kevin" <kevin.tian@...el.com>,
"daniel@...ll.ch" <daniel@...ll.ch>,
"kwankhede@...dia.com" <kwankhede@...dia.com>
CC: "intel-gfx@...ts.freedesktop.org" <intel-gfx@...ts.freedesktop.org>,
"intel-gvt-dev@...ts.freedesktop.org"
<intel-gvt-dev@...ts.freedesktop.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH v1] vfio: ABI for mdev display dma-buf operation
> -----Original Message-----
> From: Zhang, Tina
> Sent: Tuesday, July 4, 2017 9:04 AM
> To: alex.williamson@...hat.com; kraxel@...hat.com; chris@...is-wilson.co.uk;
> zhenyuw@...ux.intel.com; Lv, Zhiyuan <zhiyuan.lv@...el.com>; Wang, Zhi A
> <zhi.a.wang@...el.com>; Tian, Kevin <kevin.tian@...el.com>; daniel@...ll.ch;
> kwankhede@...dia.com
> Cc: Zhang, Tina <tina.zhang@...el.com>; intel-gfx@...ts.freedesktop.org; intel-
> gvt-dev@...ts.freedesktop.org; linux-kernel@...r.kernel.org
> Subject: [PATCH v1] vfio: ABI for mdev display dma-buf operation
>
> Add VFIO_DEVICE_QUERY_GFX_PLANE ioctl command to let user mode query
> and get the plan and its related information.
>
> The dma-buf's life cycle is handled by user mode and tracked by kernel.
> The returned fd in struct vfio_device_query_gfx_plane can be a new fd or an
> old fd of a re-exported dma-buf. Host User mode can check the value of fd and
> to see if it need to creat new resource according to the new fd or just use the
> existed resource related to the old fd.
>
> Signed-off-by: Tina Zhang <tina.zhang@...el.com>
>
> diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index
> ae46105..c92bc69 100644
> --- a/include/uapi/linux/vfio.h
> +++ b/include/uapi/linux/vfio.h
> @@ -502,6 +502,36 @@ struct vfio_pci_hot_reset {
>
> #define VFIO_DEVICE_PCI_HOT_RESET _IO(VFIO_TYPE, VFIO_BASE + 13)
>
> +/**
> + * VFIO_DEVICE_QUERY_GFX_PLANE - _IOW(VFIO_TYPE, VFIO_BASE + 14,
> + * struct vfio_device_query_gfx_plane)
> + * Return: 0 on success, -errno on failure.
> + */
> +
> +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;
> +};
In this version, we don't rely on user mode to compare and find out whether a new dmabuf needs to be created. So, some of fields can be removed if user mode thinks they are not interesting any more.
> +
> +struct vfio_device_query_gfx_plane {
> + __u32 argsz;
> + __u32 flags;
> + struct vfio_device_gfx_plane_info plane_info;
> + __u32 plane_type;
> + __s32 fd; /* dma-buf fd */
> + __u32 plane_id;
> +};
Still cannot figure out what the plane_id stands for in dmabuf case. As it might be needed by region usage, just add it here.
> +
> +#define VFIO_DEVICE_QUERY_GFX_PLANE _IO(VFIO_TYPE, VFIO_BASE + 14)
> +
> +
> /* -------- API for Type1 VFIO IOMMU -------- */
>
> /**
> --
> 2.7.4
Powered by blists - more mailing lists