Description of problem: guest got very poor throughput of tcp_stream from exhost to guest while disabled netfilter on bridge and also diabled tso and enabled gso on eth. Version-Release number of selected component (if applicable): kernel-2.6.18-259.el5 kvm-83-232.el5 How reproducible: 100% Steps to Reproduce: 1.diabled bridge on host sysctl -a |grep bridg net.bridge.bridge-nf-filter-vlan-tagged = 0 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 2. sysctl -w net.ipv4.conf.default.arp_filter=1 sysctl -w net.ipv4.conf.all.arp_filter=1 3.diabled tso and enabled gso on eth. ethtool -K eth2 tso off ethtool -K eth2 gso on 4. boot guest with qemu-ci /usr/libexec/qemu-kvm -name 'vm1' -drive file=/root/RHEL-Server-5.7-64-virtio.qcow2,index=0,if=virtio,boot=on,media=disk,cache=none,format=qcow2 -net nic,vlan=0,model=virtio,macaddr='9a:3b:dd:52:d9:d7' -net tap,vlan=0,script=/etc/qemu-ifup -m 4096 -smp 2,cores=1,threads=1,sockets=2 -cpu qemu64,+sse2 -vnc :0 -rtc-td-hack -boot c -usbdevice tablet -no-kvm-pit-reinjection 5.run netserver on guest 6.run netperf on ex-host ./netperf -H 192.168.0.101 TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.101 (192.168.0.101) port 0 AF_INET Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 16384 10.34 0.51 Actual results: Expected results: Additional info: #ethtool -k eth2 Offload parameters for eth2: Cannot get device udp large send offload settings: Operation not supported rx-checksumming: on tx-checksumming: on scatter-gather: on tcp segmentation offload: off udp fragmentation offload: off generic segmentation offload: on generic-receive-offload: on #ethtool -k breth0 Offload parameters for breth0: Cannot get device rx csum settings: Operation not supported Cannot get device udp large send offload settings: Operation not supported rx-checksumming: off tx-checksumming: on scatter-gather: on tcp segmentation offload: on udp fragmentation offload: off generic segmentation offload: on generic-receive-offload: off #ethtool -i eth2 driver: ixgbe version: 3.2.9-k2 firmware-version: 0.9-3 bus-info: 0000:0f:00. #brctl show bridge name bridge id STP enabled interfaces breth0 8000.001b218eb2b8 no tap0 eth2
also get poor throughtput of tcp_stream on rhel5.6 with kernel-2.6.18-238.el5/kvm-83-224.el5 by using the same steps in "Steps to Reproduce:" ./netperf -H 192.168.0.101 -l 60 TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.101 (192.168.0.101) port 0 AF_INET Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 16384 60.01 3.59
throughput of tcp_stream got very obvious speedup by just disabled rsc with 'ethtool -C eth2 rx-usecs 0'. #netperf -H 192.168.0.101 TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.0.101 (192.168.0.101) port 0 AF_INET Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 16384 10.01 2902.13 I also try disabled netfilter on bridge and disabled hw rsc,got about 2925.84 Mbps throughput of tcp_stream .But such virtio performance can not be accepted also.
So this is a duplicate of https://bugzilla.redhat.com/show_bug.cgi?id=703416 as far as I can tell. *** This bug has been marked as a duplicate of bug 703416 ***