Network Adapter speed in Windows XP Virtualbox 7.0.97 r156683

Discussions about using Windows guests in VirtualBox.
FranceBB
Posts: 117
Joined: 20. May 2017, 05:07
Primary OS: Fedora other
VBox Version: OSE Fedora
Guest OSses: Windows XP x86
Contact:

Re: Network Adapter speed in Windows XP Virtualbox 7.0.97 r156683

Post by FranceBB »

I updated to Fedora 39 and I also updated Virtualbox to version 7.0.97 r158251 along with its guest addition for the host and extensions.

I repeated the tests with iperf on XP and I've got very similar results:

TCP Unlimited:

C:\Documents and Settings\l\Desktop\FranceBB\Programmes Installation\utility\ipe
rf-3.1.3-win32>iperf3 -c 10.75.144.142
Connecting to host 10.75.144.142, port 5201
[ 4] local 10.75.144.233 port 8232 connected to 10.75.144.142 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 16.2 MBytes 136 Mbits/sec
[ 4] 1.00-2.00 sec 16.6 MBytes 139 Mbits/sec
[ 4] 2.00-3.00 sec 16.7 MBytes 140 Mbits/sec
[ 4] 3.00-4.00 sec 15.8 MBytes 133 Mbits/sec
[ 4] 4.00-5.00 sec 16.2 MBytes 136 Mbits/sec
[ 4] 5.00-6.01 sec 15.4 MBytes 129 Mbits/sec
[ 4] 6.01-7.01 sec 15.9 MBytes 134 Mbits/sec
[ 4] 7.01-8.01 sec 16.6 MBytes 139 Mbits/sec
[ 4] 8.01-9.00 sec 16.9 MBytes 142 Mbits/sec
[ 4] 9.00-10.01 sec 19.1 MBytes 160 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.01 sec 166 MBytes 139 Mbits/sec sender
[ 4] 0.00-10.01 sec 166 MBytes 139 Mbits/sec receiver

iperf Done.

C:\Documents and Settings\l\Desktop\FranceBB\Programmes Installation\utility\ipe
rf-3.1.3-win32>pause
fth0
Volunteer
Posts: 5678
Joined: 14. Feb 2019, 03:06
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Linux, Windows 10, ...
Location: Germany

Re: Network Adapter speed in Windows XP Virtualbox 7.0.97 r156683

Post by fth0 »

FWIW, in viewtopic.php?p=535091#p535091 I suggested an investigation strategy that is IMHO more sophisticated than what you did so far. In consequence, there's nothing to evaluate for me so far.

Please don't get me wrong: I don't say that you should go the route I suggested, only that I cannot help without getting more detailed input.
FranceBB
Posts: 117
Joined: 20. May 2017, 05:07
Primary OS: Fedora other
VBox Version: OSE Fedora
Guest OSses: Windows XP x86
Contact:

Re: Network Adapter speed in Windows XP Virtualbox 7.0.97 r156683

Post by FranceBB »

I've been a bit under the weather lately, but I finally had some time to look at this, properly.
All tests have been conducted on both VMs on enp3s0f1 (bridged mode), the ethernet port running on the virtual Intel PRO 1000MT Desktop on both Windows XP and Windows 8.1.
Both VM have been provisioned with 4c/4th and 12GB of RAM (out of 64GB from the host).

Here are the following IPs used for the test.
Server: 10.25.124.98
XP: 10.25.124.213
8.1: 10.25.124.186
Start the Windows XP VM, open a Windows command prompt, let iPerf3 perform a standard UDP measurement with the default 1 Mbit/s for the default 10 seconds with "iperf3 -c <host IP> -u", shut down the VM from within Windows XP and save the VBox.log file.
Done.
WindowsXP_iperf3 -c 10.25.124.98 -u.zip
(44.22 KiB) Downloaded 217 times

Code: Select all

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\FranceBB>cd "C:\Documents and Settings\l\Desktop\F
ranceBB\Programmes Installation\utility\iperf-3.1.3-win32"

