I'm attempting to do gfx_passthru with the primary graphics
adapter (03:00.0), passing it to a guest. I can unbind it from
the host but when I fire up the guest OS my monitor loses signal from the graphics card and that's that. The GFX
card is dual DVI, I've tried both slots. Host is Linux
2.6.32.14-1.2.105.xendom0.fc12.x86_64, Guest is Windows 7. PC is an i7, GFX card is ATI Radeon HD 4670. I'm using Xen 4.0.0.
I can passthrough the graphics card as a normal PCI device and the
Windows 7 guest identifies it, installs a driver but quickly complains
that the device is "not functioning properly".
I've spent a lot of time on this, maybe the experts can help here... :) Thanks in advance. Relevant logs are below. (apologize if duplicates are received, I sent earlier but I think the message size was too large.)
Dave
Script to unbind devices on host:
#!/bin/sh
BDFS="0000:03:00.0 0000:03:00.1 0000:00:1d.0 0000:00:1d.1 0000:00:1d.2 0000:00:1d.7 0000:04:00.0"
modprobe xen-pciback
for BDF in $BDFS
do
[ ! -e /sys/bus/pci/devices/$BDF/driver/unbind ] || \
echo -n $BDF > /sys/bus/pci/devices/$BDF/driver/unbind
echo -n $BDF > /sys/bus/pci/drivers/pciback/new_slot
echo -n $BDF > /sys/bus/pci/drivers/pciback/bind
done
Win7 Gues config.sxp:
(domain
(domid 1)
(vcpus_params ((cap 0) (weight 256)))
(PV_args )
(memory_static_min 0)
(HVM_boot_policy 'BIOS order')
(PV_bootloader )
(auto_power_on False)
(memory_static_max 2147483648)
(cpus (() () ()))
(actions_after_shutdown destroy)
(memory_dynamic_max 2147483648)
(memory_sharing 0)
(superpages 0)
(is_a_template False)
(PV_bootloader_args )
(memory_dynamic_min 2147483648)
(VCPUs_live 1)
(target 0)
(actions_after_crash restart)
(uuid a6731e6f-477e-c9a8-ddf1-24d2559f3f38)
(PV_ramdisk )
(other_config ())
(name_label Win7)
(PV_kernel )
(actions_after_reboot restart)
(VCPUs_at_startup 1)
(HVM_boot_params ((order c)))
(platform
((timer_mode 1)
(hpet 0)
(vpt_align 1)
(apic 1)
(loader /usr/lib/xen/boot/hvmloader)
(rtc_timeoffset 0)
(serial pty)
(nomigrate 0)
(usbdevice tablet)
(tsc_mode 0)
(usb 1)
(device_model /usr/lib64/xen/bin/qemu-dm)
(boot c)
(parallel none)
(xen_platform_pci 1)
(gfx_passthru 1)
(pci ((0x0000 0x03 0x00 0x0 0x20 ()) (0x0000 0x03 0x00 0x1 0x28 ()) (0x0000 0x04 0x00 0x0 0x30 ())))
(pae 1)
(viridian 0)
(acpi 1)
(localtime 1)
)
)
(VCPUs_max 3)
(Description )
(bootloader )
(on_crash restart)
(uuid a6731e6f-477e-c9a8-ddf1-24d2559f3f38)
(bootloader_args )
(vcpus 3)
(description )
(name Win7)
(cpus (() () ()))
(on_reboot restart)
(on_poweroff destroy)
(maxmem 2048)
(memory 2048)
(shadow_memory 19)
(vcpu_avail '7')
(features )
(on_xend_start ignore)
(on_xend_stop ignore)
(start_time 1277361078.7)
(image
(hvm
(kernel )
(superpages 0)
(hpet 0)
(loader /usr/lib/xen/boot/hvmloader)
(xen_platform_pci 1)
(rtc_timeoffset 0)
(parallel none)
(pci
((0x0000 0x03 0x00 0x0 0x20 ())
(0x0000 0x03 0x00 0x1 0x28 ())
(0x0000 0x04 0x00 0x0 0x30 ())
)
)
(localtime 1)
(timer_mode 1)
(apic 1)
(usbdevice tablet)
(vpt_align 1)
(serial pty)
(gfx_passthru 1)
(boot c)
(pae 1)
(viridian 0)
(acpi 1)
(nomigrate 0)
(usb 1)
(tsc_mode 0)
(device_model /usr/lib64/xen/bin/qemu-dm)
(notes (SUSPEND_CANCEL 1))
)
)
(status 1)
(state ------)
(store_mfn '1044476')
(device (vkbd (backend 0)))
(device
(vbd
(uuid 38d51f7e-7b2e-895b-eb36-ca17849e8c5c)
(bootable 1)
(dev hda:disk)
(uname phy:/dev/sdf2)
(mode w)
(backend 0)
(VDI )
)
)
(device
(vfb
(vncunused 1)
(keymap en-us)
(vnc 1)
(uuid c8f2de24-0fc3-dc03-1141-29d7074bdbb6)
)
)
(device
(pci
(dev
(slot 0x00)
(domain 0x0000)
(key 03:00.0)
(bus 0x03)
(vdevfn 0x20)
(func 0x0)
(uuid 83e7e9d0-9a6c-228d-e69c-3c6715dabdfc)
)
(dev
(slot 0x00)
(domain 0x0000)
(key 03:00.1)
(bus 0x03)
(vdevfn 0x28)
(func 0x1)
(uuid 83e7e9d0-9a6c-228d-e69c-3c6715dabdfc)
)
(dev
(slot 0x00)
(domain 0x0000)
(key 04:00.0)
(bus 0x04)
(vdevfn 0x30)
(func 0x0)
(uuid 83e7e9d0-9a6c-228d-e69c-3c6715dabdfc)
)
(uuid 7eca9041-7958-fda6-0d04-406884a17f47)
(backend 0)
)
)
)
[root@jedi root]# lspci
00:00.0 Host bridge: Intel Corporation 5520/5500/X58 I/O Hub to ESI Port (rev 12)
00:01.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 1 (rev 12)
00:03.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 3 (rev 12)
00:07.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 7 (rev 12)
00:14.0 PIC: Intel Corporation 5520/5500/X58 I/O Hub System Management Registers (rev 12)
00:14.1 PIC: Intel Corporation 5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (rev 12)
00:14.2 PIC: Intel Corporation 5520/5500/X58 I/O Hub Control Status and RAS Registers (rev 12)
00:14.3 PIC: Intel Corporation 5520/5500/X58 I/O Hub Throttle Registers (rev 12)
00:1a.0 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #4
00:1a.1 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #5
00:1a.2 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #6
00:1a.7 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #2
00:1c.0 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Root Port 1
00:1c.2 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Root Port 3
00:1c.4 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Root Port 5
00:1c.5 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Root Port 6
00:1d.0 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #1
00:1d.1 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #2
00:1d.2 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #3
00:1d.7 USB Controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #1
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 90)
00:1f.0 ISA bridge: Intel Corporation 82801JIR (ICH10R) LPC Interface Controller
00:1f.2 SATA controller: Intel Corporation 82801JI (ICH10 Family) SATA AHCI Controller
00:1f.3 SMBus: Intel Corporation 82801JI (ICH10 Family) SMBus Controller
03:00.0 VGA compatible controller: ATI Technologies Inc RV730XT [Radeon HD 4670]
03:00.1 Audio device: ATI Technologies Inc RV710/730
04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (rev 12)
05:00.0 SATA controller: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03)
05:00.1 IDE interface: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03)
06:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (rev 12)
08:02.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0)
qemu-dm-Win7.log
domid: 1
Watching /local/domain/0/device-model/1/logdirty/cmd
Watching /local/domain/0/device-model/1/command
char device redirected to /dev/pts/1
qemu_map_cache_init nr_buckets = 10000 size 4194304
shared page at pfn feffd
buffered io page at pfn feffb
Guest uuid = a6731e6f-477e-c9a8-ddf1-24d2559f3f38
Time offset set 0
Register xen platform.
Done register platform.
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
xs_read(/local/domain/0/device-model/1/xen_extended_power_mgmt): read error
xs_read(): vncpasswd get error. /vm/a6731e6f-477e-c9a8-ddf1-24d2559f3f38/vncpasswd.
Log-dirty: no command yet.
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
xs_read(/local/domain/1/log-throttling): read error
qemu: ignoring not-understood drive `/local/domain/1/log-throttling'
medium change watch on `/local/domain/1/log-throttling' - unknown device, ignored
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
dm-command: hot insert pass-through pci dev
register_real_device: Assigning real physical device 03:00.0 ...
pt_iomul_init: Error: pt_iomul_init can't open file /dev/xen/pci_iomul: No such file or directory: 0x3:0x0.0x0
pt_register_regions: IO region registered (size=0x10000000 base_addr=0xd000000c)
pt_register_regions: IO region registered (size=0x00010000 base_addr=0xfba20004)
pt_register_regions: IO region registered (size=0x00000100 base_addr=0x0000a001)
pt_register_regions: Expansion ROM registered (size=0x00020000 base_addr=0xfba00002)
pci_intx: intx=1
register_real_device: Real physical device 03:00.0 registered successfuly!
IRQ type = INTx
dm-command: hot insert pass-through pci dev
register_real_device: Assigning real physical device 03:00.1 ...
pt_iomul_init: Error: pt_iomul_init can't open file /dev/xen/pci_iomul: No such file or directory: 0x3:0x0.0x1
pt_register_regions: IO region registered (size=0x00004000 base_addr=0xfbafc004)
pci_intx: intx=2
register_real_device: Real physical device 03:00.1 registered successfuly!
IRQ type = INTx
dm-command: hot insert pass-through pci dev
register_real_device: Assigning real physical device 04:00.0 ...
pt_iomul_init: Error: pt_iomul_init can't open file /dev/xen/pci_iomul: No such file or directory: 0x4:0x0.0x0
pt_register_regions: IO region registered (size=0x00004000 base_addr=0xfbbfc004)
pt_register_regions: IO region registered (size=0x00000100 base_addr=0x0000b801)
pt_register_regions: Expansion ROM registered (size=0x00020000 base_addr=0xfbbc0000)
pci_intx: intx=1
register_real_device: Real physical device 04:00.0 registered successfuly!
IRQ type = INTx
pt_iomem_map: e_phys=e0000000 maddr=d0000000 type=8 len=268435456 index=0 first_map=1
pt_iomem_map: e_phys=f1040000 maddr=fba20000 type=0 len=65536 index=2 first_map=1
pt_iomem_map: e_phys=f1050000 maddr=fbafc000 type=0 len=16384 index=0 first_map=1
pt_iomem_map: e_phys=f1054000 maddr=fbbfc000 type=0 len=16384 index=0 first_map=1
pt_ioport_map: e_phys=c100 pio_base=a000 len=256 index=4 first_map=1
pt_ioport_map: e_phys=c200 pio_base=b800 len=256 index=2 first_map=1
output of xm dmesg
__ __ _ _ ___ ___ ___ _____ __ _ ____
\ \/ /___ _ __ | || | / _ \ / _ \ / _ \|___ |/ _| ___/ |___ \
\ // _ \ '_ \ | || |_| | | | | | |__| | | | / /| |_ / __| | __) |
/ \ __/ | | | |__ _| |_| | |_| |__| |_| | / /_| _| (__| |/ __/
/_/\_\___|_| |_| |_|(_)___(_)___/ \___(_)_/(_)_| \___|_|_____|
(XEN) Xen version 4.0.0 (root@) (gcc version 4.4.2 20091027 (Red Hat 4.4.2-7) (GCC) ) Tue Jun 22 17:14:29 EDT 2010
(XEN) Latest ChangeSet: unavailable
(XEN) Command line: iommu_inclusive_mapping=1 vtd=1 acpi=force apic=on
(XEN) Video information:
(XEN) VGA is text mode 80x25, font 8x16
(XEN) VBE/DDC methods: V2; EDID transfer time: 1 seconds
(XEN) Disc information:
(XEN) Found 2 MBR signatures
(XEN) Found 6 EDD information structures
(XEN) Xen-e820 RAM map:
(XEN) 0000000000000000 - 000000000009ec00 (usable)
(XEN) 000000000009ec00 - 00000000000a0000 (reserved)
(XEN) 00000000000e4000 - 0000000000100000 (reserved)
(XEN) 0000000000100000 - 00000000bf780000 (usable)
(XEN) 00000000bf780000 - 00000000bf798000 (ACPI data)
(XEN) 00000000bf798000 - 00000000bf7dc000 (ACPI NVS)
(XEN) 00000000bf7dc000 - 00000000c0000000 (reserved)
(XEN) 00000000fee00000 - 00000000fee01000 (reserved)
(XEN) 00000000ffe00000 - 0000000100000000 (reserved)
(XEN) 0000000100000000 - 0000000280000000 (usable)
(XEN) ACPI: RSDP 000FB0C0, 0024 (r2 ACPIAM)
(XEN) ACPI: XSDT BF780100, 0064 (r1 012810 XSDT1341 20100128 MSFT 97)
(XEN) ACPI: FACP BF780290, 00F4 (r3 012810 FACP1341 20100128 MSFT 97)
(XEN) ACPI: DSDT BF7804B0, D2BA (r1 A1088 A1088000 0 INTL 20060113)
(XEN) ACPI: FACS BF798000, 0040
(XEN) ACPI: APIC BF780390, 00D8 (r1 012810 APIC1341 20100128 MSFT 97)
(XEN) ACPI: MCFG BF780470, 003C (r1 012810 OEMMCFG 20100128 MSFT 97)
(XEN) ACPI: OEMB BF798040, 0072 (r1 012810 OEMB1341 20100128 MSFT 97)
(XEN) ACPI: HPET BF78F4B0, 0038 (r1 012810 OEMHPET 20100128 MSFT 97)
(XEN) ACPI: DMAR BF7980C0, 0120 (r1 AMI OEMDMAR 1 MSFT 97)
(XEN) ACPI: OSFR BF78F4F0, 00B0 (r1 012810 OEMOSFR 20100128 MSFT 97)
(XEN) ACPI: SSDT BF79A000, 0363 (r1 DpgPmm CpuPm 12 INTL 20060113)
(XEN) System RAM: 9178MB (9398292kB)
(XEN) Domain heap initialised
(XEN) Processor #0 7:10 APIC version 21
(XEN) Processor #2 7:10 APIC version 21
(XEN) Processor #4 7:10 APIC version 21
(XEN) Processor #6 7:10 APIC version 21
(XEN) Processor #1 7:10 APIC version 21
(XEN) Processor #3 7:10 APIC version 21
(XEN) Processor #5 7:10 APIC version 21
(XEN) Processor #7 7:10 APIC version 21
(XEN) IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23
(XEN) IOAPIC[1]: apic_id 9, version 32, address 0xfec8a000, GSI 24-47
(XEN) Enabling APIC mode: Flat. Using 2 I/O APICs
(XEN) [VT-D]dmar.c:504: RMRR address range not in reserved memory base = bf7dc000 end = bf7dbfff; iommu_inclusive_mapping=1 parameter may be needed.
(XEN) [VT-D]dmar.c:561: The RMRR (bf7dc000, bf7dbfff) is incorrect!
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Detected 2937.052 MHz processor.
(XEN) Initing memory sharing.
(XEN) VMX: Supported advanced features:
(XEN) - APIC MMIO access virtualisation
(XEN) - APIC TPR shadow
(XEN) - Extended Page Tables (EPT)
(XEN) - Virtual-Processor Identifiers (VPID)
(XEN) - Virtual NMI
(XEN) - MSR direct-access bitmap
(XEN) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging detected.
(XEN) Intel VT-d Snoop Control supported.
(XEN) Intel VT-d DMA Passthrough not supported.
(XEN) Intel VT-d Queued Invalidation supported.
(XEN) Intel VT-d Interrupt Remapping supported.
(XEN) I/O virtualisation enabled
(XEN) I/O virtualisation for PV guests disabled
(XEN) Total of 8 processors activated.
(XEN) ENABLING IO-APIC IRQs
(XEN) -> Using new ACK method
(XEN) TSC is reliable, synchronization unnecessary
(XEN) Platform timer is 14.318MHz HPET
(XEN) Allocated console ring of 16 KiB.
(XEN) Brought up 8 CPUs
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Xen kernel: 64-bit, lsb, compat32
(XEN) Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x1a7e000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN) Dom0 alloc.: 0000000274000000->0000000278000000 (2275778 pages to be allocated)
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN) Loaded kernel: ffffffff81000000->ffffffff81a7e000
(XEN) Init. ramdisk: ffffffff81a7e000->ffffffff821d2e00
(XEN) Phys-Mach map: ffffffff821d3000->ffffffff8334fe10
(XEN) Start info: ffffffff83350000->ffffffff833504b4
(XEN) Page tables: ffffffff83351000->ffffffff8336e000
(XEN) Boot stack: ffffffff8336e000->ffffffff8336f000
(XEN) TOTAL: ffffffff80000000->ffffffff83400000
(XEN) ENTRY ADDRESS: ffffffff81826200
(XEN) Dom0 has maximum 8 VCPUs
(XEN) Scrubbing Free RAM: .done.
(XEN) Xen trace buffers: disabled
(XEN) Std. Loglevel: Errors and warnings
(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
(XEN) Xen is relinquishing VGA console.
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen)
(XEN) Freed 168kB init memory.
system dmesg:
http://www.kopstain.com/dmesg.txt
xend.log:
http://www.kopstain.com/xend.log.txt