xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Huang Rui <ray.huang@amd.com>
To: "Roger Pau Monné" <roger.pau@citrix.com>,
	"Jan Beulich" <jbeulich@suse.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Anthony PERARD" <anthony.perard@citrix.com>,
	xen-devel@lists.xenproject.org
Cc: "Alex Deucher" <alexander.deucher@amd.com>,
	"Christian König" <christian.koenig@amd.com>,
	"Stewart Hildebrand" <Stewart.Hildebrand@amd.com>,
	"Xenia Ragiadakou" <burzalodowa@gmail.com>,
	"Honglei Huang" <honglei1.huang@amd.com>,
	"Julia Zhang" <julia.zhang@amd.com>,
	"Chen Jiqian" <Jiqian.Chen@amd.com>,
	"Huang Rui" <ray.huang@amd.com>
Subject: [RFC XEN PATCH 0/6] Introduce VirtIO GPU and Passthrough GPU support on Xen PVH dom0
Date: Sun, 12 Mar 2023 15:54:49 +0800	[thread overview]
Message-ID: <20230312075455.450187-1-ray.huang@amd.com> (raw)

Hi all,

In graphic world, the 3D applications/games are runing based on open
graphic libraries such as OpenGL and Vulkan. Mesa is the Linux
implemenatation of OpenGL and Vulkan for multiple hardware platforms.
Because the graphic libraries would like to have the GPU hardware
acceleration. In virtualization world, virtio-gpu and passthrough-gpu are
two of gpu virtualization technologies.

