在驱动程序开发期间测试和调试 TDR
本文为显示驱动程序开发人员提供 TDR (超时检测和恢复) 测试和调试策略。
WHLK 中的 TDR 测试
Windows 硬件实验室工具包 (WHLK) 包含特定于 TDR 的测试,驱动程序开发人员可以使用这些测试进行测试和调试。 例如,开发人员可以使用 SimulatePreemption TDR 手动触发 GPU TDR。 有关各种 TDR 相关测试的详细信息,请参阅 Device.Graphics 。
用于测试和调试的 TDR 注册表项
开发人员 只能在驱动程序开发过程中使用以下 TDR 相关的注册表项进行测试或调试。
重要
在驱动程序开发过程中,最终用户或目标测试或调试之外的应用程序不应操作这些注册表项。
TdrLevel
指定恢复的初始级别。
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrLevel
ValueType : REG_DWORD
ValueData : TdrLevelXxx (see the following table)
其中,TdrLevelXxx 可以是以下值之一:
值 | 含义 |
---|---|
TdrLevelOff (0) | 检测已禁用 |
TdrLevelBugcheck (1) | 检测到的超时时检查 Bug;例如,无恢复。 |
TdrLevelRecoverVGA (2) | 恢复到 VGA (未实现) 。 |
TdrLevelRecover (3) | 在超时时恢复 (默认值) 。 |
TdrDelay
指定 GPU 可以延迟 GPU 计划程序提供的抢占请求的秒数。 TdrDelay 实际上是超时阈值。
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrDelay
ValueType : REG_DWORD
ValueData : Number of seconds to delay. The default value is 2 seconds.
TdrDdiDelay
指定 OS 允许线程离开驱动程序的秒数。 在指定时间后,OS 会使用代码VIDEO_TDR_FAILURE (0x116) 对计算机进行 bug 检查。
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrDdiDelay
ValueType : REG_DWORD
ValueData : Number of seconds to leave the driver. The default value is 5 seconds.
TdrDebugMode
指定 TDR 进程的调试相关行为。 默认值为 TDR_DEBUG_MODE_RECOVER_NO_PROMPT,表示不闯入调试器。
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrDebugMode
ValueType : REG_DWORD
ValueData : TDR_DEBUG_MODE_XXX (see the following table)
值 | 含义 |
---|---|
TDR_DEBUG_MODE_OFF (0) | 在恢复之前中断到内核调试器,以允许调查超时。 |
TDR_DEBUG_MODE_IGNORE_TIMEOUT (1) | 忽略任何超时。 |
TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2) | 在不中断调试器 (默认值) 进行恢复。 |
TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3) | 即使某些恢复条件不符合 (恢复,也可以恢复,例如,在连续超时) 恢复。 |
TdrLimitTime
指定允许由 TdrLimitCount 密钥) 指定的特定数量的 TDR (而不会使计算机崩溃的默认时间。
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrLimitTime
ValueType : REG_DWORD
ValueData : Number of seconds before crashing. The default value is 60 seconds.
TdrLimitCount
指定 TdrLimitTime 密钥指定的时间内允许的默认 TDR (0x117) 数目,而不会使计算机崩溃。
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrLimitCount
ValueType : REG_DWORD
ValueData : Number of TDRs before crashing. The default value is 5.
TdrTestMode
保留。 请不要使用。
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrTestMode
ValueType : REG_DWORD
ValueData : Do not use.
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