C:\Documents and Settings\l\Desktop\FranceBB\Programmes Installation\utility\ipe
rf-3.1.3-win32>iperf3 -c 10.25.124.98 -u
Connecting to host 10.25.124.98, port 5201
[  4] local 10.25.124.213 port 1236 connected to 10.25.124.98 port 5201
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.00   sec   328 KBytes  2.69 Mbits/sec  41
[  4]   1.00-2.00   sec   136 KBytes  1.11 Mbits/sec  17
[  4]   2.00-3.00   sec   136 KBytes  1.11 Mbits/sec  17
[  4]   3.00-4.00   sec   120 KBytes   983 Kbits/sec  15
[  4]   4.00-5.00   sec   136 KBytes  1.11 Mbits/sec  17
[  4]   5.00-6.00   sec   144 KBytes  1.18 Mbits/sec  18
[  4]   6.00-7.00   sec   144 KBytes  1.18 Mbits/sec  18
[  4]   7.00-8.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   8.00-9.00   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   9.00-10.00  sec   120 KBytes   983 Kbits/sec  15
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datag
rams
[  4]   0.00-10.00  sec  1.48 MBytes  1.25 Mbits/sec  6.737 ms  0/189 (0%)
[  4] Sent 189 datagrams

iperf Done.

C:\Documents and Settings\l\Desktop\FranceBB\Programmes Installation\utility\ipe
rf-3.1.3-win32>

Do the same with your Windows 8.1 VM
Done.
Windows8.1_iperf3 -c 10.25.124.98 -u.zip
(42.72 KiB) Downloaded 222 times

Code: Select all

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users\IEUser>cd "C:\Users\IEUser\Desktop\Utility\iperf-3.1.3-win64"

C:\Users\IEUser\Desktop\Utility\iperf-3.1.3-win64>iperf3 -c 10.25.124.98 -u
Connecting to host 10.25.124.98, port 5201
[  4] local 10.25.124.186 port 60141 connected to 10.25.124.98 port 5201
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.02   sec   128 KBytes  1.03 Mbits/sec  16
[  4]   1.02-2.02   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   2.02-3.02   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   3.02-4.02   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   4.02-5.01   sec   128 KBytes  1.06 Mbits/sec  16
[  4]   5.01-6.01   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   6.01-7.01   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   7.01-8.01   sec   128 KBytes  1.05 Mbits/sec  16
[  4]   8.01-9.02   sec   128 KBytes  1.04 Mbits/sec  16
[  4]   9.02-10.03  sec   128 KBytes  1.04 Mbits/sec  16
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datag
rams
[  4]   0.00-10.03  sec  1.25 MBytes  1.05 Mbits/sec  9.287 ms  0/159 (0%)
[  4] Sent 159 datagrams

iperf Done.

C:\Users\IEUser\Desktop\Utility\iperf-3.1.3-win64>
Last edited by FranceBB on 26. Sep 2023, 09:33, edited 1 time in total.
FranceBB
Posts: 117
Joined: 20. May 2017, 05:07
Primary OS: Fedora other
VBox Version: OSE Fedora
Guest OSses: Windows XP x86
Contact:

Re: Network Adapter speed in Windows XP Virtualbox 7.0.97 r156683

Post by FranceBB »

Then repeat both tests with switched roles, starting iPerf3 in server mode in the VMs and in client mode on the host.
Done with the roles reversed.
Going towards Windows XP:
WindowsXP_iperf3_server.zip
(43.62 KiB) Downloaded 220 times

Code: Select all

Microsoft Windows [Version 10.0.19045.3448]
(c) Microsoft Corporation. All rights reserved.

C:\Users\FranceBB>cd "C:\Users\FranceBB\Desktop\Utility\iperf-3.1.3-win64"

C:\Users\FranceBB\Desktop\Utility\iperf-3.1.3-win64>iperf3 -c 10.25.124.213 -u
Connecting to host 10.25.124.213, port 5201
[  4] local 10.25.124.98 port 63484 connected to 10.25.124.213 port 5201
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.01   sec   128 KBytes  1.04 Mbits/sec  16
[  4]   1.01-2.01   sec   128 KBytes  1.04 Mbits/sec  16
[  4]   2.01-3.00   sec   128 KBytes  1.06 Mbits/sec  16
[  4]   3.00-4.01   sec   128 KBytes  1.04 Mbits/sec  16
[  4]   4.01-5.02   sec   136 KBytes  1.10 Mbits/sec  17
[  4]   5.02-6.01   sec   120 KBytes   992 Kbits/sec  15
[  4]   6.01-7.01   sec   128 KBytes  1.04 Mbits/sec  16
[  4]   7.01-8.00   sec   128 KBytes  1.06 Mbits/sec  16
[  4]   8.00-9.01   sec   128 KBytes  1.04 Mbits/sec  16
[  4]   9.01-10.00  sec   128 KBytes  1.06 Mbits/sec  16
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-10.00  sec  1.25 MBytes  1.05 Mbits/sec  2.508 ms  0/159 (0%)
[  4] Sent 159 datagrams

iperf Done.

C:\Users\FranceBB\Desktop\Utility\iperf-3.1.3-win64>
Going towards Windows 8.1:
Windows8.1_iperf3_server.zip
(41.9 KiB) Downloaded 237 times

Code: Select all

C:\Users\FranceBB\Desktop\Utility\iperf-3.1.3-win64>iperf3 -c 10.25.124.186 -u
Connecting to host 10.25.124.186, port 5201
[  4] local 10.25.124.98 port 64818 connected to 10.25.124.186 port 5201
[ ID] Interval           Transfer     Bandwidth       Total Datagrams
[  4]   0.00-1.01   sec   128 KBytes  1.04 Mbits/sec  16
[  4]   1.01-2.00   sec   128 KBytes  1.06 Mbits/sec  16
[  4]   2.00-3.01   sec   128 KBytes  1.04 Mbits/sec  16
[  4]   3.01-4.00   sec   128 KBytes  1.06 Mbits/sec  16
[  4]   4.00-5.02   sec   136 KBytes  1.10 Mbits/sec  17
[  4]   5.02-6.01   sec   120 KBytes   989 Kbits/sec  15
[  4]   6.01-7.02   sec   136 KBytes  1.11 Mbits/sec  17
[  4]   7.02-8.00   sec   120 KBytes   995 Kbits/sec  15
[  4]   8.00-9.01   sec   136 KBytes  1.10 Mbits/sec  17
[  4]   9.01-10.00  sec   120 KBytes   993 Kbits/sec  15
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-10.00  sec  1.25 MBytes  1.05 Mbits/sec  2.312 ms  0/159 (0%)
[  4] Sent 159 datagrams

iperf Done.

C:\Users\FranceBB\Desktop\Utility\iperf-3.1.3-win64>
FranceBB
Posts: 117
Joined: 20. May 2017, 05:07
Primary OS: Fedora other
VBox Version: OSE Fedora
Guest OSses: Windows XP x86
Contact:

Re: Network Adapter speed in Windows XP Virtualbox 7.0.97 r156683

Post by FranceBB »

Ok, so, there's one more thing.
The drivers I'm using on Windows XP are version 8.1.8.0 from 15/09/2004.
There are newer versions 'till the latest released which is 14.0 from 01/04/2009, however they all end up in a bluescreen.

I tried to install the following versions:

12.2 - 10 Jul 2007
12.3 - 25 Sep 2007
13.1.2 - 13 Aug 2008
14.0 - 01 Apr 2009

The result is always the same:
Screenshot from 2023-09-29 18-28-05.png
Screenshot from 2023-09-29 18-28-05.png (13.16 KiB) Viewed 5954 times

I found the following ticket in the bug tracker from 14 years ago relative to v14 of the driver and Virtualbox 3.06 https://www.virtualbox.org/ticket/5035

Ironically, 14 years later, with Virtualbox 7.0.97 r158510 and the same version of the Intel drivers (v14) the bug still applies.
Given that the Intel PRO/1000 MT Desktop adapter has been discontinued by Intel, it's highly unlikely we'll ever see a new driver that fixes the issue coming out... :(


I went back and tried the following version (which is still newer than the one I was using):

8.7.9.0 - 28 Feb 2007

it went through.
Then I tried:

8.10.3.0 - 20/08/2008

it also went through.
The problem is that nothing really changed as the performances stayed exactly the same... :(
fth0
Volunteer
Posts: 5678
Joined: 14. Feb 2019, 03:06
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Linux, Windows 10, ...
Location: Germany

Re: Network Adapter speed in Windows XP Virtualbox 7.0.97 r156683

Post by fth0 »

I'm sorry that it took me sooo long to look again into this! I wanted to take the opportunity to read a bit in the PCI/PCI-X Family of Gigabit Ethernet Controllers Software Developer’s Manual (~400 pages) and spent a few hours on it today.

First of all, your latest log files from September 2023 indicated a lot more network packets than expected: One iperf3 run sends ~160 UDP datagrams of 8 kB, leading to ~960 Ethernet frames. Since the log files indicated more than 2000 transmitted Ethernet frames, it wasn't obvious which statistics values to attribute to the iperf3 network traffic. But I think I found the key information for the TX direction:
Windows8.1_iperf3 -c 10.25.124.98 -u.log wrote:
00:03:54.768762 E1000#2: TX CTX descriptors: 186
00:03:54.768765 E1000#2: TX DAT descriptors: 3826
00:03:54.768768 E1000#2: TX LEG descriptors: 64
00:03:54.768774 E1000#2: Transmitted frames: 2102
WindowsXP_iperf3 -c 10.25.124.98 -u.log wrote:
00:07:00.307419 E1000#1: TX CTX descriptors: 0
00:07:00.307421 E1000#1: TX DAT descriptors: 0
00:07:00.307423 E1000#1: TX LEG descriptors: 5624
00:07:00.307426 E1000#1: Transmitted frames: 2634
The Windows 8.1 network driver used TX CTX and TX DAT descriptors for the iperf3 network traffic, while the Windows XP network driver used TX LEG descriptors. The former descriptor types are needed to use TX checksum offloading and TX segmentation offloading, which are commonly used by GbE controllers to speed up network traffic in both TX and RX directions. In RX direction, RX interrupt coalescing could play an additional role.

According to the VirtualBox User Manual, Windows XP natively supports the older Intel PRO/1000 T Server (82543GC) network adapter. Might be worth a try ...
FranceBB
Posts: 117
Joined: 20. May 2017, 05:07
Primary OS: Fedora other
VBox Version: OSE Fedora
Guest OSses: Windows XP x86
Contact:

Re: Network Adapter speed in Windows XP Virtualbox 7.0.97 r156683

Post by FranceBB »

About the lack of TX checksum offloading and TX segmentation offloading in the Windows XP network driver, I tried with the Intel PRO/1000 T Server card as you suggested and indeed I can see TX Checksum offloading being on but there's no mention of TX Segmentation offloading unfortunately:
Screenshot from 2024-02-10 17-56-35.png
Screenshot from 2024-02-10 17-56-35.png (10.1 KiB) Viewed 2666 times
Screenshot from 2024-02-10 18-02-10.png
Screenshot from 2024-02-10 18-02-10.png (10.11 KiB) Viewed 2666 times
Needless to say, I tried the same iperf test and the result was pretty much the same in terms of speed... :(

In the Virt-io driver, however, those are disabled by default:
Screenshot from 2024-02-10 18-09-04.png
Screenshot from 2024-02-10 18-09-04.png (10.62 KiB) Viewed 2666 times
and if I try to enable them, it goes straight into bluescreen:

https://i.imgur.com/kenFRLm.png

Thank you again for analyzing the traffic and solving the mystery, this gives me finally peace of mind.
For everyone else reading who might be curious, the XP drivers for the Intel cards are from 2008, so they won't see any update ever and there's no chance they're ever gonna support TX Segmentation offloading in XP.
The most recent ones are the virt-io drivers, however the XP version of those has also been discontinued a long time ago, in 2017, so we won't see any new release supporting TX Checksum and TX Segmentation offloading either...
I guess XP is once again a victim of its time and with none of the drivers offering TX Segmentation offloading it's probably never gonna reach 1 Gbit/s, just like Windows98 won't get over the 100 Mbit/s barrier... :(
Post Reply