On Fri, 12 May 2017 06:56:03 +0000 "Chen, Xiaoguang" <xiaoguang.c...@intel.com> wrote:
> Hi Gerd, > > >-----Original Message----- > >From: intel-gvt-dev [mailto:intel-gvt-dev-boun...@lists.freedesktop.org] On > >Behalf Of Gerd Hoffmann > >Sent: Thursday, May 11, 2017 9:28 PM > >To: Chen, Xiaoguang <xiaoguang.c...@intel.com> > >Cc: Tian, Kevin <kevin.t...@intel.com>; intel-gfx@lists.freedesktop.org; > >linux- > >ker...@vger.kernel.org; zhen...@linux.intel.com; Alex Williamson > ><alex.william...@redhat.com>; Lv, Zhiyuan <zhiyuan...@intel.com>; intel-gvt- > >d...@lists.freedesktop.org; Wang, Zhi A <zhi.a.w...@intel.com> > >Subject: Re: [RFC PATCH 6/6] drm/i915/gvt: support QEMU getting the dmabuf > > > > Hi, > > > >> While read the framebuffer region we have to tell the vendor driver which > >framebuffer we want to read? There are two framebuffers now in KVMGT that is > >primary and cursor. > >> There are two methods to implement this: > >> 1) write the plane id first and then read the framebuffer. > >> 2) create 2 vfio regions one for primary and one for cursor. > > > >(3) Place information for both planes into one vfio region. > > Which allows to fetch both with a single read() syscall. > That works too. Then using the ioctl to get the dmabuf fd if needed. And > plane id can be ioctl's parameter. > > How about method 2 primary plane and cursor plane are different and should > generate different dmabuf for each of them. > > > > >The question is how you'll get the file descriptor then. If the ioctl > >returns the > >dma-buf fd only you have a racy interface: Things can change between > >read(vfio- > >region) and ioctl(need-dmabuf-fd). > You are right. So when creating the dmabuf we may have to decode the > framebuffer and create the dmabuf using the latest framebuffer information > and we must return the framebuffer information together with the dmabuf fd. > > In the current implementation I saved the framebuffer information while user > querying the framebuffer and generate the dmabuf using the saved information > no error found yet but in theory there are sync problems. > > > > >ioctl(need-dma-buf) could return both dmabuf fd and plane info to fix the > >race, > >but then it is easier to go with ioctl only interface (simliar to the > >orginal one from > >dec last year) I think. > Yes. ioctl works for it. > But based on the mail last week. If I understand correctly Alex hope to query > the framebuffer information by reading the vfio device region and then get > the dmabuf fd using ioctl. No, I was explaining that I had questioned whether we could use a vfio region in place of a separate dmabuf fd. We can't. I have no particular desire to use a vfio region just for querying framebuffer info. I prefer the dmabuf manager fd idea that Gerd suggested. Thanks, Alex _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx