3

I have upgraded my computer from Windows 8.1 to Windows 10. The installation went well, no problem occurred.

My motherboard is a Gigabyte GA-B75M-D3H. After the install, I updated the Realtek drivers to their latest Windows 10 version.

After I started to use the new Windows 10, I experienced sudden freezes, the audio or video playback is stopped for a very short time.

I checked the driver latencies with LatencyMonitor and DPC Latency Checker.

They both showed very high values (100-200 000, even 600 0000 microseconds), and it seems that NDIS.SYS causes the problem.

As this file is network related, I tested it with another LAN card (an ASUS PCI LAN card), it has a very different driver.

Surprisingly, this LAN card also shows very high values (not as often as the Realtek).

Realtek:

Realtek latency

ASUS:

ASUS latency

What should I do now?

UPDATE

I installed Windows 10 again.

I use a torrent client (uTorrent) that is set to autostart. If I quit the client, I get normal values.

enter image description here

What parameter should I check in my torrent client to avoid the problem?

Nestor
  • 717
  • 3
  • 18
  • 38
  • update the lan drivers. if you still have DPC issues, install the WPT (part of the Win10 SDK: http://download.microsoft.com/download/9/0/B/90B9A880-C3F8-43FB-B8F9-E4D4BFB5C85F/standalonesdk/sdksetup.exe), capture a xperf trace (http://pastebin.com/pgE11HRD) and share (OneDrive) the compressed ETL file. – magicandre1981 Nov 25 '15 at 17:59
  • @magicandre1981 I have created the capture, you can check here: https://drive.google.com/file/d/0B8aAkabXOq4vcmhoUElFNUI4WFk/view?usp=sharing – Nestor Nov 25 '15 at 20:38

3 Answers3

2

I dumped a statistic about DPCs ("C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\xperf.exe" -I highCPUUsage.etl -a dpcisr > dpc.txt) and this shows 2 DPCs which are critical (over 1024µs):

Total = 19697 for module ndis.sys
Elapsed Time, >      512 usecs AND <=     1024 usecs,      1, or   0.01%
Total,                                                 19697

Total = 7174 for module tcpip.sys
Elapsed Time, >      512 usecs AND <=     1024 usecs,      1, or   0.01%

I checked the NDIS.sys call stacks and saw that 2 rd party files are involved. ipgdnd60.sys is the ASUS Gigabit network driver and vfilter.sys (VPN driver). Update both and look what happens.

Caffeinated
  • 451
  • 3
  • 6
  • 20
magicandre1981
  • 97,301
  • 30
  • 179
  • 245
  • Thanks, I'll try that. Normally I don't use the VPN connection, so `vfilter.sys` shouldn't be used (if I'm correct). I'm afraid, there are no newer driver versions, but I will look for them :( – Nestor Nov 26 '15 at 08:27
  • I checked the drivers, there is no new version available. The ShrewSoft VPN driver (vfilter.sys) is disabled, yet I still experience DPC issues. What else can I do? – Nestor Nov 26 '15 at 17:27
  • remove the VPN software completely and capture a new trace (1-2 minutes) – magicandre1981 Nov 26 '15 at 18:33
  • I removed the VPN software and created a new capture: https://drive.google.com/file/d/0B8aAkabXOq4vV3hIcnpXQ1pQNEk/view?usp=sharing – Nestor Nov 26 '15 at 19:03
  • this time the ndis.sys shows a large spike **Elapsed Time, > 8192 usecs AND <= 16384 usecs**. Here the ASUS driver and virtualbox driver is shown in the call stack – magicandre1981 Nov 26 '15 at 20:32
  • What should I do now? Should I go back to the On-board LAN? – Nestor Nov 26 '15 at 20:54
  • yes, go back to realtek and capture a new trace – magicandre1981 Nov 27 '15 at 05:24
  • I have removed the ASUS card and now I have the Realtek capture: https://drive.google.com/file/d/0B8aAkabXOq4vUzNIOWtQeVlfZk0/view?usp=sharing – Nestor Nov 27 '15 at 18:47
  • this time 3 dpcs from ndis.sys and tcpip.sys cause it. your realtek driver is a bit old. Try the new 10.006.1001.2015: http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false – magicandre1981 Nov 27 '15 at 20:09
  • Still experiencing some issues. Here is the capture after updating the driver: https://drive.google.com/file/d/0B8aAkabXOq4vX3psZm5xUXhoQlk/view?usp=sharing – Nestor Nov 27 '15 at 20:46
  • still the same (some small DPCs from ndis.sys/tcpip.sys). In the realtek driver settings (device manager) activate all offloading options. – magicandre1981 Nov 28 '15 at 15:17
  • They are all set to Enabled. Should I set them to Disabled? – Nestor Nov 28 '15 at 21:11
  • enabled is good. I currently have no real idea how to fix it. – magicandre1981 Nov 29 '15 at 09:18
  • Should I buy a new motherboard? I really find it strange that with two different LAN cards I still experience the issue. And also very strange that with Windows 8.1 (that has a very similar driver model) I did not have the issue. – Nestor Nov 29 '15 at 09:47
  • maybe Win10 is more sensitive to the DPC issues. I only sometimes use Win10 in a VM and don't use audio in the VM. – magicandre1981 Nov 29 '15 at 19:12
  • "Fortunately", Windows 10 has a feature to revert back to Windows 8.1. I did that, now I use Windows 8.1 with driver version 8.001.0510.2013, and I don't experience any DPC issues. Too bad, that they changed only 2 thing in Windows 10: the color of the taskbar and the DPC sensitivity. Thanks for your efforts, we can't fight bad programming... – Nestor Nov 29 '15 at 21:31
  • ok. If you did the free upgrade you can later still try to update to Win10 again and look if it is better. – magicandre1981 Nov 30 '15 at 05:25
