From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Wolf Subject: Re: vga passthrough // questions about pci passthrough Date: Wed, 18 Jul 2012 14:37:07 +0200 Message-ID: <5006ADF3.9030304@adiumentum.com> References: <50064D87.2090809@adiumentum.com> <50068134.4060306@siemens.com> <5006A72D.3080408@adiumentum.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Jan Kiszka Return-path: Received: from mail.andre-duewel.de ([178.63.55.43]:35930 "EHLO mail.andre-duewel.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754198Ab2GRMhQ (ORCPT ); Wed, 18 Jul 2012 08:37:16 -0400 In-Reply-To: <5006A72D.3080408@adiumentum.com> Sender: kvm-owner@vger.kernel.org List-ID: soundcard logs added On 18.07.2012 14:08, Martin Wolf wrote: > On 18.07.2012 11:26, Jan Kiszka wrote: >> On 2012-07-18 07:45, Martin Wolf wrote: >>> Hello, >>> >>> i was able to passthrough an AMD 7870 videocard to my win7 guest >>> machine. >> Would you add it to http://www.linux-kvm.org/page/VGA_device_assignment? > sure, i will prepare something >> >>> my host is ubuntu 12.04 with stock kernel. >>> my system contains: >>> dq67sw q67 mainboard >>> i5-2400s cpu >>> sapphire 7870 amd videocard >>> xonar d2x (problems to passthrough) >>> >>> for full functionality i just needed two options >>> >>> - kernel : iommu=on >>> - kvm module: ignore_msrs=1 >>> (if i would not set it the guest os would crash with a bluescreen) >> Can you report (=> kernel log) which MSRs are unknown to KVM? > Jul 18 14:03:33 kvm-xen kernel: [ 437.309931] kvm: 3347: cpu1 > kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop > Jul 18 14:03:33 kvm-xen kernel: [ 437.522724] kvm: 3347: cpu1 > kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop > Jul 18 14:03:33 kvm-xen kernel: [ 437.522733] kvm: 3347: cpu1 ignored > rdmsr: 0x1c9 > Jul 18 14:03:33 kvm-xen kernel: [ 437.522736] kvm: 3347: cpu1 ignored > rdmsr: 0x60 > Jul 18 14:03:33 kvm-xen kernel: [ 437.522752] kvm: 3347: cpu1 ignored > rdmsr: 0x1c9 > Jul 18 14:03:33 kvm-xen kernel: [ 437.522755] kvm: 3347: cpu1 ignored > rdmsr: 0x60 > Jul 18 14:03:33 kvm-xen kernel: [ 437.522821] kvm: 3347: cpu1 ignored > rdmsr: 0x1c9 > Jul 18 14:03:33 kvm-xen kernel: [ 437.522823] kvm: 3347: cpu1 ignored > rdmsr: 0x60 > Jul 18 14:03:33 kvm-xen kernel: [ 437.522834] kvm: 3347: cpu1 > kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop > Jul 18 14:03:33 kvm-xen kernel: [ 437.522840] kvm: 3347: cpu1 ignored > rdmsr: 0x1c9 > Jul 18 14:03:33 kvm-xen kernel: [ 437.522842] kvm: 3347: cpu1 ignored > rdmsr: 0x60 > Jul 18 14:03:33 kvm-xen kernel: [ 437.522865] kvm: 3347: cpu1 ignored > rdmsr: 0x1c9 > Jul 18 14:03:33 kvm-xen kernel: [ 437.522867] kvm: 3347: cpu1 ignored > rdmsr: 0x60 > Jul 18 14:03:33 kvm-xen kernel: [ 437.522921] kvm: 3347: cpu1 > kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop > Jul 18 14:03:33 kvm-xen kernel: [ 437.523005] kvm: 3347: cpu1 > kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop > Jul 18 14:03:33 kvm-xen kernel: [ 437.523081] kvm: 3347: cpu1 > kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop > Jul 18 14:03:33 kvm-xen kernel: [ 437.523175] kvm: 3347: cpu1 > kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop > Jul 18 14:03:33 kvm-xen kernel: [ 437.523248] kvm: 3347: cpu1 > kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop > Jul 18 14:03:33 kvm-xen kernel: [ 437.523333] kvm: 3347: cpu1 > kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop > Jul 18 14:03:33 kvm-xen kernel: [ 437.523430] kvm: 3347: cpu1 > kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop > > i hope thats the info you need, i booted it with ignore_msrs=1 since > if i dont do that i get less output. > (do you need it without the "option"?) > >> >>> the unigine benchmark ran flawlessly >>> also the benchmark included in windows gave my videocard >>> similar values (7.7) comparable with my native win7 (7.9) >>> >>> >>> now to my questions... >>> 1. is it possible to reset the videocard properly to be able to >>> reboot the vm? >> Which versions of kernel and qemu-kvm are involved via your distro? Can >> you retry with latest Linux (3.5-rcX) / lastest qemu-kvm? Maybe >> something got fixed meanwhile. >> >> In general, there are many adapters that require special procedures to >> perform resets. This one may fall into that category as well. > i will do a test today. >>> 2. the xonar d2x is a very nice audio card, it would be very handy >>> to be able to use it in the vm. in my oppinion the card is a >>> d2 with a pci-e to pci bridge. >>> i tried to passthrough the card alone and with the pci-bridge >>> that was shown though lspci, but i had no success. >>> maybe you guys here have an idea on that topic? >> Any further details about the error? Does the adapter work with a Linux >> guest or provide more information that way? >> >> Jan 02:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: Kernel driver in use: pci-stub Kernel modules: shpchp 03:04.0 Multimedia audio controller: C-Media Electronics Inc CMI8788 [Oxygen HD Audio] Subsystem: ASUSTeK Computer Inc. Virtuoso 200 (Xonar D2X) Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- Kernel driver in use: pci-stub Kernel modules: snd-virtuoso /usr/bin/qemu-system-x86_64 -cpu host -m 8192 -boot c -hda /var/lib/libvirt/images/Win7.img -device pci-assign,host=02:00.0 -device pci-assign,host=03:04.0 Device assignment only supports endpoint assignment, device type 7 qemu-system-x86_64: -device pci-assign,host=02:00.0: Device 'pci-assign' could not be initialized root@kvm-xen:~# /usr/bin/qemu-system-x86_64 -cpu host -m 8192 -boot c -hda /var/lib/libvirt/images/Win7.img -device pci-assign,host=03:04.0Failed to assign irq for "(null)": Input/output error Perhaps you are assigning a device that shares an IRQ with another device? qemu-system-x86_64: -device pci-assign,host=03:04.0: Device 'pci-assign' could not be initialized these kernel log lines showed up after the the second qemu-system line Jul 18 14:32:08 kvm-xen kernel: [ 2149.180353] assign device 0:3:4.0 Jul 18 14:32:08 kvm-xen kernel: [ 2149.180575] deassign device 0:3:4.0 Jul 18 14:32:08 kvm-xen kernel: [ 2149.209408] pci-stub 0000:03:04.0: restoring config space at offset 0x1 (was 0x2100000, writing 0x2100001) Jul 18 14:32:08 kvm-xen kernel: [ 2149.209551] pci-stub 0000:03:04.0: PCI INT A disabled >> > > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html