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

[Xen-devel] Memory mapping for PEG/PCIe Graphics Passthrough to <any> DomU


  • To: "'xen-devel@xxxxxxxxxxxxxxxxxxx'" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Tim Moore <timothy.moore@xxxxxxxxxxx>
  • Date: Mon, 30 Mar 2009 14:35:13 +0100
  • Accept-language: en-US, en-GB
  • Acceptlanguage: en-US, en-GB
  • Delivery-date: Mon, 30 Mar 2009 06:35:51 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcmxO0Q/aM3MpKzvTfOiiZumVOVcYA==
  • Thread-topic: Memory mapping for PEG/PCIe Graphics Passthrough to <any> DomU

Hi

 

I have been testing xen-unstable.hg (29/03/09) over the past few days .. trying to enable passthrough for VGA.

 

I am using Debian 5.0 (lenny) x64 and compiling from source each time. Tried both linux-2.6.18.8 and linux-2.6.27.5 from Xenbits …

 

Hardware is Nvidia Geforce 8800 512mb GTS PCIe on Intel X58 (ASUS P6T Deluxe) with Core i7 920 CPU.

(had to hack the xen/drviers/pci/passthrough/vtd/dmar.c (line 388) and remove the DMAR bail because of bad RMRR tables.

I also have ATI X300 PCIe for Dom0 Console.

 

Using Xen parameter: iommu=passthrough,pv

Using Dom) parameter: pciback.hide=(‘…’)

 

I compiled pciback as embedded in the kernel and I have tried many different scenarios:

 

1) Nvidia Primary (hidden with pciback.hide= kernel param) (no ATI card installed)

2) ATI Primary, with Nvidia hidden (with pciback.hide= kernel param)

3) all scenarios with pciback as module and using echo devn > /sys/bus/pci/drivers/pciback/new_slot and bind

 

In all scenarios I can successfully see the correct PCI device in the DomU(s), I have tried primarily Windows XP 32bit SP3 and also: linux-2.6.18.8 and linux-2.6.27.5 PV and non PV kernels as DomU and (although I didn’t load a driver) the lspci –vvv showed the devices.

 

Now, I progressed to installing drivers under the Win32 DomU against the Nvidia card, windows correctly identified the device and installed the driver! (latest from nvidia.com). As we all know – Windows wanted a reboot- beforehand a quick check of the device and it has a Yellow exclamation indicating reboot required and resources unavailable.

Reboot and XP starts up … BSOD .. nv4 driver fails .. L

 

Tried with the ATI X300 Primary (no NVidia connected) and went through the same steps. Windows XP now boots without crash although the ATI device still shows a yellow exclamation and insufficient resources.

 

To summarise, pciback functions as expected for PCIe in Dom0 and DomU sees the device. All tools work fine (xm pci-attach / pci-detach / pci-list) and devid show and are managed correctly.

 

I have read all that there is on this subject and have come to the conclusion that this is a problem with qemu-dm and the memory mapping for the new Video device, the Cirrus or stdvga card is always present which I believe may be causing the problem. I have tried nographics=1 but qemu-dm still maps the Video BIOS.

 

Then I noticed that qemu-dm has the new options for “-vga none” .. so I built a wrapper script for qemu-dm to launch with this param. Unfortuntately the DomU doesn’t startup and the qemu log does not show any mention of the Video memory ! so I believe the switch works, but the DomU then fails to boot L

 

To solve this and make it usable I think some development of qemu with regards to the Cirrus VGA and memory management when using more than 1 vga controller is necessary in order to remap the Cirrus or secondary vga adapters in memory correctly. (its also difficult to configure a Windows machine for a second vga when the primary is disabled lol.)

 

Also, I have run strace using a qemu-dm wrapper (very verbose) and analysed the results –nothing seems obvious, but i`m not an expert by far ….

 

Windows has been able to support multiple VGA cards for a long time; I assume that MS is remapping these somehow?

 

I have read in 2 different places that this has worked for others before (without the legacy patch for igfx) and with xen-unstable.hg .. why does it not work for me ?

 

Any help / direction to further debug would be helpful .. I think many people would like to get this one working once and for all!

 

Tim

_______________________________________________
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®.