On Tue, 05 Jun 2012 18:55:42 +0200 Andreas Hartmann <andihartmann@xxxxxxxxxxxxxxx> wrote: > Alex Williamson wrote: > [...] > > Yep, I think the previous suggestion about reloading vfio_iommu_type1 > > with allow_unsafe_interrupts=1 will solve it. > > Yes! Works now. Success!!!!! > > Works means: Device is seen in VM. I couldn't test it up to now, because > I don't have any driver in the VM for this device. Meanwhile, I enabled the drivers in the VM for the device I passed through. Unfortunately, it doesn't work :-(. I'm getting this entry in messages at the moment, the module rt2800pci is used by hostapd: Jun 6 09:25:02 host kernel: [ 201.895812] irq 21: nobody cared (try booting with the "irqpoll" option) Jun 6 09:25:02 host kernel: [ 201.895819] Pid: 0, comm: swapper/1 Not tainted 3.4.0-next-20120529-16.1-desktop #6 Jun 6 09:25:02 host kernel: [ 201.895822] Call Trace: Jun 6 09:25:02 host kernel: [ 201.895836] <IRQ> [<ffffffff810d37a8>] __report_bad_irq+0x38/0xe0 Jun 6 09:25:02 host kernel: [ 201.895842] [<ffffffff810d3a6d>] note_interrupt+0x16d/0x220 Jun 6 09:25:02 host kernel: [ 201.895849] [<ffffffff810d12d6>] handle_irq_event_percpu+0xc6/0x270 Jun 6 09:25:02 host kernel: [ 201.895855] [<ffffffff810d14c9>] handle_irq_event+0x49/0x70 Jun 6 09:25:02 host kernel: [ 201.895860] [<ffffffff810d45d2>] handle_fasteoi_irq+0x82/0x130 Jun 6 09:25:02 host kernel: [ 201.895865] [<ffffffff81004460>] handle_irq+0x20/0x30 Jun 6 09:25:02 host kernel: [ 201.895869] [<ffffffff81004098>] do_IRQ+0x58/0xe0 Jun 6 09:25:02 host kernel: [ 201.895876] [<ffffffff815f112a>] common_interrupt+0x6a/0x6a Jun 6 09:25:02 host kernel: [ 201.895907] <EOI> [<ffffffffa0029077>] ? arch_local_irq_enable+0x8/0xd [processor] Jun 6 09:25:02 host kernel: [ 201.895915] [<ffffffff8107a37a>] ? sched_clock_idle_wakeup_event+0x1a/0x20 Jun 6 09:25:02 host kernel: [ 201.895929] [<ffffffffa002a046>] acpi_idle_enter_simple+0xd0/0x111 [processor] Jun 6 09:25:02 host kernel: [ 201.895939] [<ffffffff814915f9>] cpuidle_enter+0x19/0x20 Jun 6 09:25:02 host kernel: [ 201.895943] [<ffffffff81491d81>] cpuidle_idle_call+0xc1/0x1e0 Jun 6 09:25:02 host kernel: [ 201.895949] [<ffffffff8100bd45>] cpu_idle+0x85/0xd0 Jun 6 09:25:02 host kernel: [ 201.895955] [<ffffffff815e63d5>] start_secondary+0x8a/0x8c Jun 6 09:25:02 host kernel: [ 201.895958] handlers: Jun 6 09:25:02 host kernel: [ 201.895967] [<ffffffffa0488230>] vfio_intx_handler [vfio_pci] threaded [<ffffffffa04884e0>] vfio_intx_thread [vfio_pci] Jun 6 09:25:02 host kernel: [ 201.895969] Disabling IRQ #21 I tried with irqpoll, but this didn't help. BTW: IRQ 21 isn't a shared interrupt! Did I miss an option during kernel configuration? Just to remember: The passed through device is a WLAN-device and it's driven by rt2800pci: 06:07.0 Network controller: Ralink corp. RT2800 802.11n PCI I unbound all the devices in the same group: echo "1002 4385" > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:00:14.0 > /sys/bus/pci/devices/0000:00:14.0/driver/unbind echo 0000:00:14.0 > /sys/bus/pci/drivers/pci-stub/bind echo "1002 439c " > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:00:14.1 > /sys/bus/pci/devices/0000:00:14.1/driver/unbind echo 0000:00:14.1 > /sys/bus/pci/drivers/pci-stub/bind echo "1002 4383" > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:00:14.2 > /sys/bus/pci/devices/0000:00:14.2/driver/unbind echo 0000:00:14.2 > /sys/bus/pci/drivers/pci-stub/bind echo "1002 439d" > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:00:14.3 > /sys/bus/pci/devices/0000:00:14.3/driver/unbind echo 0000:00:14.3 > /sys/bus/pci/drivers/pci-stub/bind echo "1002 4384" > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:00:14.4 > /sys/bus/pci/devices/0000:00:14.4/driver/unbind echo 0000:00:14.4 > /sys/bus/pci/drivers/pci-stub/bind echo "1002 4399" > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:00:14.5 > /sys/bus/pci/devices/0000:00:14.5/driver/unbind echo 0000:00:14.5 > /sys/bus/pci/drivers/pci-stub/bind modprobe vfio-pci echo "1814 0601" > /sys/bus/pci/drivers/vfio-pci/new_id echo 0000:06:07.0 > /sys/bus/pci/devices/0000:06:07.0/driver/unbind echo 0000:06:07.0 > /sys/bus/pci/drivers/vfio-pci/bind The corresponding entries in messages are: Jun 6 09:23:01 host kernel: [ 81.777453] pci-stub 0000:00:14.0: claimed by stub Jun 6 09:23:01 host kernel: [ 81.777788] pci-stub 0000:00:14.0: claimed by stub Jun 6 09:23:02 host kernel: [ 81.782465] pci-stub 0000:00:14.1: claimed by stub Jun 6 09:23:02 host kernel: [ 81.801572] AMD-Vi: Event logged [IO_PAGE_FAULT device=00:14.0 domain=0x0000 address=0x000000fdf9103300 flags=0x0600] Jun 6 09:23:02 host kernel: [ 81.950388] pci-stub 0000:00:14.2: claimed by stub Jun 6 09:23:02 host kernel: [ 81.950505] pci-stub 0000:00:14.3: claimed by stub Jun 6 09:23:02 host kernel: [ 81.950723] pci-stub 0000:00:14.3: claimed by stub Jun 6 09:23:02 host kernel: [ 81.950828] pci-stub 0000:00:14.4: claimed by stub Jun 6 09:23:02 host kernel: [ 81.951031] pci-stub 0000:00:14.4: claimed by stub Jun 6 09:23:02 host kernel: [ 81.951280] ohci_hcd 0000:00:14.5: remove, state 4 Jun 6 09:23:02 host kernel: [ 81.951293] usb usb6: USB disconnect, device number 1 Jun 6 09:23:02 host kernel: [ 81.951840] ohci_hcd 0000:00:14.5: USB bus 6 deregistered Jun 6 09:23:02 host kernel: [ 81.951993] pci-stub 0000:00:14.5: claimed by stub Jun 6 09:23:02 host kernel: [ 81.957543] VFIO - User Level meta-driver version: 0.3 Jun 6 09:23:02 host kernel: [ 81.960441] vfio_iommu_group_notifier: Device 0000:06:07.0, group 9 bound to driver vfio-pci Jun 6 09:23:02 host kernel: [ 81.960617] vfio_iommu_group_notifier: Device 0000:06:07.0, group 9 unbinding from driver vfio-pci Jun 6 09:23:02 host kernel: [ 81.961002] vfio_iommu_group_notifier: Device 0000:06:07.0, group 9 bound to driver vfio-pci The result with lspci -vs14 is: 00:14.0 SMBus: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller (rev 42) Flags: 66MHz, medium devsel Kernel driver in use: pci-stub 00:14.1 IDE interface: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 IDE Controller (rev 40) (prog-if 8a [Master SecP PriP]) Subsystem: Giga-byte Technology Device 5002 Flags: 66MHz, medium devsel, IRQ 17 I/O ports at 01f0 [size=8] I/O ports at 03f4 [size=1] I/O ports at 0170 [size=8] I/O ports at 0374 [size=1] I/O ports at fa00 [size=16] Kernel driver in use: pci-stub 00:14.2 Audio device: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) (rev 40) Subsystem: Giga-byte Technology Device a132 Flags: slow devsel, IRQ 16 Memory at fdff4000 (64-bit, non-prefetchable) [size=16K] Capabilities: [50] Power Management version 2 Kernel driver in use: pci-stub 00:14.3 ISA bridge: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller (rev 40) Subsystem: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller Flags: bus master, 66MHz, medium devsel, latency 0 Kernel driver in use: pci-stub 00:14.4 PCI bridge: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge (rev 40) (prog-if 01 [Subtractive decode]) Flags: bus master, VGA palette snoop, 66MHz, medium devsel, latency 64 Bus: primary=00, secondary=06, subordinate=06, sec-latency=64 I/O behind bridge: 00009000-00009fff Memory behind bridge: fd800000-fd8fffff Prefetchable memory behind bridge: fd700000-fd7fffff Kernel driver in use: pci-stub 00:14.5 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller (prog-if 10 [OHCI]) Subsystem: Giga-byte Technology Device 5004 Flags: 66MHz, medium devsel, IRQ 18 Memory at fdffa000 (32-bit, non-prefetchable) [size=4K] Kernel driver in use: pci-stub lspci -vs7 06:07.0 Network controller: Ralink corp. RT2800 802.11n PCI Subsystem: Linksys Device 0067 Flags: bus master, slow devsel, latency 32, IRQ 5 Memory at fd8e0000 (32-bit, non-prefetchable) [size=64K] Capabilities: [40] Power Management version 3 Kernel driver in use: vfio-pci On starting the VM, the following entries came up in messages: Jun 6 09:23:51 host kernel: [ 131.397055] kvm: 8175: cpu0 unhandled rdmsr: 0xc0010001 The VM is started as root with this command: /usr/local/bin/qemu-system-x86_64 \ -enable-kvm \ -m 1024 \ -rtc base=utc \ -drive file=/my.hd,if=none,id=drive-virtio-disk0,format=qcow2,cache=writeback \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 \ -netdev tap,ifname=tap5,script=no,id=hostnet0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=12:34:56:78:90:12,bus=pci.0,addr=0x3 \ -device vfio-pci,host=06:07.0,id=hostdev0,bus=pci.0,addr=0x5 qemu-system-x86_64 prints out the following on startup: Warning, device 0000:06:07.0 does not support reset (-> only the first time the VM is started) sometimes: qemu-system-x86_64: vfio_dma_map(0x7fb10a848170, 0x00000000000cc000, 0x4000, 0x7fb0bfacc000) = -16 (Device or resource busy) qemu-system-x86_64: vfio_dma_map(0x7fb10a848170, 0x00000000000cc000, 0x4000, 0x7fb0bfacc000) = -16 (Device or resource busy) Do you have any idea what's going wrong here? Thanks, kind regards, Andreas -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html