WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Memory mapping for PEG/PCIe Graphics Passthrough to and

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] Memory mapping for PEG/PCIe Graphics Passthrough to and DomU
From: Tim Moore <timothy.moore@xxxxxxxxxxx>
Date: Tue, 7 Apr 2009 01:04:19 +0100
Accept-language: en-US, en-GB
Acceptlanguage: en-US, en-GB
Delivery-date: Mon, 06 Apr 2009 17:04:58 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <831D55AF5A11D64C9B4B43F59EEBF7202311F51BAE@xxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <14D9C9E2ED61ED41BC3B37ACDF4E8800029E434B9F08@xxxxxxxxxxxxxxxxxxxxxxx> <14D9C9E2ED61ED41BC3B37ACDF4E8800029E434B9F09@xxxxxxxxxxxxxxxxxxxxxxx> <f68b66460903300737y1c172e55o2053671696d23358@xxxxxxxxxxxxxx> <14D9C9E2ED61ED41BC3B37ACDF4E8800029E434B9F0A@xxxxxxxxxxxxxxxxxxxxxxx> <f68b66460903300756j58f09770qcbd9956e37807e42@xxxxxxxxxxxxxx> <14D9C9E2ED61ED41BC3B37ACDF4E8800029E434B9F0B@xxxxxxxxxxxxxxxxxxxxxxx> <831D55AF5A11D64C9B4B43F59EEBF7202311F51BAE@xxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcmxR8rRe+aSwX/aTEO/fK7wsq+rCgABD++AAAJO/+ABbsixQA==
Thread-topic: [Xen-devel] Memory mapping for PEG/PCIe Graphics Passthrough to and DomU
Some further developments .. (sorry for the long post)

After more wasted days - sigh - not much further ..

Still trying with xen-unstable-hg modified as mentioned earlier in the thread 
to workaround bad RMRR/DMAR addresses.