1

I have identified the problem with LatencyMon software.

The NIC's RSS queue is distributed across CPU cores, but the core #0 has a lot of interrupts.

The DPC Latency spikes are gone finaly at me:

Try this PowerShell cmdlet:

PS C:\WINDOWS\system32> Get-NetAdapterRss -Name "*"

Output something like this:

Name : Ethernet
InterfaceDescription : Realtek PCIe GBE Family Controller
Enabled : True
NumberOfReceiveQueues : 4
Profile : NUMAstatic
BaseProcessor: [Group:Number] : 0:0
MaxProcessor: [Group:Number] : 0:6
MaxProcessors : 4
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0 0:2/0 0:4/0 0:6/0
IndirectionTable: [Group:Number]

Then set the NIC's profile to "Closest":
PS C:\WINDOWS\system32> Set-NetAdapterRss -Name "Ethernet" -Profile Closest

List again:
PS C:\WINDOWS\system32> Get-NetAdapterRss -Name "*"

Name : Ethernet
InterfaceDescription : Realtek PCIe GBE Family Controller
Enabled : True
NumberOfReceiveQueues : 4
Profile : Closest
BaseProcessor: [Group:Number] : 0:0
MaxProcessor: [Group:Number] : 0:6
MaxProcessors : 4
RssProcessorArray: [Group:Number/NUMA Distance] : 0:0/0 0:2/0 0:4/0 0:6/0
IndirectionTable: [Group:Number]

Some resource for this topic:

https://docs.microsoft.com/en-us/powershell/module/netadapter/get-netadapterrss?view=windowsserver2022-ps

https://docs.microsoft.com/en-us/powershell/module/netadapter/set-netadapterrss?view=windowsserver2022-ps

Maybe worth trying to assign each RSS queue to other cores than 0 with NUMAstatic but I did not try it because my problem is resolved.

  • 1
    As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Jan 12 '22 at 22:30
  • This tweak helped a bunch on an Intel system; it doesn't seem to do anything on an AMD PC. Thank you. – Zdenek Jul 09 '22 at 19:02
0

I also had some issues with the ndis.sys. I've tried a lot of solutions and so far none of then really helped me, but recently i managed to fix the problem with the following configurations: