The 1903 update of Windows 10 was tested well before its release. It was a more stable version than October 2018 update. But it still had a few issues, which includes dpc latency spikes.
On my computer, the start up time was very high and takes long to become active. It is also slower while doing normal operations like opening some programs and Windows settings.
It is found that ntoskrnl.exe / dxgkrnl.sys are causing high DPC routine execution time when tested with LatencyMon. In this thread on Reddit, lot of feedback is left on Microsoft app, to make it know the issue.
Table of Contents
Latest Update on 1903 DPC Latency Problem in Windows 10
After this article was written, I upgraded my PC with a new SSD. This reduced the amount of start up time and also execution of programs was quick enough. But I wanted to check whether Windows 10 1903 DPC latency problem was resolved or not.
I was using the latest KB build which had the following version – 18362.267.
- Highest measured interrupt to process latency (micro secs) – 16376
- The Highest reported ISR routine execution time (micro secs) – 8140.378793
- Highest reported DPC routine execution time (micro secs) – 10872. 406751
As we can see the cause of the DPC latency spike problems after the 1903 update, were the following –
- DirectX Graphics Kernel (dxgkrnl.sys)
- NVIDIA Windows Kernel Mode Driver (nvlddmkm.sys)
Why does Ntoskrnl.exe take lot of CPU, Memory and Hard Disk Space
This is due to the new compressed memory feature built into Windows 10. Starting from Build 10525, Microsoft added a new feature in the Memory Manager called a compression store.
The compression store lives in the System process’s working set. Since the system process holds the store in memory, its working set grows larger exactly when memory is being made available for other processes. This is visible in Task Manager and the reason the System process appears to be consuming more memory than previous releases.
The large memory use is therefore kind of something Windows 10 has been built to do but can sometimes be mistaken as a memory leak. Windows 10, sacrifices memory in exchange for speed. Instead of writing pages into your HDD, it compresses the pages on the RAM. This makes Windows 10 faster than previous versions because reading compressed data from the computer’s RAM is faster than reading it from the HDD then loading into the RAM.
The error message would look something like this –
Your system appears to be having trouble handling real-time audio and other tasks. You are likely to experience buffer underruns appearing as drop outs, clicks or pops. One or more DPC routine that belong to a driver running in your system appear to be executing for too long. One problem may be related to power management, disable CPU throttling settings in Control Panel and BIOS setup. Check for BIOS updates.
If you are using legacy BIOS, you might try to update it, but to no avail. This error is more common using NVIDIA graphic drivers.
In this Windows report it is said that Microsoft and NVIDIA are working together to fix latency spikes in Windows 10 1903 version.
I use my desktop for general PC ops and also for my recording studio. With all versions including 1809 I haven’t had any issues with latency/clicks/dropouts in audio, etc. Resplendence Latency Mon shows no problems. However, with 1903 there is Latency problems. The “culprits” according to Latency Mon are USB bus and/or High Definition Audio (Realtek). I’ve restored my PC back to the 1809 5/22/19 disc image I did before upgrading to 1903. I’ve run Latency Mon again after restoring and still no issues (with 1809). This has also been reported on the gearslutz forum by another user.
Solutions for high DPC latency spike problem in 1903.
1. If you have updated from 1809 version, you can revert back to the last version. This solves the problem for many people. But you may not get the benefits of the new release.
2. You can change the startup type of “SysMain” service to “Disabled” in Services tool. If it does not work out, you can revert back to normal setting. This service is another name for prefetch or superfetch which existed in Windows 7. Atleast it will reduce the latency spike.
3. Upgrade to the Insider Build of 18909 and most-of the time it will be fixed. You can subscribe to it, using Update setting in Windows Settings.
4. You can use Windows System Timer Tool to reduce the timer to 0.5 secs which is generally 15 secs or more.
5. Build 18362.145 seems to solve this issue. So if you made a new KB update and been using 18362.207, you can uninstal that KB update.
6. Update your NVIDA graphic drivers to the latest version if they are available after the 1903 update. Since ntoskrnl.exe is the culprit, the incompatibility between NVIDIA and 1903 update can be reduced if updated to the latest drivers.
7. Disable MSI mode for Marvell networks cards which could stop the ntoskrnl.exe spikes.
8. Turn off CPU overclocking if you have done it before. Then you can turn it again after the DPC latency spikes are reduced. The 1903 update could be in conflict with the old overclocking strategy.
9. Turn off power throttling of your NVIDIA graphic cards. This can be done using Group Policy Editor. Open Windows Run dialog box, by pressing the Win + R keys. Then type “gpedit.msc”. Navigate to the following path.
Computer Configuration > Administrative Templates > System > Power Management> Power Throttling Settings
Double click the “Turn off Power Throttling” setting and check “Enabled“.
10. Scan your computer for virus, adware and malware. This is because the malware might be associated with NTOSKRNL.exe file and hence take lot of CPU, RAM resources. Specifically scan the scan the C:\Windows\System32 folder, where the above file resides.
11. Uninstall incompatibility programs which trigger unusual behavior. These programs might execute sub tasks which cause the processes to stuck in a loop and end up taking lot of system resources.
12. Repair repair Windows System Image and Windows Component Store in Windows 10 using the following commands.
Dism /Online /Cleanup-Image /ScanHealth
Dism /Online /Cleanup-Image /CheckHealth
Dism /Online /Cleanup-Image /RestoreHealth
13. Stop the Runtime Broker process. Open the Task Manager and see if its using more than 15% of your memory. If it is, then some app is having an issue and taking lot of memory. End the task, by right-click and the “End Task”.
14. Adjust your Windows 10 for best performance results. This can be done by disabling visual effects. Open System from Control Panel. Then click on “Advanced system settings”. On the “Advanced” tab, under “Performance” click on Settings. Check the following settings using “Custom”.
1. Show shadows under windows.
2. Show thumbnails instead of icons.
3. Smooth edges of screen fonts
4. Smooth-scroll list boxes.
5. Use drop shadows for icon lables on desktop.
These are the minimal settings for a better appearance and performance.
15. Use Windows Performance Toolkit to find the root cause. Open cmd in elevated mode (with administrator privileges) and type the following command.
xperf -on latency -stackwalk profile -buffersize 1024 -MaxFile 256 -FileMode Circular && timeout -1 && xperf -d cpuusage.etl
Wait for sometimes, till the process is complete and check the logs in the following location C:\Windows\System32 folder. Open the file cpuusage.etl and analyze it with Windows Performance Analyzer for the exact cause.
As per WindowsReport, this seems to be a bug in 1903 version related to NVIDIA graphic cards. It could be fixed in the next release or KB update.
In the latest Windows 10 update, Microsoft introduced some significant changes including those to the WDDM (Windows Display Driver Model) and kernel.
For now, there are no solutions for the issue, but there is a workaround. Users said that after reverting to Windows 10 version 1809, the problem disappeared.