On Sat, Dec 21, 2013 at 11:01 PM, Alexey Kardashevskiy <a...@ozlabs.ru> wrote: > Hi! HI, Alexey
> > I am having a problem with virtio-net + vhost on POWER7 machine - it does > not survive reboot of the guest. Can you let me login to your environment for debug? I am interested in trying to fix this issue. > > 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: > [aik@dyn232 ~]$ 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 > -- Regards, Zhi Yong Wu