Event ID 4101 - Display driver nvlddmkm stopped responding and was recovered

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

Copy the value on the right. Yours will most likely start with 'PCI'

  • 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.