From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: rusty@rustcorp.com.au,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
David Gibson <david@gibson.dropbear.id.au>
Subject: [Qemu-devel] QEMU -netdev vhost=on + -device virtio-net-pci bug
Date: Tue, 05 Mar 2013 17:55:19 +1100 [thread overview]
Message-ID: <513596D7.3060307@ozlabs.ru> (raw)
Hi!
The patch f56a12475ff1b8aa61210d08522c3c8aaf0e2648 "vhost: backend masking
support" breaks virtio-net + vhost=on on PPC64 platform.
The problem command line is:
1) -netdev tap,id=tapnet,ifname=tap0,script=qemu-ifup.sh,vhost=on \
-device virtio-net-pci,netdev=tapnet,addr=0.0 \
Without the patch, the eth0 in the guest works fine, with the patch it
simply does not. The guest's eth0 also works with the following configs:
2) new -netdev interface with vhost=off:
-netdev tap,id=tapnet,ifname=tap0,script=qemu-ifup.sh \
-device virtio-net-pci,netdev=tapnet,addr=0.0
3) old -net interface with vhost=on:
-net tap,ifname=tap0,script=qemu-ifup.sh,vhost=on \
-net nic,model=virtio,addr=0:0:0
4) old -net interface with vhost=off:
-net tap,ifname=tap0,script=qemu-ifup.sh \
-net nic,model=virtio,addr=0:0:0
I run http://junkcode.samba.org/ftp/unpacked/junkcode/socklib/ on
10Gb ethernet and observe 1020MB/s for 1) (without the patch),
800MB/s for 2), 70MB/s for 3) and 4).
The virtio features (cat /sys/bus/virtio/devices/virtio0/features)
for 1) and 2) are:
"1100011111111111111100000000110000000000000000000000000000000000"
and for 3) and 4) they are:
"0000011000000001111100000000110000000000000000000000000000000000"
I guess this is because the old -net interface creates
an internal hub as "info qtree" shows vlan=0 and netdev=hub0port1
while the new -netdev interface does not seem to create any internal
hub (vlan=<null>, netdev=tapnet). btw why are the configs so different?
The network config is below. Both host and guest are running 3.8 kernel.
The qemu tree from qemu.org/master still has this problem.
What am I missing? Thanks.
The full command line is like below plus the network config from
the examples above:
sudo qemu-impreza/ppc64-softmmu/qemu-system-ppc64 -m 1024 -machine
pseries,kernel_irqchip=on -trace events=trace_events \
-nographic -vga none -enable-kvm -kernel vml38_64k -initrd 1.cpio
This is the host config:
[aik@vpl2 ~]$ cat qemu-ifup.sh
#! /bin/sh
/sbin/ifconfig $1 0.0.0.0 promisc up
/usr/sbin/brctl addif brtest $1
[aik@vpl2 ~]$ brctl show
bridge name bridge id STP enabled interfaces
brtest 8000.00145e992e88 no eth0
[aik@vpl2 ~]$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::214:5eff:fe99:2e88 prefixlen 64 scopeid 0x20<link>
ether 00:14:5e:99:2e:88 txqueuelen 1000 (Ethernet)
RX packets 1781219 bytes 124692636 (118.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 13734906 bytes 20755102658 (19.3 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 49 memory 0x3c0500800000-3c0500800fff
[aik@vpl2 ~]$ lspci -vs 1:1:0.0
0001:01:00.0 Ethernet controller: Chelsio Communications Inc T310 10GbE
Single Port Adapter
Subsystem: IBM Device 038c
Flags: bus master, fast devsel, latency 0, IRQ 49
Memory at 3c0500800000 (64-bit, non-prefetchable) [size=4K]
Memory at 3c0500000000 (64-bit, non-prefetchable) [size=8M]
Memory at 3c0500801000 (64-bit, non-prefetchable) [size=4K]
[virtual] Expansion ROM at 3c0500c00000 [disabled] [size=512K]
Capabilities: <access denied>
Kernel driver in use: cxgb3
[aik@vpl2 ~]$ ls -l /sys/bus/pci/devices/0001\:01\:00.0/net/
total 0
drwxr-xr-x. 5 root root 0 Mar 5 12:59 eth0
[aik@vpl2 ~]$ uname -a
Linux vpl2.ozlabs.ibm.com 3.8.0-kvm-64k-aik+ #239 SMP Tue Mar 5 12:50:05
EST 2013 ppc64 ppc64 ppc64 GNU/Linux
This is the running guest:
root@erif_root:~# lspci -v
00:00.0 Ethernet controller: Qumranet, Inc. Virtio network device
Subsystem: Qumranet, Inc. Device 0001
Flags: bus master, fast devsel, latency 0, IRQ 19
I/O ports at 0020 [size=32]
Memory at 100b0000000 (32-bit, non-prefetchable) [size=4K]
Expansion ROM at 100b0010000 [disabled] [size=64K]
Capabilities: [40] MSI-X: Enable+ Count=3 Masked-
Kernel driver in use: virtio-pci
root@erif_root:~# ifconfig -a
eth0 Link encap:Ethernet HWaddr 52:54:00:12:34:56
inet addr:172.20.1.2 Bcast:172.20.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:36 errors:0 dropped:6 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2268 (2.2 KiB) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@erif_root:~# uname -a
Linux erif_root 3.8.0-aik-guest+ #262 SMP Mon Mar 4 15:58:55 EST 2013 ppc64
GNU/Linux
--
Alexey
next reply other threads:[~2013-03-05 6:54 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-05 6:55 Alexey Kardashevskiy [this message]
2013-03-05 12:56 ` [Qemu-devel] QEMU -netdev vhost=on + -device virtio-net-pci bug Michael S. Tsirkin
2013-03-05 13:21 ` Alexey Kardashevskiy
2013-03-05 14:23 ` Michael S. Tsirkin
2013-03-05 22:57 ` Alexey Kardashevskiy
2013-03-06 10:31 ` Michael S. Tsirkin
2013-03-08 4:48 ` Alexey Kardashevskiy
2013-03-10 9:24 ` Michael S. Tsirkin
2013-03-10 11:25 ` Alexey Kardashevskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=513596D7.3060307@ozlabs.ru \
--to=aik@ozlabs.ru \
--cc=david@gibson.dropbear.id.au \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rusty@rustcorp.com.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.