I also check the VM dmesg ,it shows that "Failed to initialize MSI interrupts. Falling back to legacy interrupts."
more detail information please look into the picture attached.
best regards,
qinguan
Hi,
I encounter a problem that the eth can't be up in the VM by using VT-d.
I boot the VM using "virsh create vt_d.xml".
The VM could recongize the NIC which was assigned .then I do in VM as follows:
#cat /sys/class/net/eth0/operstate
down
#ifconfig eth0 up
#cat /sys/class/net/eth0/operstate
down
#ficonfig eth 10.100.0.5
#cat /sys/class/net/eth0/operstate
down
I look into the qemu log file ,find that :
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin HOME=/ QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name vt_d_5 -uuid 05f608a3-f64f-2418-a90a-d611982c8336 -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/vt_d_5.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot c -drive file=/home/qinguan/exp/kvm_vtd/ubuntu_1.img,if=none,id=drive-virtio-disk0,boot=on,format=raw -device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-disk0 -usb -device usb-mouse,id=input0 -vnc 127.0.0.1:0 -vga cirrus -device pci-assign,host=00:19.0,id=hostdev0,bus=pci.0,addr=0x4 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to assign irq for "hostdev0": Operation not permitted
maybe the VM can't access to the network because of Failed to assign irg for "hostdev0"?
in kern.log :
May 1 12:40:07 Optiplex-780 kernel: [ 3172.784803] e1000e 0000:00:19.0: PCI INT A disabled
May 1 12:40:07 Optiplex-780 kernel: [ 3172.784863] pci-stub 0000:00:19.0: claimed by stub
May 1 12:40:07 Optiplex-780 kernel: [ 3173.103965] pci-stub 0000:00:19.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
May 1 12:40:07 Optiplex-780 kernel: [ 3173.204030] pci-stub 0000:00:19.0: restoring config space at offset 0x6 (was 0x1, writing 0xece1)
May 1 12:40:07 Optiplex-780 kernel: [ 3173.204035] pci-stub 0000:00:19.0: restoring config space at offset 0x5 (was 0x0, writing 0xf7ad9000)
May 1 12:40:07 Optiplex-780 kernel: [ 3173.204039] pci-stub 0000:00:19.0: restoring config space at offset 0x4 (was 0x0, writing 0xf7ae0000)
May 1 12:40:07 Optiplex-780 kernel: [ 3173.204045] pci-stub 0000:00:19.0: restoring config space at offset 0x1 (was 0x100000, writing 0x100103)
May 1 12:40:07 Optiplex-780 kernel: [ 3173.435751] assign device 0:0:19.0
May 1 12:44:24 Optiplex-780 kernel: [ 3430.568526] pci-stub 0000:00:19.0: restoring config space at offset 0x6 (was 0x1, writing 0xece1)
May 1 12:44:24 Optiplex-780 kernel: [ 3430.568532] pci-stub 0000:00:19.0: restoring config space at offset 0x5 (was 0x0, writing 0xf7ad9000)
May 1 12:44:24 Optiplex-780 kernel: [ 3430.568537] pci-stub 0000:00:19.0: restoring config space at offset 0x4 (was 0x0, writing 0xf7ae0000)
May 1 12:44:24 Optiplex-780 kernel: [ 3430.568543] pci-stub 0000:00:19.0: restoring config space at offset 0x1 (was 0x100000, writing 0x100103)
May 1 12:44:24 Optiplex-780 kernel: [ 3430.568561] pci-stub 0000:00:19.0: PCI INT A disabled
root@Optiplex-780:/var/log/libvirt/qemu# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 97 1 2 1 IO-APIC-edge timer
1: 2 0 0 0 IO-APIC-edge i8042
7: 0 0 0 0 IO-APIC-edge parport0
8: 1 0 0 0 IO-APIC-edge rtc0
9: 0 0 0 0 IO-APIC-fasteoi acpi
12: 1 2 1 0 IO-APIC-edge i8042
16: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb2
17: 5822 1952 3614 2233 IO-APIC-fasteoi uhci_hcd:usb4, uhci_hcd:usb7
18: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb8
22: 1 1 1 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb5
23: 1461 1299 1153 912 IO-APIC-fasteoi ehci_hcd:usb3, uhci_hcd:usb6
24: 268579 0 0 0 HPET_MSI-edge hpet2
25: 0 286310 0 0 HPET_MSI-edge hpet3
26: 0 0 210675 0 HPET_MSI-edge hpet4
27: 0 0 0 256688 HPET_MSI-edge hpet5
29: 1 0 0 0 DMAR_MSI-edge dmar1
30: 0 0 0 0 DMAR_MSI-edge dmar0
31: 0 0 0 0 DMAR_MSI-edge dmar2
35: 0 0 0 1 PCI-MSI-edge eth1
36: 1456 916 1323 1657 PCI-MSI-edge eth1-rx-0
37: 1031 772 1459 895 PCI-MSI-edge eth1-rx-1
38: 958 965 785 470 PCI-MSI-edge eth1-rx-2
39: 1319 557 1007 714 PCI-MSI-edge eth1-rx-3
40: 892 864 417 1134 PCI-MSI-edge eth1-tx-0
41: 414 749 998 606 PCI-MSI-edge eth1-tx-1
42: 307 921 375 332 PCI-MSI-edge eth1-tx-2
43: 966 693 396 502 PCI-MSI-edge eth1-tx-3
54: 7109 5755 5683 5609 PCI-MSI-edge ahci
55: 74 105 73 84 PCI-MSI-edge hda_intel
56: 1446 927 1108 870 PCI-MSI-edge i915
NMI: 0 0 0 0 Non-maskable interrupts
LOC: 740 725 703 677 Local timer interrupts
SPU: 0 0 0 0 Spurious interrupts
PMI: 0 0 0 0 Performance monitoring interrupts
PND: 0 0 0 0 Performance pending work
RES: 665 679 714 547 Rescheduling interrupts
CAL: 5332 408 5619 539 Function call interrupts
TLB: 1880 2843 1788 3202 TLB shootdowns
TRM: 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 Threshold APIC interrupts
MCE: 0 0 0 0 Machine check exceptions
MCP: 5 5 5 5 Machine check polls
ERR: 3
MIS: 0
root@Optiplex-780:/var/log/libvirt/qemu#
I search the similarly problems that sharing the irg but never find a answer , and now I have no idea.
How to solve the problem ,can you help me ? thanks.
best regards,
qinguan
vt_d.xml:
<domain type='kvm'>
<name>test</name>
<description>just test using sriov!</description>
<os>
<type>hvm</type>
<boot dev='hd'/>
</os>
<memory>524288</memory>
<currentMemory>524288</currentMemory>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<features><pae/><acpi/><apic/></features>
<clock offset='utc'/>
<devices>
<input type='mouse' bus='usb'/>
<disk type='file' device='disk'>
<source file='/home/qinguan/exp/ubuntu_1.img'/>
<target dev='hda' bus='virtio'/>
</disk>
<emulator>/usr/bin/kvm</emulator>
<graphics type='vnc' port='-1'/>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address bus='0x0' slot='0x19' function='0x0'/>
</source>
</hostdev>
</devices>
</domain>