Skip to contentSkip to conversation

PCI passthrough on Sony Vaio F11 laptop...

DISCUSSION Erik Brakkee 2 participants 8 messages Nov 12, 2010 – Dec 5, 2010 1 message not in the archive KVM

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw
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       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
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

#2 lore raw
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

#3 lore raw
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.0

So 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

#4 lore raw
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
#5 lore raw
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/messages or 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

A message that is not in the archive (sent off-list or not yet received): [email protected]

#7 lore raw
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/messages or 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

#8 lore raw
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/messages or 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.