Timeout Detection and Recovery

Timeout Detection and Recovery or TDR is a feature of the Windows operating system (OS) introduced in Windows Vista. It detects response problems from a graphics card (GPU), and if a timeout occurs, the OS will attempt a card reset to recover a functional and responsive desktop environment. However, if the attempt was unsuccessful, it results in the Blue Screen of Death (BSOD). The recovery tries to mitigate the scenario where an end user superfluously reboots their device should it become unresponsive.{{Cite web|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/display/timeout-detection-and-recovery|title=Timeout detection and recovery (TDR) - Windows drivers|author=Microsoft|access-date=2022-03-23}}

Timeline

When the GPU takes more than the allotted time to process a request, the system's GPU scheduler will pick up the anomaly. It then tries to preempt the particular task, this operation has the TDR timeout which is 2 seconds by default.{{Cite web|url=https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0x116---video-tdr-failure|title=Bug Check 0x116 VIDEO_TDR_FAILURE - Windows drivers {{!}} Microsoft Learn|author=Microsoft|access-date=2022-03-23}}

Once the timeout is up and the task is not completed or preempted, the kernel determines that the GPU is frozen and proceeds to inform the respective driver about the detected timeout. It is then the driver's responsibility to properly reset and reinitialize the underlying GPU.

The OS will then do a bunch of other recovery steps needed for the system to regain responsiveness. If the entire operation was successful, the end user might see some visual artefacts and a message will be shown on the screen describing what had happened ("Display driver stopped responding and has recovered."), else a BSOD might ensue.

Possible causes

There are multiple probable causes should a recovery fail, causing an inevitable BSOD:{{Cite web|url=https://www.amd.com/en/support/kb/faq/gpu-800|title=How to Troubleshoot Timeout Detection and Recovery Errors {{!}} AMD|author=AMD|access-date=2023-03-23}}

BSOD stop codes

Possible BSOD stop codes emitted if the attempted recovery failed:

  • VIDEO_TDR_FAILURE (Bug check value: 0x116), recovery and resetting of display driver from a TDR timeout failed.{{Cite web|url=https://www.howto-connect.com/blue-screen-of-death-windows-10-error-codes-list-bsod/|title=Blue Screen of Death Windows 11 and 10 Error Codes List [BSOD]|date=11 February 2020 |access-date=2022-03-23}}

See also

References

{{reflist}}

Further reading

  • [https://docs.nvidia.com/gameworks/content/developertools/desktop/timeout_detection_recovery.htm Timeout Detection & Recovery (TDR) Nvidia]
  • [https://learn.microsoft.com/en-us/windows-hardware/drivers/display/tdr-changes-in-windows-8 TDR in Windows 8 and later - Windows drivers | Microsoft Learn]
  • [https://learn.microsoft.com/en-us/windows-hardware/drivers/display/thread-synchronization-and-tdr Thread Synchronization and TDR - Windows drivers | Microsoft Learn]

Category:Microsoft Windows

{{Microsoft-software-stub}}