[ kvm-Bugs-2834538 ] low network speed with Windows virtio NIC drivers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bugs item #2834538, was opened at 2009-08-09 20:23
Message generated for change (Comment added) made by thekozmo
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=893831&aid=2834538&group_id=180599

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Andreas Unterkircher (unki)
Assigned to: Nobody/Anonymous (nobody)
Summary: low network speed with Windows virtio NIC drivers

Initial Comment:
Host-CPU: 2x Intel Xeon E5420 (Quad cores)
Host: KVM 85
Host: 64-bit
Guest: Windows XP (SP3) and Windows 2003 (SP2)

We are powering several guests on a KVM host. All of them using TAP interfaces bridged together via one bridge. Within the guests we installed the lasted virtio NIC drivers (from that ISO file). While the Interface status show that the interfaces are set to 1Gbit/s, the maximum bandwidth we can achieve is about 100-120Mbit/s (tested with iperf). Funilly, one the same host, two Debian Lenny guests (so using 2.6.26 with builtin virtio modules) can achieve the full bandwidth of 1Gbit/s and more without a problem.

So we suspect that the Windows virtio drivers for the NICs are causing this problem.

How can we track down that problem? Can we provide more infos? We are willing to help in debuggig!

Thx,
Andreas

----------------------------------------------------------------------

Comment By: Dor Laor (thekozmo)
Date: 2009-08-20 13:00

Message:
They were just announced last week:
http://www.mail-archive.com/kvm@xxxxxxxxxxxxxxx/msg20969.html
Currently you'll need to build them from the source and binaries will soon
follow.

----------------------------------------------------------------------

Comment By: Andreas Unterkircher (unki)
Date: 2009-08-20 09:18

Message:
Hi,

Can you give us an outlook to, when this new driver will be available? Or
can we have it already to test if they are able to increase the
performance?

Cheers,

----------------------------------------------------------------------

Comment By: Andreas Unterkircher (unki)
Date: 2009-08-14 14:19

Message:
Many thanks for that first hint. I tried first to increase the window size
for iperf (1M or 4M) like you suggested - and indeed it immediately showed
up a higher bandwidth.

Then I applied those few registry settings you have put on linux-kvm.org
and now iperf shows the better performance also without explictly setting
the window size.

But all my other tries - like SFTP/SCP over SSH or a simple file copy
between to KVM Windows guests still not show improvements. A max. was now
about 200Mbit/s (neither CPU nor Disk are reaching their limit in this
case).

You were saying:

> Also, make sure TSO is on

On the Windows guests, in the driver settings (advanced) there is no
option to enable segmentation-offload. On the Linux hosts TSO and GSO is
enabled. Do I need to enable this in the registry? And I was wondering,
because from the 1GB Interface option you copied here, all the offload
parameters are disabled:

> "HwOffload"="0"
> "OffLoad.TxIP"="0"
> "OffLoad.TxLSO"="0"
> "OffLoad.TxTCP"="0"

----------------------------------------------------------------------

Comment By: Dor Laor (thekozmo)
Date: 2009-08-10 14:33

Message:
Here is more precise/pin-point data:
http://www.linux-kvm.org/page/WindowsGuestDrivers/kvmnet/registry

----------------------------------------------------------------------

Comment By: Dor Laor (thekozmo)
Date: 2009-08-10 11:15

Message:
The driver should be able to saturate 1G link. 
We'll soon post new version of the driver but there are no massive
changes.
You can try and play with the socket buffers (iperf -w), windows is very
sensitive for it.
Also, make sure TSO is on. Here is the windows registry configuration we
use:

TCPIP Params from the registry:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"NV Hostname"="marksbox"
"NameServer"=""
"ForwardBroadcasts"=dword:00000000
"IPEnableRouter"=dword:00000000
"Domain"=""
"Hostname"="marksbox"
"SearchList"=""
"UseDomainNameDevolution"=dword:00000000
"EnableICMPRedirect"=dword:00000001
"DeadGWDetectDefault"=dword:00000001
"DontAddDefaultGatewayDefault"=dword:00000000
"EnableSecurityFilters"=dword:00000000
"ReservedPorts"=hex(7):33,00,33,00,34,00,33,00,2d,00,33,00,33,00,34,00,33,00,00,00,00,00
"EnableTCPA"=dword:00000000
"EnableRSS"=dword:00000000
"EnableTCPChimney"=dword:00000000
"Tcp1323Opts"=dword:00000003
"TcpAckFrequency"=dword:00000002
"TcpWindowSize"=dword:00100000
"DhcpNameServer"="192.168.122.1"

For the Windows Socket Layer

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters]
"DefaultReceiveWindow"=dword:00100000
"DefaultSendWindow"=dword:00100000

Note that it looks like the 10G and 1G interfaces were slightly different
in the guest.  Will investigate more

 

1G Interface

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0012]
"BusNumber"="0"
"Characteristics"=dword:00000004
"BusType"="15"
"ComponentId"="pci\\ven_1af4&dev_1000&subsys_00010000"
"BatchReceive"="1"
"ConnectRate"="1000"
"ConnectTimer"="0"
"DebugLevel"="0"
"DoLog"="0"
"Gather"="1"
"HwOffload"="0"
"IPPacketsCheck"="0"
"LogStatistics"="0"
"OffLoad.TxIP"="0"
"OffLoad.TxLSO"="0"
"OffLoad.TxTCP"="0"
"PacketFilter"="0"
"Priority"="0"
"Promiscuous"="0"
"RxCapacity"="256"
"TxCapacity"="256"
"InfPath"="oem1.inf"
"InfSection"="kvmnet5.ndi"
"ProviderName"="Qumranet"
"DriverDateData"=hex:00,40,f5,36,ed,71,c9,01
"DriverDate"="1-9-2009"
"DriverVersion"="5.1.209.110"
"MatchingDeviceId"="pci\\ven_1af4&dev_1000&subsys_00010000"
"DriverDesc"="Qumranet ParaVirtualized Ethernet Adapter"
"NetCfgInstanceId"="{C4BF0807-F8F0-4A57-8BC5-85B2A9C5464A}"

 

10G Interface

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0010]
"BusNumber"="0"
"Characteristics"=dword:00000004
"BusType"="15"
"ComponentId"="pci\\ven_1af4&dev_1000&subsys_00010000"
"BatchReceive"="1"
"ConnectRate"="1000"
"ConnectTimer"="0"
"DebugLevel"="0"
"DoLog"="0"
"Gather"="1"
"HwOffload"="1"
"IPPacketsCheck"="0"
"LogStatistics"="0"
"OffLoad.TxIP"="1"
"OffLoad.TxLSO"="1"
"OffLoad.TxTCP"="1"
"PacketFilter"="1"
"Priority"="0"
"Promiscuous"="0"
"RxCapacity"="256"
"TxCapacity"="256"
"InfPath"="oem1.inf"
"InfSection"="kvmnet5.ndi"
"ProviderName"="Qumranet"
"DriverDateData"=hex:00,40,f5,36,ed,71,c9,01
"DriverDate"="1-9-2009"
"DriverVersion"="5.1.209.110"
"MatchingDeviceId"="pci\\ven_1af4&dev_1000&subsys_00010000"
"DriverDesc"="Qumranet ParaVirtualized Ethernet Adapter"
"NetCfgInstanceId"="{249CC8A2-822D-46BF-8A64-CF572F7D07D6}"

  

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=893831&aid=2834538&group_id=180599
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux