TL;DR
It’s ToE on a Hyper-V vSwitch. Go to the end for the fix.
The Long Version
After a series of upgrades (I’m not sure which ones) my Surface
Pro 7, whilst working fine seemed to be rather slow when synchronising email/OneDrive/DropBox
files. To my surprise when I looked into
it with SpeedTest my Wi-Fi connection was running at just over 1Mb download and
a measly 0.1Mb upload. No wonder!
To check the scope of the problem, I connected to other Wi-Fi networks (including a hotspot from my phone) and got the same result. So I hauled out the Surface USB Ethernet Adapter and connected directly – all was good. After hunting around online I found that I wasn’t the first to see this; and hardware was very much implicated (or rather hardware not recovering from sleep). I tried various solutions suggested, and stopped using sleep mode (I tend to switch on, work, shutdown anyway). To no avail.
So as I had a few years Business Warranty left I placed a tech support call. And this had to be the worst technical support experience I’ve had with Microsoft ever. I’m not sure it ever got to the right team in the weeks that followed. It certainly never got to anyone who could propose a good fix, and I’m not sure that if I had had a hardware problem Microsoft would have even honoured the warranty I purchased (because I could find no route that seemed to invoke it).
I had already rebuilt the computer from scratch using the normal tools; but despite this I was pushed to do it again, but stay off the domain take logs and upload them. This I did. Microsoft never gave me feedback from the submitted logs.
However *good news alert* - as a virgin build the
machine did have acceptable Wi-Fi performance again!
So time to bring my machine back to useful operation. Which (as a major part of my working life) included recovering Hyper-V VM disks and rebuilding my test VM's. At which point the problem recurred.
On a whim (as pretty much nothing else had touched
networking), I deleted the VM’s and removed the Hyper-V vSwitch. It worked!!
I was able to reliable reproduce the problem by creating and deleting
the vSwitch and checking with SpeedTest.
I thought this would be good news for Microsoft Support, and
that they might be able to point me at something. However, the Microsoft Support team to who I was
talking said it wasn’t their issue anymore, and suggested I open a new ticket with
the Hyper-V team and to open a ticket with them – I don’t get how they can just
wash their hands and dump me to the back of the queue. But it’s what they did. Apparently support tickets cannot be moved
between the teams.
Disappointed I turned back to the problem. Knowing the vSwitch was implicated changed my attack and searched again. I found these two articles online
Hyper-V
Causes Extreme Degradation of Performance on WiFi Solved - Windows 10 Forums
(tenforums.com)
The latter of which lead me to
Network
Optimizations - BizTalk Server | Microsoft Learn - yes I KNOW it’s a BizTalk article – but trust
me, lateral thinking and linking can really improve your fault diagnoses and
fixes.
Which finally took me to a broken page link in this paragraph:
Hallelujah!!! Switching off Task Offloading on the network
worked. The steps to take are:
- Open
Device Manager and locate “Microsoft Network Adapter multiplexor Driver”
- Right-click,
Properties.
- Disable
LSO settings 'Large Send Offload Version 2 (IPv4)' and 'Large Send Offload
Version 2 (IPv6)', as shown in the following screenshot.
When they are disabled I got 75/18 MB out of an 80/20
internet connection. When enabled that dropped
to 1.5/0.1.
Postscript
I reported this back to Microsoft with the details thinking
they’d be pleased. They just replied
with “We have
escalated your support request to our colleagues in
Windows/ Virtualization and Hyper-V unfortunately they are unable to
assist thru our escalation.
Please,
contact them directly opening a new support request and choosing the support
path from the screenshot below. “
Pathetic.
I’d
asked Microsoft for answers to these questions – if you know the answers I’d
like to hear from you, I don’t expect Microsoft will reply.
- What is the Multiplexor
Driver (used for NIC bonding) doing in the Hyper-V setup, and how does it
fit into the overall networking picture?
- Is this an AX201
specific bug (I have the same chip in Intel NUC machines here)?
- Will this be resolved
with a windows update that removes the performance penalty for setting ToE
on, or default the ToE settings to disabled in a Hyper-V environment?