qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] vhost-net issue: does not survive reboot on ppc64


From: Alexey Kardashevskiy
Subject: [Qemu-devel] vhost-net issue: does not survive reboot on ppc64
Date: Sun, 22 Dec 2013 02:01:23 +1100
User-agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

Hi!

I am having a problem with virtio-net + vhost on POWER7 machine - it does
not survive reboot of the guest.

Steps to reproduce:
1. boot the guest
2. configure eth0 and do ping - everything works
3. reboot the guest (i.e. type "reboot")
4. when it is booted, eth0 can be configured but will not work at all.

The test is:
ifconfig eth0 172.20.1.2 up
ping 172.20.1.23

If to run tcpdump on the host's "tap-id3" interface, it shows no trafic
coming from the guest. If to compare how it works before and after reboot,
I can see the guest doing an ARP request for 172.20.1.23 and receives the
response and it does the same after reboot but the answer does not come.

If to remove vhost=on, it is all good. If to try Fedora19
(v3.10-something), it all good again - works before and after reboot.


And there 2 questions:

1. does anybody have any clue what might go wrong after reboot?

2. Is there any good material to read about what exactly and how vhost
accelerates?

My understanding is that packets from the guest to the real network are
going as:
1. guest's virtio-pci-net does ioport(VIRTIO_PCI_QUEUE_NOTIFY)
2. QEMU's net/virtio-net.c calls qemu_net_queue_deliver()
3. QEMU's net/tap.c calls tap_write_packet() and this is how the host knows
that there is a new packet.


Thanks!


This how I run QEMU:
./qemu-system-ppc64 \
-enable-kvm \
-m 2048 \
-machine pseries \
-initrd 1.cpio \
-kernel vml312_virtio_net_dbg \
-nographic \
-vga none \
-netdev
tap,id=id3,ifname=tap-id3,script=ifup.sh,downscript=ifdown.sh,vhost=on \
-device virtio-net-pci,id=id4,netdev=id3,mac=C0:41:49:4b:00:00


That is bridge config:
address@hidden ~]$ brctl show
bridge name     bridge id               STP enabled     interfaces
brtest          8000.00145e992e88       no      pin     eth4


The ifup.sh script:
ifconfig $1 hw ether ee:01:02:03:04:05
/sbin/ifconfig $1 up
/usr/sbin/brctl addif brtest $1




-- 
Alexey



reply via email to

[Prev in Thread] Current Thread [Next in Thread]