Bugs item #2834538, was opened at 2009-08-09 17:23
Message generated for change (Comment added) made by unki
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: Andreas Unterkircher (unki)
Date: 2009-08-14 11: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 11: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 08: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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to