Event ID 4101 - Display driver nvlddmkm stopped responding and was recovered
September 23rd 2021
Read this first
Some people suggest updating/reinstalling nvidia drivers, changing the PCIe version to 2.0 or even reinstalling the whole OS and some other weird "solutions". While some of them are worth trying out not a single one of those did help me getting closer to a stable display driver.
Of course this can be caused by a hardware failure as well but since the GPU was working fine before I didn't believe that. So I made my way deep into the rabbit hole of Error 4101.
btw: I found this problem while passing through an NVIDIA GPU to a KVM Windows Guest but this can also occur on a normal Windows PC.
Things to check beforehand
- Make sure you have the right driver installed for your GPU
- Run a RAM-Test to make sure your RAM is not the problem's source
- If overclocked set the memory and core frequence of your GPU to default
- Benchmarks like Furmark did not cause any crashes in my case but most 3D games did. Especially Titanfall 2 and Battlefield V caused the driver to crash pretty much instantly. Minecraft also didn't run for more than 5 minutes.
The problem
NVIDIA driver crashing after a couple minutes when playing a game or utilizing the card a little bit.
- Suddenly a black screen.
- After a few seconds you can see your Windows wallpaper because your game crashed hand in hand with the display driver.
- You can find the Event 4101 in the event viewer saying "Display driver nvlddmkm stopped responding and was recovered"
The cause
Windows seems to be using so called Line-Based Interrupts instead of Message-signaled Based Interrupts by default.
More information about interrupts can be found here: forums.guru3d.com
The solution
Tell windows to use Message-Signaled Based Interrupts for your GPU. However it's a little bit tricky to do that:
Find the GPU in device manager
- Open up Device Manager
- View -> Resources by type
- Expand Interrupt request (IRQ)
- Scroll down to device nodes starting with (PCI) 0x... (number) device name
- Now you need to find your GPU by the device name (Probably something with NVIDIA in it's name).
- Right click on the device -> Properties.
- Go to the Details-Tab
- Select Device Instance Path in the Dropdown list
- Write down the Value
- Devices with a positive number are line-based
- Devices with a negative number are message signaled-based
Switch to message signaled-based interrupts
- Open up regedit and Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\VALUE-HERE\Device Parameters\Interrupt Management
- Replace VALUE-HERE with the value copied from the device manager.
- Create a subkey named MessageSignaledInterruptProperties
- In this subkey create a DWORD value (32-bit) named MSISupported and set the value to 1.
- Then reboot and check the device manager if the the number changed to a negative number.
- You can also disable Message-Signaled Bases Interrupts again by simply setting MSISupported to 0
I'm not responsible for any possible damage on your computer and/or Operating System.