Have also successfully compiled and booted XenClient (XCI), which I have tried 
booting DomU with vga and no success :(

I believe the problem is now down to getting the correct FLR to prepare the VGA 
card for DomU. I am starting the DomU with  pci = ['03:00.0']  in the config 
file so as qemu starts with the device attached. I have also tried xm 
pci-attach and detach (which work great by the way).

I can see the device in WinXP DomU and installed latest NVidia driver, driver 
can`t load due to lack of resources (Code 10).

Also tried with nographics=1 and stdvga=0/1.
Also created qemu-dm wrapper to pass "-vga none" ...

Still Code 10 and no response from the Nvidia card/monitor in Windows DomU.

Here is my lspci listing for the Nvidia 8800 GTS 512 (I see FLReset- so is card 
supported?)

This is from Dom0 (2.6.27.5) with pciback.hide=(03:00.0) and iommu=on,pv (DomU 
is loaded with card attached)
Memory Region 0,1,3,5 all show [disabled] when DomU is down btw.

03:00.0 VGA compatible controller: nVidia Corporation GeForce 8800 GTS 512 (rev 
a2) (prog-if 00 [VGA controller])
        Subsystem: Device 19f1:0719
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 30
        Region 0: Memory at fa000000 (32-bit, non-prefetchable) [size=16M]
        Region 1: Memory at d0000000 (64-bit, prefetchable) [size=256M]
        Region 3: Memory at f8000000 (64-bit, non-prefetchable) [size=32M]
        Region 5: I/O ports at ac00 [size=128]
        Expansion ROM at fbae0000 [disabled] [size=128K]
        Capabilities: [60] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [68] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 
Enable+
                Address: 00000000fee004d8  Data: 0000
        Capabilities: [78] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, 
L1 <4us
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- 
Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- 
TransPend-
                LnkCap: Port #0, Speed 5GT/s, Width x16, ASPM L0s L1, Latency 
L0 <256ns, L1 <1us
                        ClockPM- Suprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 5GT/s, Width x16, TrErr- Train- SlotClk+ 
DLActive- BWMgmt- ABWMgmt-
        Capabilities: [100] Virtual Channel <?>
        Capabilities: [128] Power Budgeting <?>
        Capabilities: [600] Vendor Specific Information <?>
        Kernel driver in use: pciback
        Kernel modules: nvidiafb


qemu-dm output (pertinent information):

[2009-04-07 00:31:21 3873] DEBUG (XendDomainInfo:2444) 
_initDomain:shadow_memory=0x0, memory_static_max=0x40000000, 
memory_static_min=0x0.
[2009-04-07 00:31:21 3873] DEBUG (balloon:166) Balloon: 5130492 KiB free; need 
1065984; done.
[2009-04-07 00:31:21 3873] INFO (image:168) buildDomain os=hvm dom=22 vcpus=1
[2009-04-07 00:31:21 3873] DEBUG (image:843) domid          = 22
[2009-04-07 00:31:21 3873] DEBUG (image:844) image          = 
/usr/lib/xen/boot/hvmloader
[2009-04-07 00:31:21 3873] DEBUG (image:845) store_evtchn   = 2
[2009-04-07 00:31:21 3873] DEBUG (image:846) memsize        = 1024
[2009-04-07 00:31:21 3873] DEBUG (image:847) target         = 1024
[2009-04-07 00:31:21 3873] DEBUG (image:848) vcpus          = 1
[2009-04-07 00:31:21 3873] DEBUG (image:849) acpi           = 1
[2009-04-07 00:31:21 3873] DEBUG (image:850) apic           = 1
....
...
[2009-04-07 00:31:21 3873] INFO (pciquirk:90) NO quirks found for PCI device 
[10de:0600:19f1:0719]
[2009-04-07 00:31:21 3873] DEBUG (pciquirk:130) Permissive mode enabled for PCI 
device [10de:0600:19f1:0719]
[2009-04-07 00:31:21 3873] DEBUG (pciquirk:139) Unconstrained device: 
0000:03:00.0
[2009-04-07 00:31:21 3873] DEBUG (pciif:335) pci: enabling ioport 0xac00/0x80
[2009-04-07 00:31:21 3873] DEBUG (pciif:349) pci: enabling iomem 
0xfa000000/0x1000000 pfn 0xfa000/0x1000
[2009-04-07 00:31:21 3873] DEBUG (pciif:349) pci: enabling iomem 
0xd0000000/0x10000000 pfn 0xd0000/0x10000
[2009-04-07 00:31:21 3873] DEBUG (pciif:349) pci: enabling iomem 
0xf8000000/0x2000000 pfn 0xf8000/0x2000
[2009-04-07 00:31:21 3873] DEBUG (pciif:349) pci: enabling iomem 
0xfbae0000/0x20000 pfn 0xfbae0/0x20
[2009-04-07 00:31:22 3873] DEBUG (pciif:378) pci: enabling irq 30
[2009-04-07 00:31:22 3873] DEBUG (pciif:457) pci: register aer watch 
/local/domain/0/backend/pci/22/0/aerState

.....
.....
xm dmesg output ....
(XEN) HVM22: HVM Loader
(XEN) HVM22: Detected Xen v3.4-unstable
(XEN) HVM22: CPU speed is 2673 MHz
(XEN) irq.c:235: Dom22 PCI link 0 changed 0 -> 5
(XEN) HVM22: PCI-ISA link 0 routed to IRQ5
(XEN) irq.c:235: Dom22 PCI link 1 changed 0 -> 10
(XEN) HVM22: PCI-ISA link 1 routed to IRQ10
(XEN) irq.c:235: Dom22 PCI link 2 changed 0 -> 11
(XEN) HVM22: PCI-ISA link 2 routed to IRQ11
(XEN) irq.c:235: Dom22 PCI link 3 changed 0 -> 5
(XEN) HVM22: PCI-ISA link 3 routed to IRQ5
(XEN) HVM22: pci dev 01:3 INTA->IRQ10
(XEN) HVM22: pci dev 03:0 INTA->IRQ5
(XEN) HVM22: pci dev 04:0 INTA->IRQ5
(XEN) HVM22: pci dev 05:0 INTA->IRQ10
(XEN) HVM22: pci dev 03:0 bar 14 size 10000000: e000000c
(XEN) domctl.c:822:d0 memory_map:add: gfn=e0000 mfn=d0000 nr_mfns=10000
(XEN) HVM22: pci dev 03:0 bar 1c size 02000000: f0000004
(XEN) domctl.c:822:d0 memory_map:add: gfn=f0000 mfn=f8000 nr_mfns=2000
(XEN) HVM22: pci dev 03:0 bar 10 size 01000000: f2000000
(XEN) domctl.c:822:d0 memory_map:add: gfn=f2000 mfn=fa000 nr_mfns=1000
(XEN) HVM22: pci dev 04:0 bar 14 size 01000000: f3000008
(XEN) HVM22: pci dev 02:0 bar 10 size 00400000: f4000008
(XEN) HVM22: pci dev 03:0 bar 30 size 00020000: f4400000
(XEN) domctl.c:822:d0 memory_map:add: gfn=f4400 mfn=fbae0 nr_mfns=20
(XEN) HVM22: pci dev 04:0 bar 10 size 00000100: 0000c001
(XEN) HVM22: pci dev 05:0 bar 10 size 00000100: 0000c101
(XEN) HVM22: pci dev 05:0 bar 14 size 00000100: f4420000
(XEN) HVM22: pci dev 03:0 bar 24 size 00000080: 0000c201
(XEN) domctl.c:873:d0 ioport_map:add f_gport=c200 f_mport=ac00 np=80
(XEN) HVM22: pci dev 01:1 bar 20 size 00000010: 0000c281
(XEN) HVM22: Multiprocessor initialisation:
(XEN) HVM22:  - CPU0 ... 36-bit phys ... fixed MTRRs ... var MTRRs [3/8] ... 
done.
(XEN) HVM22: Testing HVM environment:
(XEN) HVM22:  - REP INSB across page boundaries ... passed
(XEN) HVM22: Passed 1/1 tests
(XEN) HVM22: Writing SMBIOS tables ...
(XEN) HVM22: Loading ROMBIOS ...
(XEN) HVM22: 9788 bytes of ROMBIOS high-memory extensions:
(XEN) HVM22:   Relocating to 0xfc000000-0xfc00263c ... done
(XEN) HVM22: Creating MP tables ...
(XEN) HVM22: Loading Standard VGABIOS ...
(XEN) HVM22: Loading PCI Option ROM ...
(XEN) HVM22:  - Manufacturer: http://etherboot.org
(XEN) HVM22:  - Product name: gPXE
(XEN) HVM22: Loading ACPI ...
(XEN) HVM22:  - Lo data: 000ea020-000ea04f
(XEN) HVM22:  - Hi data: fc002800-fc005caf
(XEN) HVM22: vm86 TSS at fc006000
(XEN) HVM22: BIOS map:
(XEN) HVM22:  c0000-c9fff: VGA BIOS
(XEN) HVM22:  ca000-d67ff: Etherboot ROM
(XEN) HVM22:  eb000-eb14e: SMBIOS tables
(XEN) HVM22:  f0000-fffff: Main BIOS
(XEN) HVM22: Invoking ROMBIOS ...
(XEN) HVM22: $Revision: 1.221 $ $Date: 2008/12/07 17:32:29 $
(XEN) stdvga.c:147:d22 entering stdvga and caching modes
(XEN) HVM22: VGABios $Id: vgabios.c,v 1.67 2008/01/27 09:44:12 vruppert Exp $
(XEN) HVM22: VBE Bios $Id: vbe.c,v 1.60 2008/03/02 07:47:21 vruppert Exp $
(XEN) HVM22: Bochs BIOS - build: 06/23/99
(XEN) HVM22: $Revision: 1.221 $ $Date: 2008/12/07 17:32:29 $
(XEN) HVM22: Options: apmbios pcibios eltorito PMM
(XEN) HVM22:
(XEN) HVM22: ata0-0: PCHS=16383/16/63 translation=lba LCHS=1024/255/63
(XEN) HVM22: ata0 master: QEMU HARDDISK ATA-7 Hard-Disk (38912 MBytes)
(XEN) HVM22: IDE time out
(XEN) HVM22: ata1 master: QEMU DVD-ROM ATAPI-4 CD-Rom/DVD-Rom
(XEN) HVM22: IDE time out
(XEN) HVM22:
(XEN) HVM22:
(XEN) HVM22:
(XEN) HVM22: Press F12 for boot menu.
(XEN) HVM22:
(XEN) HVM22: Booting from Hard Disk...
(XEN) HVM22: Booting from 0000:7c00
(XEN) HVM22: int13_harddisk: function 15, unmapped device for ELDL=81
(XEN) HVM22: *** int 15h function AX=e980, BX=0066 not yet supported!
(XEN) irq.c:235: Dom22 PCI link 0 changed 5 -> 0
(XEN) irq.c:235: Dom22 PCI link 1 changed 10 -> 0
(XEN) irq.c:235: Dom22 PCI link 2 changed 11 -> 0
(XEN) irq.c:235: Dom22 PCI link 3 changed 5 -> 0
(XEN) domctl.c:832:d0 memory_map:remove: gfn=f2000 mfn=fa000 nr_mfns=1000
(XEN) domctl.c:832:d0 memory_map:remove: gfn=e0000 mfn=d0000 nr_mfns=10000
(XEN) domctl.c:832:d0 memory_map:remove: gfn=f0000 mfn=f8000 nr_mfns=2000
(XEN) domctl.c:897:d0 ioport_map:remove f_gport=c200 f_mport=ac00 np=80
(XEN) domctl.c:832:d0 memory_map:remove: gfn=f4400 mfn=fbae0 nr_mfns=20
(XEN) domctl.c:822:d0 memory_map:add: gfn=f2000 mfn=fa000 nr_mfns=1000
(XEN) domctl.c:822:d0 memory_map:add: gfn=e0000 mfn=d0000 nr_mfns=10000
(XEN) domctl.c:822:d0 memory_map:add: gfn=f0000 mfn=f8000 nr_mfns=2000
(XEN) domctl.c:873:d0 ioport_map:add f_gport=c200 f_mport=ac00 np=80
(XEN) domctl.c:822:d0 memory_map:add: gfn=f4400 mfn=fbae0 nr_mfns=20
(XEN) domctl.c:832:d0 memory_map:remove: gfn=f2000 mfn=fa000 nr_mfns=1000
(XEN) domctl.c:832:d0 memory_map:remove: gfn=e0000 mfn=d0000 nr_mfns=10000
(XEN) domctl.c:832:d0 memory_map:remove: gfn=f0000 mfn=f8000 nr_mfns=2000
(XEN) domctl.c:897:d0 ioport_map:remove f_gport=c200 f_mport=ac00 np=80
(XEN) domctl.c:832:d0 memory_map:remove: gfn=f4400 mfn=fbae0 nr_mfns=20
(XEN) domctl.c:822:d0 memory_map:add: gfn=f2000 mfn=fa000 nr_mfns=1000
(XEN) domctl.c:822:d0 memory_map:add: gfn=e0000 mfn=d0000 nr_mfns=10000
(XEN) domctl.c:822:d0 memory_map:add: gfn=f0000 mfn=f8000 nr_mfns=2000
(XEN) domctl.c:873:d0 ioport_map:add f_gport=c200 f_mport=ac00 np=80
(XEN) domctl.c:822:d0 memory_map:add: gfn=f4400 mfn=fbae0 nr_mfns=20
(XEN) domctl.c:832:d0 memory_map:remove: gfn=f2000 mfn=fa000 nr_mfns=1000
(XEN) domctl.c:832:d0 memory_map:remove: gfn=e0000 mfn=d0000 nr_mfns=10000
(XEN) domctl.c:832:d0 memory_map:remove: gfn=f0000 mfn=f8000 nr_mfns=2000
(XEN) domctl.c:897:d0 ioport_map:remove f_gport=c200 f_mport=ac00 np=80
(XEN) domctl.c:832:d0 memory_map:remove: gfn=f4400 mfn=fbae0 nr_mfns=20
(XEN) domctl.c:822:d0 memory_map:add: gfn=f2000 mfn=fa000 nr_mfns=1000
(XEN) domctl.c:822:d0 memory_map:add: gfn=e0000 mfn=d0000 nr_mfns=10000
(XEN) domctl.c:822:d0 memory_map:add: gfn=f0000 mfn=f8000 nr_mfns=2000
(XEN) domctl.c:873:d0 ioport_map:add f_gport=c200 f_mport=ac00 np=80
(XEN) domctl.c:822:d0 memory_map:add: gfn=f4400 mfn=fbae0 nr_mfns=20



I see no errors ... why is the nvidia card not being initialised ? FLR ?


Thanks,
Tim



-----Original Message-----
From: Ross Philipson [mailto:Ross.Philipson@xxxxxxxxxx]
Sent: 30 March 2009 17:43
To: Tim Moore; xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: Re: [Xen-devel] Memory mapping for PEG/PCIe Graphics Passthrough 
to <any> DomU

FLRs allow you to do a full reset of the device at the slot/function level 
putting the device is an uninitialized and quiescent state. For PCI devices it 
should show up as PCI capability 0x13. PCIe support for it is indicated in the 
PCI Express Capabilities -> Device Capabilities Register (bit 28). For both 
types you write the appropriate FLR command bit to do the reset. This is more 
or less a requirement for passing devices between domains (from what I have 
been told). The code to perform the actions is in the xend python tools if you 
want more details on it.

Thanks
Ross

-----Original Message-----
From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx 
[mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Tim Moore
Sent: Monday, March 30, 2009 11:34 AM
To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: Re: [Xen-devel] Memory mapping for PEG/PCIe Graphics Passthrough 
to <any> DomU


I agree, if any I was expecting the Nvidia card to work the most ..

One interesting thing is that there is a fan on the Nvidia that spins down when 
the bios is loaded, with Windows it is evident when the bios is reset/loaded - 
just before the GUI is displayed.
When booting Xen the fan stays high / fast as the pciback is loaded to prevent 
Dom0 taking ownership.. boot the DomU (WinXP) and the fan spins down the same 
as booting a native Win32 host .. aka I assume Bios/Card is loaded/Reset here ..

Pls can you explain FLR's ?


-----Original Message-----
From: Jean Guyader [mailto:jean.guyader@xxxxxxxxx]
Sent: 30 March 2009 15:57
To: Tim Moore
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: Re: [Xen-devel] Memory mapping for PEG/PCIe Graphics Passthrough 
to <any> DomU

Hi Tim,

In the native case there is only one mapping, there isn't any
remapping ones the bios has been executed. It is different in the hvm
scenario.

Anyway, the nvidia graphic card should works fine as a secondary, side
by side with the cirrus. I don't know if this card support FLR's but
that would be good to have a look.

Jean

2009/3/30 Tim Moore <timothy.moore@xxxxxxxxxxx>:
>
> Hi Jean,
>
> I can understand the issue with the graphics card drivers, and I can see how 
> that could be able problem. I am using a very modern nvidia and ati card for 
> testing, Alex is also using a couple of other different varieties so we are 
> able to test with a few different scenarios...
>
> How would this work under an MS kernel? these manufacturers do support dual 
> cards and I have also tested my ATI/Nvidia host with a Windows OS and both 
> cards are loaded and work fine. This says to me that the drivers can deal 
> with PCI remapping of some sorts?
>
> Cheers,
> Tim
>
> -----Original Message-----
> From: Jean Guyader [mailto:jean.guyader@xxxxxxxxx]
> Sent: 30 March 2009 15:38
> To: Tim Moore
> Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
> Subject: Re: Re: [Xen-devel] Memory mapping for PEG/PCIe Graphics Passthrough 
> to <any> DomU
>
> Hi Tim,
>
> Most of the time the problam doesn't come from the VT-d code but from
> the graphic card device drivers. Most of them doesn't really like PCI
> Bar remapping and try to use the old one.
> For instance the intel igfx has never been designed to be used as a
> secondary display adapter or even with another Host bridge than the
> one on the motherboard.
>
> Jean
>
> 2009/3/30 Tim Moore <timothy.moore@xxxxxxxxxxx>:
>> Hi Alex,
>>
>>
>>
>> When you say you had success with the onboard igfx, how much success? Have
>> you ever had a passthrough VGA display from a DomU ?
>>
>>
>>
>> I have also seen the write-up too although a lot of work has been done on
>> the VT-d support lately and I`m hoping to raise this again on the developer
>> list and start to document some of the problems/issues so as we can find a
>> way do solve it !
>>
>>
>>
>> Thanks for the reply! It still leaves this issue unsolved though ;(
>>
>>
>>
>> Tim
>>
>>
>>
>> ________________________________
>>
>> Subject: Re: [Xen-devel] Memory mapping for PEG/PCIe Graphics Passthrough to
>>
>>         <any> DomU
>>
>> From: Alexia Benington <alexbenington@xxxxxxxxx>
>>
>> To: Tim Moore <timothy.moore@xxxxxxxxxxx>
>>
>> Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
>>
>>
>>
>> Hi,
>>
>>
>>
>> I've been trying to get this to work for some months, albeit not
>>
>> full-time. I concur that many would like to see it working. Some have
>>
>> posted that they managed to get it to work correctly, however, they
>>
>> almost always never reply to queries on how they got it to work, or
>>
>> their observations.
>>
>>
>>
>> I did manage to get rid of the yellow exclamation mark. You'll need to
>>
>> disable the emulated VGA bios, pretty much as described here
>>
>> http://lists.xensource.com/archives/html/xen-devel/2008-12/msg00474.html.
>>
>>
>>
>> Even after doing so, some of the registers are not directly passed
>>
>> through. See http://lists.xensource.com/archives/html/xen-devel/2009-02/msg=
>>
>> 01131.html.
>>
>> I'm not sure if that may affect anything.
>>
>>
>>
>> I've experimented with an Intel DQ45CB, nVidia Quadro NVS 290, nVidia
>>
>> GF9500, ATI Radion HD 2600XT. The best results I get are when using
>>
>> the onboard igfx as the primary, which is also being passed through.
>>
>>
>>
>> There is also a writeup which you might want to take a look
>>
>> http://staff.science.uva.nl/~delaat/sne-2008-2009/p22/report.pdf.
>>
>>
>>
>> I'm also trying to get DomU's output to the display.
>>
>>
>>
>> -Alex
>>
>>
>>
>> 2009/3/30 Tim Moore <timothy.moore@xxxxxxxxxxx>:
>>
>>> 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. Tr=
>>
>> ied
>>
>>> both linux-2.6.18.8 and linux-2.6.27.5 from Xenbits =85
>>
>>>
>>
>>>
>>
>>>
>>
>>> 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=3Dpassthrough,pv
>>
>>>
>>
>>> Using Dom) parameter: pciback.hide=3D(=91=85=92)
>>
>>>
>>
>>>
>>
>>>
>>
>>> I compiled pciback as embedded in the kernel and I have tried many differ=
>>
>> ent
>>
>>> scenarios:
>>
>>>
>>
>>>
>>
>>>
>>
>>> 1) Nvidia Primary (hidden with pciback.hide=3D kernel param) (no ATI card
>>
>>> installed)
>>
>>>
>>
>>> 2) ATI Primary, with Nvidia hidden (with pciback.hide=3D 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=92t load a driver) the lspci =96vvv 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 =96 Windows wanted a reb=
>>
>> oot-
>>
>>> beforehand a quick check of the device and it has a Yellow exclamation
>>
>>> indicating reboot required and resources unavailable.
>>
>>>
>>
>>> Reboot and XP starts up =85 BSOD .. nv4 driver fails .. L
>>
>>>
>>
>>>
>>
>>>
>>
>>> Tried with the ATI X300 Primary (no NVidia connected) and went through th=
>>
>> e
>>
>>> same steps. Windows XP now boots without crash although the ATI device st=
>>
>> ill
>>
>>> shows a yellow exclamation and insufficient resources.
>>
>>>
>>
>>>
>>
>>>
>>
>>> To summarise, pciback functions as expected for PCIe in Dom0 and DomU see=
>>
>> s
>>
>>> the device. All tools work fine (xm pci-attach / pci-detach / pci-list) a=
>>
>> nd
>>
>>> 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=3D1 but qemu-=
>>
>> dm
>>
>>> still maps the Video BIOS.
>>
>>>
>>
>>>
>>
>>>
>>
>>> Then I noticed that qemu-dm has the new options for =93-vga none=94 .. so=
>>
>>  I
>>
>>> built a wrapper script for qemu-dm to launch with this param. Unfortuntat=
>>
>> ely
>>
>>> the DomU doesn=92t 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 vg=
>>
>> a
>>
>>> 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 analys=
>>
>> ed
>>
>>> the results =96nothing seems obvious, but i`m not an expert by far =85.
>>
>>>
>>
>>>
>>
>>>
>>
>>> 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
>>
>>>
>>
>>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel
>>
>>
>
>
>
> --
> Jean Guyader
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
>



--
Jean Guyader

_______________________________________________
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

<Prev in Thread] Current Thread [Next in Thread>
  • Re: [Xen-devel] Memory mapping for PEG/PCIe Graphics Passthrough to and DomU, Tim Moore <=