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

[Xen-devel] Using VT-D to grant a Windows DomU access to a PCI Express graphics card?


  • To: "Xen Developers" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "David Stone" <unclestoner@xxxxxxxxx>
  • Date: Thu, 6 Dec 2007 14:18:25 -0500
  • Delivery-date: Thu, 06 Dec 2007 11:19:29 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=EUDx12A6swPNonAU6AC2APr68J6MucSCwconbPXEgx7duuuVskdNgaMpJNer07AzYT5dg5jdsJaYQddmZQbTqLQUsW44MUlzRy7QjbYEorDhHNdCDOlficIHcW6wjrpqLOlDxeQMefP39izW7yRH5afvQ3IJWTdOKLQAvPdv9P0=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

 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?  The
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?
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


 - 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


 


Rackspace

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