From: Xiaoguang Chen <xiaoguang.chen@intel.com> To: alex.williamson@redhat.com, kraxel@redhat.com, chris@chris-wilson.co.uk, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, zhenyuw@linux.intel.com, zhiyuan.lv@intel.com, intel-gvt-dev@lists.freedesktop.org, zhi.a.wang@intel.com, kevin.tian@intel.com Cc: Xiaoguang Chen <xiaoguang.chen@intel.com> Subject: [PATCH v6 0/6] drm/i915/gvt: Dma-buf support for GVT-g Date: Sat, 27 May 2017 16:38:46 +0800 [thread overview] Message-ID: <1495874332-2851-1-git-send-email-xiaoguang.chen@intel.com> (raw) v5->v6: 1) align the dma-buf life cycle with the vfio device. 2) add the dma-buf releated operations in a separate patch. 3) i915 releated changes. v4->v5: 1) fix bug while checking whether the gem obj is gvt's dma-buf when user change caching mode or domains. Add a helper function to do it. 2) add definition for the query plane and create dma-buf. v3->v4: 1) fix bug while checking whether the gem obj is gvt's dma-buf when set caching mode or doamins. v2->v3: 1) add a field gvt_plane_info in the drm_i915_gem_obj structure to save the decoded plane information to avoid look up while need the plane info. 2) declare a new flag I915_GEM_OBJECT_IS_GVT_DMABUF in drm_i915_gem_object to represent the gem obj for gvt's dma-buf. The tiling mode, caching mode and domains can not be changed for this kind of gem object. 3) change dma-buf related information to be more generic. So other vendor can use the same interface. v1->v2: 1) create a management fd for dma-buf operations. 2) alloc gem object's backing storage in gem obj's get_pages() callback. This patch set adds the dma-buf support for intel GVT-g. dma-buf is a uniform mechanism to share DMA buffers across different devices and sub-systems. dma-buf for intel GVT-g is mainly used to share the vgpu's framebuffer to other users or sub-systems so they can use the dma-buf to show the desktop of a vm which uses intel vgpu. The main idea is we create a gem object and set vgpu's framebuffer as the backing storage of this gem object. And associate this gem obj to a dma-buf object then export this dma-buf at the meantime generate a file descriptor for this dma-buf. Finally deliver this file descriptor to user space. And user can use this dma-buf fd to do render or other operations. User need to create a fd(for intel GVT-g dma-buf support it is a:dma-buf management fd) then user can use this fd to query the plane information or create a dma-buf. The life cycle of this fd is managed by GVT-g user do not need to care about that. We have an example program on how to use the dma-buf. You can download the program to have a try. Good luck :) git repo: https://github.com/01org/igvtg-qemu branch:kvmgt_dmabuf_example Xiaoguang Chen (6): drm/i915/gvt: Extend the GVT-g architecture to support vfio device region drm/i915/gvt: OpRegion support for GVT-g drm/i915/gvt: Frame buffer decoder support for GVT-g vfio: Define vfio based vgpu's dma-buf operations drm/i915/gvt: Dmabuf support for GVT-g drm/i915/gvt: Adding interface so user space can get the dma-buf drivers/gpu/drm/i915/gvt/Makefile | 3 +- drivers/gpu/drm/i915/gvt/display.c | 2 +- drivers/gpu/drm/i915/gvt/display.h | 2 + drivers/gpu/drm/i915/gvt/dmabuf.c | 281 +++++++++++++++++++ drivers/gpu/drm/i915/gvt/dmabuf.h | 42 +++ drivers/gpu/drm/i915/gvt/fb_decoder.c | 479 +++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/gvt/fb_decoder.h | 166 ++++++++++++ drivers/gpu/drm/i915/gvt/gvt.c | 2 + drivers/gpu/drm/i915/gvt/gvt.h | 7 + drivers/gpu/drm/i915/gvt/kvmgt.c | 262 +++++++++++++++++- drivers/gpu/drm/i915/gvt/opregion.c | 8 +- drivers/gpu/drm/i915/gvt/vgpu.c | 1 + drivers/gpu/drm/i915/i915_gem.c | 26 +- drivers/gpu/drm/i915/i915_gem_object.h | 9 + include/uapi/linux/vfio.h | 50 ++++ 15 files changed, 1333 insertions(+), 7 deletions(-) create mode 100644 drivers/gpu/drm/i915/gvt/dmabuf.c create mode 100644 drivers/gpu/drm/i915/gvt/dmabuf.h create mode 100644 drivers/gpu/drm/i915/gvt/fb_decoder.c create mode 100644 drivers/gpu/drm/i915/gvt/fb_decoder.h -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Xiaoguang Chen <xiaoguang.chen@intel.com> To: alex.williamson@redhat.com, kraxel@redhat.com, chris@chris-wilson.co.uk, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, zhenyuw@linux.intel.com, zhiyuan.lv@intel.com, intel-gvt-dev@lists.freedesktop.org, zhi.a.wang@intel.com, kevin.tian@intel.com Cc: Xiaoguang Chen <xiaoguang.chen@intel.com> Subject: [PATCH v6 0/6] drm/i915/gvt: Dma-buf support for GVT-g Date: Sat, 27 May 2017 16:38:46 +0800 [thread overview] Message-ID: <1495874332-2851-1-git-send-email-xiaoguang.chen@intel.com> (raw) v5->v6: 1) align the dma-buf life cycle with the vfio device. 2) add the dma-buf releated operations in a separate patch. 3) i915 releated changes. v4->v5: 1) fix bug while checking whether the gem obj is gvt's dma-buf when user change caching mode or domains. Add a helper function to do it. 2) add definition for the query plane and create dma-buf. v3->v4: 1) fix bug while checking whether the gem obj is gvt's dma-buf when set caching mode or doamins. v2->v3: 1) add a field gvt_plane_info in the drm_i915_gem_obj structure to save the decoded plane information to avoid look up while need the plane info. 2) declare a new flag I915_GEM_OBJECT_IS_GVT_DMABUF in drm_i915_gem_object to represent the gem obj for gvt's dma-buf. The tiling mode, caching mode and domains can not be changed for this kind of gem object. 3) change dma-buf related information to be more generic. So other vendor can use the same interface. v1->v2: 1) create a management fd for dma-buf operations. 2) alloc gem object's backing storage in gem obj's get_pages() callback. This patch set adds the dma-buf support for intel GVT-g. dma-buf is a uniform mechanism to share DMA buffers across different devices and sub-systems. dma-buf for intel GVT-g is mainly used to share the vgpu's framebuffer to other users or sub-systems so they can use the dma-buf to show the desktop of a vm which uses intel vgpu. The main idea is we create a gem object and set vgpu's framebuffer as the backing storage of this gem object. And associate this gem obj to a dma-buf object then export this dma-buf at the meantime generate a file descriptor for this dma-buf. Finally deliver this file descriptor to user space. And user can use this dma-buf fd to do render or other operations. User need to create a fd(for intel GVT-g dma-buf support it is a:dma-buf management fd) then user can use this fd to query the plane information or create a dma-buf. The life cycle of this fd is managed by GVT-g user do not need to care about that. We have an example program on how to use the dma-buf. You can download the program to have a try. Good luck :) git repo: https://github.com/01org/igvtg-qemu branch:kvmgt_dmabuf_example Xiaoguang Chen (6): drm/i915/gvt: Extend the GVT-g architecture to support vfio device region drm/i915/gvt: OpRegion support for GVT-g drm/i915/gvt: Frame buffer decoder support for GVT-g vfio: Define vfio based vgpu's dma-buf operations drm/i915/gvt: Dmabuf support for GVT-g drm/i915/gvt: Adding interface so user space can get the dma-buf drivers/gpu/drm/i915/gvt/Makefile | 3 +- drivers/gpu/drm/i915/gvt/display.c | 2 +- drivers/gpu/drm/i915/gvt/display.h | 2 + drivers/gpu/drm/i915/gvt/dmabuf.c | 281 +++++++++++++++++++ drivers/gpu/drm/i915/gvt/dmabuf.h | 42 +++ drivers/gpu/drm/i915/gvt/fb_decoder.c | 479 +++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/gvt/fb_decoder.h | 166 ++++++++++++ drivers/gpu/drm/i915/gvt/gvt.c | 2 + drivers/gpu/drm/i915/gvt/gvt.h | 7 + drivers/gpu/drm/i915/gvt/kvmgt.c | 262 +++++++++++++++++- drivers/gpu/drm/i915/gvt/opregion.c | 8 +- drivers/gpu/drm/i915/gvt/vgpu.c | 1 + drivers/gpu/drm/i915/i915_gem.c | 26 +- drivers/gpu/drm/i915/i915_gem_object.h | 9 + include/uapi/linux/vfio.h | 50 ++++ 15 files changed, 1333 insertions(+), 7 deletions(-) create mode 100644 drivers/gpu/drm/i915/gvt/dmabuf.c create mode 100644 drivers/gpu/drm/i915/gvt/dmabuf.h create mode 100644 drivers/gpu/drm/i915/gvt/fb_decoder.c create mode 100644 drivers/gpu/drm/i915/gvt/fb_decoder.h -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next reply other threads:[~2017-05-27 8:40 UTC|newest] Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-05-27 8:38 Xiaoguang Chen [this message] 2017-05-27 8:38 ` [PATCH v6 0/6] drm/i915/gvt: Dma-buf support for GVT-g Xiaoguang Chen 2017-05-27 8:38 ` [PATCH v6 1/6] drm/i915/gvt: Extend the GVT-g architecture to support vfio device region Xiaoguang Chen 2017-05-27 8:38 ` Xiaoguang Chen 2017-05-27 8:38 ` [PATCH v6 2/6] drm/i915/gvt: OpRegion support for GVT-g Xiaoguang Chen 2017-05-27 8:38 ` Xiaoguang Chen 2017-05-31 4:47 ` Zhenyu Wang 2017-05-31 4:47 ` Zhenyu Wang 2017-05-31 6:22 ` Chen, Xiaoguang 2017-05-31 6:22 ` Chen, Xiaoguang 2017-05-31 6:30 ` Zhenyu Wang 2017-05-31 6:30 ` Zhenyu Wang 2017-05-31 6:44 ` Chen, Xiaoguang 2017-05-31 6:44 ` Chen, Xiaoguang 2017-05-27 8:38 ` [PATCH v6 3/6] drm/i915/gvt: Frame buffer decoder " Xiaoguang Chen 2017-05-27 8:38 ` Xiaoguang Chen 2017-05-31 5:12 ` Zhenyu Wang 2017-05-31 5:12 ` Zhenyu Wang 2017-05-31 6:46 ` Chen, Xiaoguang 2017-05-31 6:46 ` Chen, Xiaoguang 2017-05-27 8:38 ` [PATCH v6 4/6] vfio: Define vfio based vgpu's dma-buf operations Xiaoguang Chen 2017-05-29 7:20 ` Gerd Hoffmann 2017-05-29 7:20 ` Gerd Hoffmann 2017-05-31 6:18 ` Chen, Xiaoguang 2017-05-31 6:18 ` Chen, Xiaoguang 2017-05-31 17:22 ` Kirti Wankhede 2017-05-31 17:22 ` Kirti Wankhede 2017-06-01 3:01 ` Chen, Xiaoguang 2017-06-01 3:01 ` Chen, Xiaoguang 2017-06-01 16:38 ` Alex Williamson 2017-06-01 16:38 ` Alex Williamson 2017-06-01 18:46 ` Kirti Wankhede 2017-06-01 18:46 ` Kirti Wankhede 2017-06-02 8:38 ` Gerd Hoffmann 2017-06-02 8:38 ` Gerd Hoffmann 2017-06-05 8:26 ` Kirti Wankhede 2017-06-05 8:26 ` Kirti Wankhede 2017-06-06 7:59 ` Gerd Hoffmann 2017-06-06 7:59 ` Gerd Hoffmann 2017-05-27 8:38 ` [PATCH v6 5/6] drm/i915/gvt: Dmabuf support for GVT-g Xiaoguang Chen 2017-05-27 8:38 ` Xiaoguang Chen 2017-05-31 12:04 ` Gerd Hoffmann 2017-05-31 12:04 ` Gerd Hoffmann 2017-06-01 3:02 ` Chen, Xiaoguang 2017-06-01 3:02 ` Chen, Xiaoguang 2017-06-01 9:15 ` Chris Wilson 2017-06-01 9:15 ` Chris Wilson 2017-05-27 8:38 ` [PATCH v6 6/6] drm/i915/gvt: Adding interface so user space can get the dma-buf Xiaoguang Chen 2017-05-27 8:38 ` Xiaoguang Chen 2017-06-01 18:08 ` Alex Williamson 2017-06-01 18:08 ` Alex Williamson 2017-06-02 3:24 ` Chen, Xiaoguang 2017-06-02 3:24 ` Chen, Xiaoguang 2017-06-02 3:34 ` Alex Williamson 2017-06-02 3:34 ` Alex Williamson 2017-06-02 9:31 ` Chen, Xiaoguang 2017-06-02 9:31 ` Chen, Xiaoguang 2017-06-02 14:58 ` Alex Williamson 2017-06-02 14:58 ` Alex Williamson 2017-06-02 15:23 ` Gerd Hoffmann 2017-06-02 15:23 ` Gerd Hoffmann 2017-06-05 2:39 ` Chen, Xiaoguang 2017-06-05 2:39 ` Chen, Xiaoguang 2017-06-06 7:35 ` Gerd Hoffmann 2017-06-06 7:35 ` Gerd Hoffmann 2017-05-27 8:44 ` ✗ Fi.CI.BAT: failure for drm/i915/gvt: dma-buf support for GVT-g (rev6) Patchwork 2017-05-30 10:23 ` [PATCH v6 0/6] drm/i915/gvt: Dma-buf support for GVT-g Gerd Hoffmann 2017-05-30 10:23 ` Gerd Hoffmann 2017-05-31 2:29 ` Chen, Xiaoguang 2017-05-31 2:29 ` Chen, Xiaoguang 2017-05-31 8:59 ` Gerd Hoffmann 2017-05-31 8:59 ` Gerd Hoffmann 2017-05-31 9:07 ` Chen, Xiaoguang 2017-05-31 9:07 ` Chen, Xiaoguang
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1495874332-2851-1-git-send-email-xiaoguang.chen@intel.com \ --to=xiaoguang.chen@intel.com \ --cc=alex.williamson@redhat.com \ --cc=chris@chris-wilson.co.uk \ --cc=intel-gfx@lists.freedesktop.org \ --cc=intel-gvt-dev@lists.freedesktop.org \ --cc=kevin.tian@intel.com \ --cc=kraxel@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=zhenyuw@linux.intel.com \ --cc=zhi.a.wang@intel.com \ --cc=zhiyuan.lv@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.