Cannot run a VM with more than three network interfaces with KVM-Collection of common programming errors


  • Jason Axelson

    I’m running KVM on top of Ubuntu 10.10 Server

    I can create VM’s (Virtual Machine) and network interfaces fine but I cannot seem to add more than three network interfaces. As soon as I have a VM with four network interfaces it gets stuck on startup at the starting SeaBIOS page with this message:

    Starting SeaBIOS (version pre-0.6.1-20100702_143500-palmer)
    

    So far I’ve verified this with two VM’s, a Ubuntu 10.10 desktop and a Vyatta router. The specific network hardware I assign to the VM’s doesn’t seem to matter. I’m trying to have one bridged interface and three private networks using Vyatta to route between them.

    Does anyone know why I can’t run a VM with more than three network interfaces?

    Edit: Additionally the KVM thread responsible for the specific VM hangs using ~100% CPU (i.e. one core). Here’s the command for the process that is hanging:

    /usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 512 -smp 1,sockets=1,cores=1,threads=1 -name vyatta -uuid 6dff7c94-6810-423e-5fea-fec10da0e9b7 -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/vyatta.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot c -drive file=/home/rams/virtual-machines/vyatta.img,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 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 -device rtl8139,vlan=0,id=net0,mac=00:54:00:be:cc:4b,bus=pci.0,addr=0x3 -net tap,fd=97,vlan=0,name=hostnet0 -device rtl8139,vlan=1,id=net1,mac=52:54:00:da:59:ed,bus=pci.0,addr=0x5 -net tap,fd=98,vlan=1,name=hostnet1 -device rtl8139,vlan=2,id=net2,mac=52:54:00:ce:22:b6,bus=pci.0,addr=0x6 -net tap,fd=99,vlan=2,name=hostnet2 -device rtl8139,vlan=3,id=net3,mac=52:54:00:1e:bc:46,bus=pci.0,addr=0x7 -net tap,fd=101,vlan=3,name=hostnet3 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -vnc 127.0.0.1:0 -k en-us -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
    

    Edit: I’ve also found an error in dmesg that might be related (it also shows up when running virtd in verbose mode):

    14:47:24.399: warning : qemudParsePCIDeviceStrs:1422 : Unexpected exit status '1', qemu probably failed
    

    I’ve also tried disabling app armor but that doesn’t seem to make a difference.


  • dyasny

    Strange, I just started a VM on Fedora 14, with 4 NICs attached.


  • nedm

    I don’t think it’s the number of NICs — are you using libvirt to create guests? Looks like it’s using RealTek (rtl8139) qemu drivers, which have sometimes been known to cause freezes or other issues under KVM. I would try switching them to e1000 or virtio.

    virsh dumpxml vm1 > vm1definition.xml
    virsh destroy vm1
    

    Edit the xml file and replace rtl8139 in each NIC definition with virtio or e1000

    virsh create vm1definition.xml