From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35914) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VuO3c-0001fw-O4 for qemu-devel@nongnu.org; Sat, 21 Dec 2013 10:01:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VuO3W-0002eK-TO for qemu-devel@nongnu.org; Sat, 21 Dec 2013 10:01:36 -0500 Received: from mail-pb0-f47.google.com ([209.85.160.47]:47189) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VuO3W-0002dl-Mk for qemu-devel@nongnu.org; Sat, 21 Dec 2013 10:01:30 -0500 Received: by mail-pb0-f47.google.com with SMTP id um1so3771130pbc.20 for ; Sat, 21 Dec 2013 07:01:29 -0800 (PST) Message-ID: <52B5AD43.5020700@ozlabs.ru> Date: Sun, 22 Dec 2013 02:01:23 +1100 From: Alexey Kardashevskiy MIME-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] vhost-net issue: does not survive reboot on ppc64 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "qemu-devel@nongnu.org" Cc: "Michael S. Tsirkin" 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: [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