Current Xen only supports OpenGL (virgl:
https://docs.mesa3d.org/drivers/virgl.html) for virtio-gpu and passthrough
gpu based on PV dom0 for x86 platform. Today, we would like to introduce
Vulkan (venus: https://docs.mesa3d.org/drivers/venus.html) and another
OpenGL on Vulkan (zink: https://docs.mesa3d.org/drivers/zink.html) support
for VirtIO GPU on Xen. These functions are supported on KVM at this moment,
but so far, they are not supported on Xen. And we also introduce the PCIe
passthrough (GPU) function based on PVH dom0 for AMD x86 platform.

These supports required multiple repositories changes on kernel, xen, qemu,
mesa, and virglrenderer. Please check below branches:

Kernel: https://git.kernel.org/pub/scm/linux/kernel/git/rui/linux.git/log/?h=upstream-fox-xen
Xen: https://gitlab.com/huangrui123/xen/-/commits/upstream-for-xen
QEMU: https://gitlab.com/huangrui123/qemu/-/commits/upstream-for-xen
Mesa: https://gitlab.freedesktop.org/rui/mesa/-/commits/upstream-for-xen
Virglrenderer: https://gitlab.freedesktop.org/rui/virglrenderer/-/commits/upstream-for-xen

In xen part, we mainly add the PCIe passthrough support on PVH dom0. It's
using the QEMU to passthrough the GPU device into guest HVM domU. And
mainly work is to transfer the interrupt by using gsi, vector, and pirq.

Below are the screenshot of these functions, please take a look.

Venus:
https://drive.google.com/file/d/1_lPq6DMwHu1JQv7LUUVRx31dBj0HJYcL/view?usp=share_link

Zink:
https://drive.google.com/file/d/1FxLmKu6X7uJOxx1ZzwOm1yA6IL5WMGzd/view?usp=share_link

Passthrough GPU:
https://drive.google.com/file/d/17onr5gvDK8KM_LniHTSQEI2hGJZlI09L/view?usp=share_link

We are working to write the documentation that describe how to verify these
functions in the xen wiki page. And will update it in the future version.

Thanks,
Ray

Chen Jiqian (5):
  vpci: accept BAR writes if dom0 is PVH
  x86/pvh: shouldn't check pirq flag when map pirq in PVH
  x86/pvh: PVH dom0 also need PHYSDEVOP_setup_gsi call
  tools/libs/call: add linux os call to get gsi from irq
  tools/libs/light: pci: translate irq to gsi

Roger Pau Monne (1):
  x86/pvh: report ACPI VFCT table to dom0 if present

 tools/include/xen-sys/Linux/privcmd.h |  7 +++++++
 tools/include/xencall.h               |  2 ++
 tools/include/xenctrl.h               |  2 ++
 tools/libs/call/core.c                |  5 +++++
 tools/libs/call/libxencall.map        |  2 ++
 tools/libs/call/linux.c               | 14 ++++++++++++++
 tools/libs/call/private.h             |  9 +++++++++
 tools/libs/ctrl/xc_physdev.c          |  4 ++++
 tools/libs/light/libxl_pci.c          |  1 +
 xen/arch/x86/hvm/dom0_build.c         |  1 +
 xen/arch/x86/hvm/hypercall.c          |  3 +--
 xen/drivers/vpci/header.c             |  2 +-
 xen/include/acpi/actbl3.h             |  1 +
 13 files changed, 50 insertions(+), 3 deletions(-)

-- 
2.25.1



             reply	other threads:[~2023-03-12  7:55 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-12  7:54 Huang Rui [this message]
2023-03-12  7:54 ` [RFC XEN PATCH 1/6] x86/pvh: report ACPI VFCT table to dom0 if present Huang Rui
2023-03-13 11:55   ` Andrew Cooper
2023-03-13 12:21     ` Roger Pau Monné
2023-03-13 12:27       ` Andrew Cooper
2023-03-21  6:26         ` Huang Rui
2023-03-12  7:54 ` [RFC XEN PATCH 2/6] vpci: accept BAR writes if dom0 is PVH Huang Rui
2023-03-13  7:23   ` Christian König
2023-03-13  7:26     ` Christian König
2023-03-13  8:46       ` Jan Beulich
2023-03-13  8:55       ` Huang Rui
2023-03-14 23:42       ` Stefano Stabellini
2023-03-14 16:02   ` Jan Beulich
2023-03-21  9:36     ` Huang Rui
2023-03-21  9:41       ` Jan Beulich
2023-03-21 10:14         ` Huang Rui
2023-03-21 10:20           ` Jan Beulich
2023-03-21 11:49             ` Huang Rui
2023-03-21 12:20               ` Roger Pau Monné
2023-03-21 12:25                 ` Jan Beulich
2023-03-21 12:59                 ` Huang Rui
2023-03-21 12:27               ` Jan Beulich
2023-03-21 13:03                 ` Huang Rui
2023-03-22  7:28                   ` Huang Rui
2023-03-22  7:45                     ` Jan Beulich
2023-03-22  9:34                     ` Roger Pau Monné
2023-03-22 12:33                       ` Huang Rui
2023-03-22 12:48                         ` Jan Beulich
2023-03-23 10:26                           ` Huang Rui
2023-03-23 14:16                             ` Jan Beulich
2023-03-23 10:43                           ` Roger Pau Monné
2023-03-23 13:34                             ` Huang Rui
2023-03-23 16:23                               ` Roger Pau Monné
2023-03-24  4:37                                 ` Huang Rui
2023-03-12  7:54 ` [RFC XEN PATCH 3/6] x86/pvh: shouldn't check pirq flag when map pirq in PVH Huang Rui
2023-03-14 16:27   ` Jan Beulich
2023-03-15 15:57   ` Roger Pau Monné
2023-03-16  0:22     ` Stefano Stabellini
2023-03-21 10:09     ` Huang Rui
2023-03-21 10:17       ` Jan Beulich
2023-03-12  7:54 ` [RFC XEN PATCH 4/6] x86/pvh: PVH dom0 also need PHYSDEVOP_setup_gsi call Huang Rui
2023-03-14 16:30   ` Jan Beulich
2023-03-15 17:01     ` Andrew Cooper
2023-03-16  0:26       ` Stefano Stabellini
2023-03-16  0:39         ` Stefano Stabellini
2023-03-16  8:51         ` Jan Beulich
2023-03-16  9:18           ` Roger Pau Monné
2023-03-16  7:05       ` Jan Beulich
2023-03-21 12:42       ` Huang Rui
2023-03-21 12:22     ` Huang Rui
2023-03-12  7:54 ` [RFC XEN PATCH 5/6] tools/libs/call: add linux os call to get gsi from irq Huang Rui
2023-03-14 16:36   ` Jan Beulich
2023-03-12  7:54 ` [RFC XEN PATCH 6/6] tools/libs/light: pci: translate irq to gsi Huang Rui
2023-03-14 16:39   ` Jan Beulich
2023-03-15 16:35   ` Roger Pau Monné
2023-03-16  0:44     ` Stefano Stabellini
2023-03-16  8:54       ` Roger Pau Monné
2023-03-16  8:55       ` Jan Beulich
2023-03-16  9:27         ` Roger Pau Monné
2023-03-16  9:42           ` Jan Beulich
2023-03-16 23:19             ` Stefano Stabellini
2023-03-17  8:39               ` Jan Beulich
2023-03-17  9:51                 ` Roger Pau Monné
2023-03-17 18:15                   ` Stefano Stabellini
2023-03-17 19:48                     ` Roger Pau Monné
2023-03-17 20:55                       ` Stefano Stabellini
2023-03-20 15:16                         ` Roger Pau Monné
2023-03-20 15:29                           ` Jan Beulich
2023-03-20 16:50                             ` Roger Pau Monné
2023-07-31 16:40                         ` Chen, Jiqian
2023-08-23  8:57                           ` Roger Pau Monné
2023-08-31  8:56                             ` Chen, Jiqian
2023-03-13  7:24 ` [RFC XEN PATCH 0/6] Introduce VirtIO GPU and Passthrough GPU support on Xen PVH dom0 Christian König
2023-03-21 10:26   ` Huang Rui
2023-03-20 16:22 ` Huang Rui

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=20230312075455.450187-1-ray.huang@amd.com \
    --to=ray.huang@amd.com \
    --cc=Jiqian.Chen@amd.com \
    --cc=Stewart.Hildebrand@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=anthony.perard@citrix.com \
    --cc=burzalodowa@gmail.com \
    --cc=christian.koenig@amd.com \
    --cc=honglei1.huang@amd.com \
    --cc=jbeulich@suse.com \
    --cc=julia.zhang@amd.com \
    --cc=roger.pau@citrix.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).