[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] Using VT-D to grant a Windows DomU access to a PCIExpress graphics card?


  • To: "David Stone" <unclestoner@xxxxxxxxx>, "Xen Developers" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Han, Weidong" <weidong.han@xxxxxxxxx>
  • Date: Fri, 7 Dec 2007 10:03:48 +0800
  • Delivery-date: Thu, 06 Dec 2007 18:04:32 -0800
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: Acg4PTJbVMN3JHnDT+a3tsRRIG8AlAANhfUg
  • Thread-topic: [Xen-devel] Using VT-D to grant a Windows DomU access to a PCIExpress graphics card?

David Stone wrote:
>  I've also been trying to get hardware-accelerate Direct3D to work in
> a (Windows) DomU via VT-D.  I've got a PCI NIC passing through fine,
> but 
> not a graphics carrd.  The points below describe where I'm at and what
> is happening.  I'd appreciate any help anyone could offer, and also I
> have these specific questions:
> 
> Is PCI Express supported by VT-D and/or Xen's VT-D support?  

Yes.

> graphics card I'd like to pass through is PCI Express.
> If so, what PCI devices do I have to hide from Dom0 and pass to my
> Windows DomU?  Do I need to do this for the "PCI Express Root Port"
> AND "PCI Express Port 1" PCI devices as well has the graphics card
> itself?

Graphices card is special. Many tricky things need to be done, such as
frame buffer, VGA guest bios, etc. So current VT-d in Xen doesn't
support assigning graphics card yet.

> What device types have been tested (informally) with Xen's VT-D
> support?  NICs I assume (plus NICs work fine for me anyway), anything
> else?  Has all the testing been with a Linux HVM DomU, or also other
> OS DomU's
> 

NICs including PCI and PCIe are regularly tested, you can see test
results in mailing list. Disk and USB devices should also work. Current
VT-d only supports HVM guests including Windows and Linux. In addition,
VT-d only works on 64-bit and 32PAE host.

> 
>  - I have a machine with a VT-D IOMMU (Dell Optiplex 755).
>  - I'm using various Xen builds from xen-unstable.
>  - I've verified that (for certain builds) Xen's VT-D support is
> working for me.  I used a NIC PCI device (for a couple of reasons) as
> a test of VT-D/Xen, and it works...I can see the actual NIC in Windows
> 2003 DomU's Device Manager (not an emulated NIC nor a PV driver), and
> it interacts with the network fine.  Furthermore I can RDP into the
> Windows DomU
>  - The next step was to try passing the PCI Express graphics card (an
> ATI) through to the Windows DomU.
>  - In order to save my graphics card for my Windows DomU,  I tell
> various components (grub, Xen kernel, Linux kernel) to use the serial
> port instead of the graphics card.  I also pciback.hide the PCI
> Express graphics card from Dom0 (just as I hid the PCI NIC).  When
> booting up Xen/Dom0 the all I see on the monitor is the BIOS spash
> screen, "Grub Loading Stage2...", and after that just a black screen
> with a blinking cursor in the upper-left corner.  Everything else
> starting with the Grub selection screen is through the serial port.
>  - I start up my Windows DomU.  For now the intent is to RDP into it
> and see if Windows sees the graphics card I passed through to it or
> not.  (As stated above, this works fine if I don't try to pass through
> the graphics card)  But, after may 20 seconds (about the time it takes
> the Windows DomU to fully boot up normally), my physical machine
> hangs.  The last thing is just an open-parenthesis on the serial
> console (where I have Xen directing it's output)...I presume it is the
> beginning of a message from Xen that is related to the hang, because I
> don't see any such message normally.
> 
> lspci -nn
> 00:00.0 Host bridge [0600]: Intel Corporation DRAM Controller
> [8086:29b0] (rev 02)
> 00:01.0 PCI bridge [0604]: Intel Corporation PCI Express Root Port
> [8086:29b1] (rev 02)
> 00:03.0 Communication controller [0780]: Intel Corporation MEI
> Controller [8086:29b4] (rev 02)
> 00:03.2 IDE interface [0101]: Intel Corporation PT IDER Controller
> [8086:29b6] (rev 02)
> 00:03.3 Serial controller [0700]: Intel Corporation Serial KT
> Controller [8086:29b7] (rev 02)
> 00:1a.0 USB Controller [0c03]: Intel Corporation USB UHCI Controller
> #4 [8086:2937] (rev 02)
> 00:1a.1 USB Controller [0c03]: Intel Corporation USB UHCI Controller
> #5 [8086:2938] (rev 02)
> 00:1a.7 USB Controller [0c03]: Intel Corporation USB2 EHCI Controller
> #2 [8086:293c] (rev 02)
> 00:1b.0 Audio device [0403]: Intel Corporation HD Audio Controller
> [8086:293e] (rev 02)
> 00:1c.0 PCI bridge [0604]: Intel Corporation PCI Express Port 1
> [8086:2940] (rev 02)
> 00:1d.0 USB Controller [0c03]: Intel Corporation USB UHCI Controller
> #1 [8086:2934] (rev 02)
> 00:1d.1 USB Controller [0c03]: Intel Corporation USB UHCI Controller
> #2 [8086:2935] (rev 02)
> 00:1d.2 USB Controller [0c03]: Intel Corporation USB UHCI Controller
> #3 [8086:2936] (rev 02)
> 00:1d.7 USB Controller [0c03]: Intel Corporation USB2 EHCI Controller
> #1 [8086:293a] (rev 02)
> 00:1e.0 PCI bridge [0604]: Intel Corporation 82801 PCI Bridge
> [8086:244e] (rev 92)
> 00:1f.0 ISA bridge [0601]: Intel Corporation LPC Interface Controller
> [8086:2914] (rev 02)
> 00:1f.2 SATA controller [0106]: Intel Corporation 6 port SATA AHCI
> Controller [8086:2922] (rev 02)
> 00:1f.3 SMBus [0c05]: Intel Corporation SMBus Controller [8086:2930]
> (rev 02) 01:00.0 VGA compatible controller [0300]: ATI Technologies
> Inc Unknown device [1002:94c3]
> 03:00.0 Ethernet controller [0200]: Intel Corporation 82557/8/9
> [Ethernet Pro 100] [8086:1229] (rev 05)
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.