PCI passthrough on Sony Vaio F11 laptop...
Hi all,
I have KVM running successfully on opensuse 11.3 (64bit) with a opensuse 11.1 guest. I am using hardware virtualization and want to experiment with PCI passthrough with the (wired) network card on my laptop because I want to repeat similar steps later on a server (with a TV card). The main specs of the laptop are Intel Core I7 Q720 1.6GHz with 8MB of memory.
I have followed the instructions on http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization/chap-Virtualization-PCI_passthrough.html. Everything is successful until I start the domain.
In that case I get the following messages in the logs:
Nov 13 00:23:45 pelican kernel: [ 3302.793043] pci-stub 0000:04:00.0: claimed by stub Nov 13 00:23:45 pelican kernel: [ 3302.793197] pci-stub 0000:04:00.0: claimed by stub Nov 13 00:23:45 pelican kernel: [ 3302.931578] kvm_vm_ioctl_deassign_device: device hasn't been assigned before, so cannot be deassigned Nov 13 00:23:48 pelican libvirtd: 00:23:48.136: error : qemuMonitorOpenUnix:269 : monitor socket did not show up.: Connection refused Nov 13 00:23:48 pelican libvirtd: 00:23:48.136: error : qemuConnectMonitor:1192 : Failed to connect monitor for other
To be absolutely certa CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
0: 371 0 0 203026 0
0 0 0 IO-APIC-edge timer
1: 12870 0 0 39 173
0 0 0 IO-APIC-edge i8042
7: 259 0 0 0 0
0 0 0 IO-APIC-edge
8: 0 0 0 4 0
0 0 0 IO-APIC-edge rtc0 9: 2823 0 0 141 0 0 0 0 IO-APIC-fasteoi acpi
12: 15 0 0 155 0
0 0 0 IO-APIC-edge i8042
16: 0 298817 0 0 0
0 634 0 IO-APIC-fasteoi ehci_hcd:usb1, ohci1394, hda_intel, nvidia
17: 0 0 0 0 0
0 0 0 IO-APIC-fasteoi mmc0
19: 0 0 0 0 0
0 0 0 IO-APIC-fasteoi mmc1
23: 0 0 99 0 0
95116 0 0 IO-APIC-fasteoi ehci_hcd:usb2
24: 687633 0 0 0 0
0 0 0 HPET_MSI-edge hpet2
25: 0 637204 0 0 0
0 0 0 HPET_MSI-edge hpet3 26: 0 0 199161 0 0 0 0 0 HPET_MSI-edge hpet4 27: 0 0 0 134606 0 0 0 0 HPET_MSI-edge hpet5 28: 0 0 0 0 237717 0 0 0 HPET_MSI-edge hpet6 34: 58784 0 0 7780 0
0 0 0 PCI-MSI-edge ahci
36: 939 0 0 0 138686
0 0 0 PCI-MSI-edge iwlagn
37: 0 0 0 0 0
210 0 0 PCI-MSI-edge hda_intel
NMI: 0 0 0 0 0 0 0 0 Non-maskable interrupts LOC: 1535 1438 1347 1257 1168 396803 120435 79080 Local timer interrupts SPU: 0 0 0 0 0 0 0 0 Spurious interrupts PMI: 0 0 0 0 0 0 0 0 Performance monitoring interrupts PND: 0 0 0 0 0 0 0 0 Performance pending work RES: 4164 4332 2050 1413 3244 2790 1630 1200 Rescheduling interrupts CAL: 1394 1395 1279 1195 1431 1430 1429 575 Function call interrupts TLB: 5007 2623 3751 3045 5617 3902 4486 4115 TLB shootdowns TRM: 0 0 0 0 0 0 0 0 Thermal event interrupts THR: 0 0 0 0 0 0 0 0 Threshold APIC interrupts MCE: 0 0 0 0 0 0 0 0 Machine check exceptions MCP: 14 14 14 14 14 14 14 14 Machine check polls ERR: 259 MIS: 0
in I also removed the driver for the network card using 'rmmod sky2'.
I have also specified the intel_iommu=on option in the command line (cat /proc/cmdline gives: root=/dev/system/root resume=/dev/system/swap splash=silent quiet nomodeset intel_iommu=on vga=0x314). Also, the output of 'dmesg | grep -i iommu' gives:
[ 0.000000] Command line: root=/dev/system/root resume=/dev/system/swap splash=silent quiet nomodeset intel_iommu=on vga=0x314 [ 0.000000] Kernel command line: root=/dev/system/root resume=/dev/system/swap splash=silent quiet nomodeset intel_iommu=on vga=0x314 [ 0.000000] Intel-IOMMU: enabled
So it seems that IOMMU is available.
I read somewhere that there could be a problem in the interrupts and some users had success by disabling them but I really don't know how to debug this. The output of 'cat /proc/interrupts' is as follows:
CPU0 CPU1 CPU2 CPU3 CPU4
CPU5 CPU6 CPU7
0: 371 0 0 203026 0
0 0 0 IO-APIC-edge timer
1: 12870 0 0 39 173
0 0 0 IO-APIC-edge i8042
7: 259 0 0 0 0
0 0 0 IO-APIC-edge
8: 0 0 0 4 0
0 0 0 IO-APIC-edge rtc0 9: 2823 0 0 141 0 0 0 0 IO-APIC-fasteoi acpi
12: 15 0 0 155 0
0 0 0 IO-APIC-edge i8042
16: 0 298817 0 0 0
0 634 0 IO-APIC-fasteoi ehci_hcd:usb1, ohci1394, hda_intel, nvidia
17: 0 0 0 0 0
0 0 0 IO-APIC-fasteoi mmc0
19: 0 0 0 0 0
0 0 0 IO-APIC-fasteoi mmc1
23: 0 0 99 0 0
95116 0 0 IO-APIC-fasteoi ehci_hcd:usb2
24: 687633 0 0 0 0
0 0 0 HPET_MSI-edge hpet2
25: 0 637204 0 0 0
0 0 0 HPET_MSI-edge hpet3 26: 0 0 199161 0 0 0 0 0 HPET_MSI-edge hpet4 27: 0 0 0 134606 0 0 0 0 HPET_MSI-edge hpet5 28: 0 0 0 0 237717 0 0 0 HPET_MSI-edge hpet6 34: 58784 0 0 7780 0
0 0 0 PCI-MSI-edge ahci
36: 939 0 0 0 138686
0 0 0 PCI-MSI-edge iwlagn
37: 0 0 0 0 0
210 0 0 PCI-MSI-edge hda_intel
NMI: 0 0 0 0 0 0 0 0 Non-maskable interrupts LOC: 1535 1438 1347 1257 1168 396803 120435 79080 Local timer interrupts SPU: 0 0 0 0 0 0 0 0 Spurious interrupts PMI: 0 0 0 0 0 0 0 0 Performance monitoring interrupts PND: 0 0 0 0 0 0 0 0 Performance pending work RES: 4164 4332 2050 1413 3244 2790 1630 1200 Rescheduling interrupts CAL: 1394 1395 1279 1195 1431 1430 1429 575 Function call interrupts TLB: 5007 2623 3751 3045 5617 3902 4486 4115 TLB shootdowns TRM: 0 0 0 0 0 0 0 0 Thermal event interrupts THR: 0 0 0 0 0 0 0 0 Threshold APIC interrupts MCE: 0 0 0 0 0 0 0 0 Machine check exceptions MCP: 14 14 14 14 14 14 14 14 Machine check polls ERR: 259 MIS: 0
Do you have any suggestions on how to solve/debug this problem?
Cheers
Erik
Signature · 4 lines
Nonsense and other useful things: http://brakkee.org MountainHoppers: http://mountainhoppers.nl Track Detective: http://trackdetective.com Twitter: http://twitter.com/ErikBrakkee
Quoted 108 lines · Erik Brakkee
Hi all,
I have KVM running successfully on opensuse 11.3 (64bit) with a opensuse 11.1 guest. I am using hardware virtualization and want to experiment with PCI passthrough with the (wired) network card on my laptop because I want to repeat similar steps later on a server (with a TV card). The main specs of the laptop are Intel Core I7 Q720 1.6GHz with 8MB of memory.
I have followed the instructions on
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization/chap-Virtualization-PCI_passthrough.html.
Everything is successful until I start the domain.In that case I get the following messages in the logs:
Nov 13 00:23:45 pelican kernel: [ 3302.793043] pci-stub 0000:04:00.0: claimed by stub Nov 13 00:23:45 pelican kernel: [ 3302.793197] pci-stub 0000:04:00.0: claimed by stub Nov 13 00:23:45 pelican kernel: [ 3302.931578] kvm_vm_ioctl_deassign_device: device hasn't been assigned before, so cannot be deassigned Nov 13 00:23:48 pelican libvirtd: 00:23:48.136: error : qemuMonitorOpenUnix:269 : monitor socket did not show up.: Connection refused Nov 13 00:23:48 pelican libvirtd: 00:23:48.136: error :qemuConnectMonitor:1192 : Failed to connect monitor for other
To be absolutely certa CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU70: 371 0 0 203026 0
0 0 0 IO-APIC-edge timer
1: 12870 0 0 39 173
0 0 0 IO-APIC-edge i8042
7: 259 0 0 0 0
0 0 0 IO-APIC-edge
8: 0 0 0 4 00 0 0 IO-APIC-edge rtc0 9: 2823 0 0 141 0 0 0 0 IO-APIC-fasteoi acpi12: 15 0 0 155 0
0 0 0 IO-APIC-edge i8042
16: 0 298817 0 0 0
0 634 0 IO-APIC-fasteoi ehci_hcd:usb1, ohci1394,hda_intel, nvidia
17: 0 0 0 0 0
0 0 0 IO-APIC-fasteoi mmc0
19: 0 0 0 0 0
0 0 0 IO-APIC-fasteoi mmc1
23: 0 0 99 0 0
95116 0 0 IO-APIC-fasteoi ehci_hcd:usb2
24: 687633 0 0 0 0
0 0 0 HPET_MSI-edge hpet2
25: 0 637204 0 0 00 0 0 HPET_MSI-edge hpet3 26: 0 0 199161 0 0 0 0 0 HPET_MSI-edge hpet4 27: 0 0 0 134606 0 0 0 0 HPET_MSI-edge hpet5 28: 0 0 0 0 237717 0 0 0 HPET_MSI-edge hpet6 34: 58784 0 0 7780 00 0 0 PCI-MSI-edge ahci
36: 939 0 0 0 138686
0 0 0 PCI-MSI-edge iwlagn
37: 0 0 0 0 0
210 0 0 PCI-MSI-edgehda_intel
NMI: 0 0 0 0 00 0 0 Non-maskable interrupts LOC: 1535 1438 1347 1257 1168 396803 120435 79080 Local timer interruptsSPU: 0 0 0 0 0
0 0 0 Spurious interrupts
PMI: 0 0 0 0 0
0 0 0 Performance monitoring interrupts
PND: 0 0 0 0 00 0 0 Performance pending work RES: 4164 4332 2050 1413 3244 2790 1630 1200 Rescheduling interrupts CAL: 1394 1395 1279 1195 1431 1430 1429 575 Function call interrupts TLB: 5007 2623 3751 3045 5617 3902 4486 4115 TLB shootdownsTRM: 0 0 0 0 0
0 0 0 Thermal event interrupts
THR: 0 0 0 0 0
0 0 0 Threshold APIC interrupts
MCE: 0 0 0 0 0
0 0 0 Machine check exceptions
MCP: 14 14 14 14 14
14 14 14 Machine check pollsERR: 259 MIS: 0in I also removed the driver for the network card using 'rmmod sky2'.
I have also specified the intel_iommu=on option in the command line (cat
/proc/cmdlinegives: root=/dev/system/root resume=/dev/system/swap splash=silent quiet nomodeset intel_iommu=on vga=0x314). Also, the output of 'dmesg | grep -i iommu' gives:[ 0.000000] Command line: root=/dev/system/root resume=/dev/system/swap splash=silent quiet nomodeset intel_iommu=on vga=0x314 [ 0.000000] Kernel command line: root=/dev/system/root resume=/dev/system/swap splash=silent quiet nomodeset intel_iommu=on vga=0x314 [ 0.000000] Intel-IOMMU: enabled
Quoted 6 lines
So it seems that IOMMU is available.
I read somewhere that there could be a problem in the interrupts and some users had success by disabling them but I really don't know how to debug this.
The output of 'cat/proc/interrupts' is as follows:
What IRQ is the sky2 using when assigned to the host? Is it really a shared IRQ (I bet not as it should be using MSI)?
Also, check in the libvirt logs what qemu-kvm reports on the console.
Jan
Quoted 9 lines · Jan Kiszka
What IRQ is the sky2 using when assigned to the host? Is it really a shared IRQ (I bet not as it should be using MSI)?
Also, check in the libvirt logs what qemu-kvm reports on the console.
Jan
The output from 'cat /proc/interrupts' directly after boot is in the sky2.interrupts.
The relevant line from the output is
35: 0 0 0 0 1
0 0 0 PCI-MSI-edge sky2@pci:0000:04:00.0
So it looks like it is using MSI (although I don't have clue what that means).
The log file for my domain (the name is "other") is attached in "other.log" In the log file I see:
No IOMMU found. Unable to assign device "hostdev0"
Does this mean that I don't have IOMMU available on my laptop? The output from 'dmesg | grep -i IOMMU' showed that Intel-IOMMI was enabled, but perhaps that means only that the IOMMU option is activated but not that it is really functioning.
It must be either (1) Intel VT-d available on my laptop and there is some configuration/software problem or (2) The output from dmesg is misleading. What do you think?
Cheers
Erik
Signature · 4 lines
Nonsense and other useful things: http://brakkee.org MountainHoppers: http://mountainhoppers.nl Track Detective: http://trackdetective.com Twitter: http://twitter.com/ErikBrakkee
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
0: 879 0 0 145987 0 0 0 0 IO-APIC-edge timer 1: 178 0 0 37 0 0 0 0 IO-APIC-edge i8042 8: 0 0 0 15 0 0 0 0 IO-APIC-edge rtc0 9: 1702 0 0 133 0 0 0 0 IO-APIC-fasteoi acpi 12: 0 0 0 149 0 0 0 0 IO-APIC-edge i8042 16: 0 20448 0 0 0 0 429 0 IO-APIC-fasteoi ehci_hcd:usb1, ohci1394, hda_intel, nvidia 17: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi mmc0 19: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi mmc1 23: 0 0 65 0 0 2113 0 0 IO-APIC-fasteoi ehci_hcd:usb2 24: 140835 0 0 0 0 0 0 0 HPET_MSI-edge hpet2 25: 0 116293 0 0 0 0 0 0 HPET_MSI-edge hpet3 26: 0 0 47034 0 0 0 0 0 HPET_MSI-edge hpet4 27: 0 0 0 109561 0 0 0 0 HPET_MSI-edge hpet5 28: 0 0 0 0 32441 0 0 0 HPET_MSI-edge hpet6 34: 4355 0 0 9520 0 0 0 0 PCI-MSI-edge ahci 35: 0 0 0 0 1 0 0 0 PCI-MSI-edge sky2@pci:0000:04:00.0 36: 59335 0 0 0 5302 0 0 0 PCI-MSI-edge iwlagn 37: 0 0 0 0 0 207 0 0 PCI-MSI-edge hda_intel NMI: 0 0 0 0 0 0 0 0 Non-maskable interrupts LOC: 1613 1517 1427 1337 1247 37604 110821 35565 Local timer interrupts SPU: 0 0 0 0 0 0 0 0 Spurious interrupts PMI: 0 0 0 0 0 0 0 0 Performance monitoring interrupts PND: 0 0 0 0 0 0 0 0 Performance pending work RES: 463 661 442 372 542 520 535 507 Rescheduling interrupts CAL: 1361 489 1329 1260 1353 1340 1240 1322 Function call interrupts TLB: 281 265 281 381 800 810 779 553 TLB shootdowns TRM: 0 0 0 0 0 0 0 0 Thermal event interrupts THR: 0 0 0 0 0 0 0 0 Threshold APIC interrupts MCE: 0 0 0 0 0 0 0 0 Machine check exceptions MCP: 9 9 9 9 9 9 9 9 Machine check polls ERR: 0 MIS: 0
LC_ALL=C LD_LIBRARY_PATH=:/usr/java/java3d/lib/i386:/opt/gnome/lib PATH=/usr/java/ant/bin:/usr/java/oxygen:/usr/java/bin:/usr/java/aspectj/bin:/usr/java/DbVisualizer-4.1.1:/usr/java/hsqldb/bin:/usr/java/jdk/bin:/sbin:/usr/sbin:/usr/local/sbin:/opt/kde3/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/lib/qt3/bin:/opt/real/RealPlayer:/usr/java/maven/bin:/usr/java/maven1/bin:/usr/java/apache-forrest/bin:/usr/java/argouml:/usr/java/jxplorer:/usr/java/ant/bin:/usr/java/oxygen:/usr/java/bin:/usr/java/aspectj/bin:/usr/java/DbVisualizer-4.1.1:/usr/java/hsqldb/bin:/usr/java/jdk/bin:/sbin:/usr/sbin:/usr/local/sbin:/opt/kde3/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/lib/qt3/bin:/opt/real/RealPlayer:/usr/java/maven/bin:/usr/java/maven1/bin:/usr/java/apache-forrest/bin:/usr/java/argouml:/usr/java/wtk/bin:/usr/java/squirrelsql:/usr/java/pax-runner/bin:/opt/gnome/bin HOME=/root USER=root LOGNAME=root QEMU_AUDIO_DRV=none /usr/bin/qemu-kvm -S -M pc-0.12 -enable-kvm -m 512 -smp 2,sockets=2,cores=1,threads=1 -name other -uuid 9f12fb27-9cc4-ae6e-733e-980a75101655 -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/other.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot dc -drive file=/dev/system/linux32,if=none,id=drive-ide0-0-0,boot=on,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive file=/opensuse/downloads/openSUSE-11.3-DVD-i586.iso/openSUSE-11.3-DVD-i586.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -usb -vnc 127.0.0.1:0 -vga cirrus -device pci-assign,host=04:00.0,id=hostdev0,bus=pci.0,addr=0x4 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 No IOMMU found. Unable to assign device "hostdev0"
Failed to deassign device "hostdev0" : Invalid argument
Error initializing device pci-assign
Quoted 13 lines · Erik Brakkee
Quoted 9 lines · Jan Kiszka
What IRQ is the sky2 using when assigned to the host? Is it really a shared IRQ (I bet not as it should be using MSI)?
Also, check in the libvirt logs what qemu-kvm reports on the console.
Jan
The output from 'cat
/proc/interrupts' directly after boot is in the sky2.interrupts.
Quoted 6 lines
The relevant line from the output is
35: 0 0 0 0 1
0 0 0 PCI-MSI-edge sky2@pci:0000:04:00.0So it looks like it is using MSI (although I don't have clue what that means).
MSIs are interrupts that, among other things, are not shared. So you can't run into conflicts.
Quoted 6 lines
The log file for my domain (the name is "other") is attached in "other.log" In the log file I see:
No IOMMU found. Unable to assign device "hostdev0"
Quoted 8 lines
Does this mean that I don't have IOMMU available on my laptop? The output from 'dmesg | grep -i IOMMU' showed that Intel-IOMMI was enabled, but perhaps that means only that the IOMMU option is activated but not that it is really functioning.
It must be either (1) Intel VT-d available on my laptop and there is some configuration/software problem or (2) The output from dmesg is misleading. What do you think?
Strange, should work. I would suggest to post your full kernel log, maybe there is some enlightening message hidden.
I don't think it is a problem of your kernel version, but I'm able to pass through devices on OpenSUSE 11.3 with kernel-desktop-2.6.36-90.1.x86_64 from their kernel repository.
Jan
Quoted 11 lines · Jan Kiszka
Strange, should work. I would suggest to post your full kernel log, maybe there is some enlightening message hidden.
I don't think it is a problem of your kernel version, but I'm able to pass through devices on OpenSUSE 11.3 with kernel-desktop-2.6.36-90.1.x86_64 from their kernel repository.
Jan
Exactly what server logs do you need. Is this only /var/log/messages or more? And do I need to set specific options there? Any other log files that you need?
Before, generating these logs I will upgrade to a later kernel. As far as I can tell, that will still be a 2.6.34 kernel. Perhaps I should try the 2.6.36 kernel as well. Do you have the URL for the kernel repository I should use? (cannot find an obvious kernel repository in YAST2).
Cheers
Erik
Signature · 4 lines
Nonsense and other useful things: http://brakkee.org MountainHoppers: http://mountainhoppers.nl Track Detective: http://trackdetective.com Twitter: http://twitter.com/ErikBrakkee
Quoted 9 lines · Erik Brakkee
Quoted 8 lines · Jan Kiszka
Strange, should work. I would suggest to post your full kernel log, maybe there is some enlightening message hidden.
I don't think it is a problem of your kernel version, but I'm able to pass through devices on OpenSUSE 11.3 with kernel-desktop-2.6.36-90.1.x86_64 from their kernel repository.
Quoted 6 lines
Quoted 3 lines
Jan
Exactly what server logs do you need. Is this only
/var/log/messagesor more? And do I need to set specific options there?
Any other log files that you need?
dmesg > log-file
Quoted 5 lines
Before, generating these logs I will upgrade to a later kernel. As far as I can tell, that will still be a 2.6.34 kernel. Perhaps I should try the 2.6.36 kernel as well. Do you have the URL for the kernel repository I should use? (cannot find an obvious kernel repository in YAST2).
http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_11.3
Jan
Quoted 30 lines · Erik Brakkee
Quoted 29 lines · Jan Kiszka
Quoted 9 lines · Erik Brakkee
Quoted 7 lines · Jan Kiszka
Strange, should work. I would suggest to post your full kernel log, maybe there is some enlightening message hidden.
I don't think it is a problem of your kernel version, but I'm able to pass through devices on OpenSUSE 11.3 with kernel-desktop-2.6.36-90.1.x86_64 from their kernel repository.
Quoted 8 lines
Quoted 4 lines
Jan
Exactly what server logs do you need. Is this only
/var/log/messagesor more? And do I need to set specific options there?
Any other log files that you need?dmesg> log-file
Quoted 5 lines
Before, generating these logs I will upgrade to a later kernel. As far as I can tell, that will still be a 2.6.34 kernel. Perhaps I should try the 2.6.36 kernel as well. Do you have the URL for the kernel repository I should use? (cannot find an obvious kernel repository in YAST2).
http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_11.3
Quoted 7 lines
Quoted 3 lines
Jan
I have attached the logs of
/var/log/messages, dmesg, and qemu log (other.log), as well as the kernel config parameters (/proc/config.gz). I did the test with two kernels (see the tar.gz file): one kernel a 2.6.34 and the other a 2.6.36 kernel.
Comparing the dmesg with my kernel log, I'm missing messages like
[ 0.023960] DMAR: Host address width 36 [ 0.023962] DMAR: DRHD base: 0x000000fed90000 flags: 0x0 [ 0.023968] IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c9008020e30272 ecap 1000 [ 0.023970] DMAR: DRHD base: 0x000000fed93000 flags: 0x1 [ 0.023974] IOMMU 1: reg_base_addr fed93000 ver 1:0 cap c9008020630272 ecap 1000 [ 0.023976] DMAR: RMRR base: 0x000000bf6e9000 end: 0x000000bf6fffff [ 0.023978] DMAR: No ATSR found
about the Intel DMAR (IOMMU) setup.
Are you sure that you have an Intel chipset with the required features? And have you checked that "VT-d" is enabled in the BIOS (or however it may be called there)?
Jan
Quoted 59 lines · Jan Kiszka
Quoted 37 lines · Erik Brakkee
Quoted 35 lines · Jan Kiszka
Quoted 10 lines · Erik Brakkee
Quoted 7 lines · Jan Kiszka
Strange, should work. I would suggest to post your full kernel log, maybe there is some enlightening message hidden.
I don't think it is a problem of your kernel version, but I'm able to pass through devices on OpenSUSE 11.3 with kernel-desktop-2.6.36-90.1.x86_64 from their kernel repository.
Quoted 10 lines
Quoted 5 lines
Jan
Exactly what server logs do you need. Is this only
/var/log/messagesor more? And do I need to set specific options there?
Any other log files that you need?dmesg> log-file
Quoted 6 lines
Before, generating these logs I will upgrade to a later kernel. As far as I can tell, that will still be a 2.6.34 kernel. Perhaps I should try the 2.6.36 kernel as well. Do you have the URL for the kernel repository I should use? (cannot find an obvious kernel repository in YAST2).
http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_11.3
Quoted 9 lines
Quoted 4 lines
Jan
I have attached the logs of
/var/log/messages, dmesg, and qemu log (other.log), as well as the kernel config parameters (/proc/config.gz). I did the test with two kernels (see the tar.gz file): one kernel a 2.6.34 and the other a 2.6.36 kernel.Comparing the dmesg with my kernel log, I'm missing messages like
[ 0.023960] DMAR: Host address width 36 [ 0.023962] DMAR: DRHD base: 0x000000fed90000 flags: 0x0 [ 0.023968] IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c9008020e30272 ecap 1000 [ 0.023970] DMAR: DRHD base: 0x000000fed93000 flags: 0x1 [ 0.023974] IOMMU 1: reg_base_addr fed93000 ver 1:0 cap c9008020630272 ecap 1000 [ 0.023976] DMAR: RMRR base: 0x000000bf6e9000 end: 0x000000bf6fffff [ 0.023978] DMAR: No ATSR found
Quoted 7 lines
about the Intel DMAR (IOMMU) setup.
Are you sure that you have an Intel chipset with the required features? And have you checked that "VT-d" is enabled in the BIOS (or however it may be called there)?
Jan
I have now done a PCI passthrough test on some real hardware. Supermicro X8DTi-F motherboard (intel 5520 chipset), Intel Xeon L5630 processor. I enabled Intel VT-d in the BIOS and them simply selected one of the network interfaces for passthrough the the VM. And then... it just worksd. Also, I am seeing output similar to what you posted above.