KVM Gigabit speed


#1

Hello. My problem is that I can’t reach gigabit speed via samba inside Windows 2003 guest on Centos 5.5. Max speed is about 100Mb/s.
Tried with e1000 and virtio drivers. Windows NIC shows that it’s speed is 1000Mb/s.
KVM version is 83. Guest is launching via virt-manager:

/var/log/libvirt/qemu/:

LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin HOME=/ /usr/libexec/qemu-kvm -S -M rhel5.4.0 -m 10000 -smp 8 -name windows2003r2 -uuid 6b18133c-3a3a-3451-c4ed-3011ac82cdb0 -no-kvm-pit-reinjection -monitor pty -pidfile /var/run/libvirt/qemu//windows2003r2.pid -localtime -boot c -drive file=/vm/windows2003r2sp2.img,if=ide,index=0,boot=on,cache=none -drive file=/share/virtio-win-1.0.0-45801.iso,if=ide,media=cdrom,index=2 -net nic,macaddr=54:52:00:77:16:78,vlan=0,model=e1000 -net tap,fd=15,script=,vlan=0,ifname=vnet1 -serial pty -parallel none -usb -usbdevice tablet -vnc 127.0.0.1:0 -k en-us

Here is output from brctl show and ethtool

brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.000000000000 yes
vnet0 8000.00144f0d67e6 no eth0

ethtool eth0
Settings for eth0:
Supported ports: TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbag
Wake-on: g
Current message level: 0x00000001 (1)
Link detected: yes

Also I noticed that another interface is created when I launch guest.And it’s speed is only 10Mb/s.

ethtool vnet1
Settings for vnet1:
Supported ports: ]
Supported link modes:
Supports auto-negotiation: No
Advertised link modes: Not reported
Advertised auto-negotiation: No
Speed: 10Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Current message level: 0xffffffa1 (-95)
Link detected: yes

iperf result from host to guest:

with e1000:

iperf -c 192.168.1.11 -t 30 -w 8192

Client connecting to 192.168.1.11, TCP port 5001
TCP window size: 16.0 KByte (WARNING: requested 8.00 KByte)

3] local 192.168.1.10 port 41370 connected with 192.168.1.11 port 5001
ID] Interval Transfer Bandwidth
3] 0.0-30.0 sec 1.09 GBytes 311 Mbits/sec

with virtio:

iperf -c 192.168.1.11 -t 30

Client connecting to 192.168.1.11, TCP port 5001
TCP window size: 16.0 KByte (default)

3] local 192.168.1.10 port 36714 connected with 192.168.1.11 port 5001
ID] Interval Transfer Bandwidth
3] 0.0-30.0 sec 1.13 GBytes 324 Mbits/sec

So. Where can be mistake?