From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [RFC] XenGT - An Mediated Graphics Passthrough Solution from Intel Date: Mon, 9 Sep 2013 15:27:35 -0400 Message-ID: <20130909192735.GB4232@phenom.dumpdata.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "Shan, Haitao" Cc: "Tian, Kevin" , "White, Michael L" , "Dong, Eddie" , "Li, Susie" , "Cowperthwaite, David J" , "xen-devel@lists.xen.org" , "Haron, Sandra" List-Id: xen-devel@lists.xenproject.org On Mon, Sep 09, 2013 at 12:46:23PM +0000, Shan, Haitao wrote: > Hi, Xen Experts, > = > This email is aimed at a first time disclosure of project XenGT, which is > a Graphics virtualization solution based on Xen. > = > = > = > As you can see, requirements for GPU to be sharable among virtual machines > have been constantly rising. The targeted usage model might be > accelerating tasks ranging from gaming, video playback, fancy GUIs, > high-performance computing (GPU-based). This trend is observed on both > client and cloud. Efficient GPU virtualization is required to address the > increasing demands. > = > = > We have developed XenGT - a prototype based on a mediated passthrough > architecture. We support running a native graphics driver in multiple VMs > to achieve high performance. A specific mediator owns the scheduling and > sharing hardware resources among all the virtual machines. By saying > mediated pass-through, we actually divide graphics resource to two > categories: performance critical and others. We partition performance > critical resources for VM's direct access like pass-through, while save > and restore others. > = > = > = > XenGT implements the mediator in dom0, called vgt driver. This avoids > adding complex device knowledge to Xen, and also permits a more flexible > release model. In the meantime, we want to have a unified architecture to > mediate all the VMs, including dom0. Thus, We developed a =B3deprivileged= =B2 > dom0 mode, which essentially trapped Dom0's access to selected resources > (graphics resources in XenGT case) and forwarded to vgt driver (which is > also in Dom0) for processing. But could be in another domain itself - an device driver domain right? > = > = > Performance critical resources are: > - Part of the global virtual memory space > - VM=B9s own per-process virtual memory spaces > - VM=B9s own allocated command buffers (actually in graphics memory) > = > = > Others are: > - MMIO/PIO > - PCI configuration registers > - GTT tables > - Submission of queued GPU commands > = > Right now, we support 4 accelerated VMs: Dom0 + 3 HVM DomUs. We've > conducted verifications based on Ubuntu 12.04 and 13.04. Tests conducted > in VM include but are not limited to 3D gaming, media playbacks, 2D > accelerations. > = > We believe the architecture itself can be general so that different GPUs > can all use this mediated passthrough concept. However, we only developed > codes based on Intel 4th Core Processor with integrated Graphics. Note > that we don't require VT-d to run our solution. > = > If you have interests in trying, you can refer to the attached setup > guide, which provides step-to-step details on building/configuring/running > XenGT. > = > Source code is made available at github: > Xen: https://github.com/01org/XenGT-Preview-xen.git > Linux: https://github.com/01org/XenGT-Preview-kernel.git > Qemu: https://github.com/01org/XenGT-Preview-qemu.git Yeey! Awesome! Thank you for sharing that. > = > Any comments are welcome! > = > = > Special note: We are making this code available to general public since we > take community's involvement and feedbacks seriously. However, while we've > tested our solution with various workloads, the code is only at pre-alpha > stage. Hangs might happen, so please don't try it on the system that > hosting critical data for you. > = > Shan Haitao > = > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel