*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
THREAD_STUCK_IN_DEVICE_DRIVER_M (100000ea)
The device driver is spinning in an infinite loop, most likely waiting for
hardware to become idle. This usually indicates problem with the hardware
itself or with the device driver programming the hardware incorrectly.
If the kernel debugger is connected and running when watchdog detects a
timeout condition then DbgBreakPoint() will be called instead of KeBugCheckEx()
and detailed message including bugcheck arguments will be printed to the
debugger. This way we can identify an offending thread, set breakpoints in it,
and hit go to return to the spinning code to debug it further. Because
KeBugCheckEx() is not called the .bugcheck directive will not return bugcheck
information in this case. The arguments are already printed out to the kernel
debugger. You can also retrieve them from a global variable via
"dd watchdog!g_WdBugCheckData l5" (use dq on NT64).
On MP machines it is possible to hit a timeout when the spinning thread is
interrupted by hardware interrupt and ISR or DPC routine is running at the time
of the bugcheck (this is because the timeout's work item can be delivered and
handled on the second CPU and the same time). If this is the case you will have
to look deeper at the offending thread's stack (e.g. using dds) to determine
spinning code which caused the timeout to occur.
Arguments:
Arg1: 85831c10, Pointer to a stuck thread object. Do .thread then kb on it to find
the hung location.
Arg2: 85ec0698, Pointer to a DEFERRED_WATCHDOG object.
Arg3: f7a0fcb4, Pointer to offending driver name.
Arg4: 00000001, Number of times "intercepted" bugcheck 0xEA was hit (see notes).
Debugging Details:
------------------
FAULTING_THREAD: 85831c10
DEFAULT_BUCKET_ID: GRAPHICS_DRIVER_FAULT
CUSTOMER_CRASH_COUNT: 1
BUGCHECK_STR: 0xEA
LAST_CONTROL_TRANSFER: from 804f8c7c to 8054097f
STACK_TEXT:
f2dbf2d8 804f8c7c f7a0fb40 f7a0fb70 00000000 nt!KiUnlockDispatcherDatabase+0x77
f2dbf2ec ed45ea67 f7a0fb94 00000000 00000000 nt!KeSetEvent+0x74
f2dbf5e0 804fcfbf f7a0fb40 f2dbf62c f2dbf620 watchdog!WatchdogKernelApc+0x13b
f2dbf630 806d0c35 00000000 00000000 f2dbf648 nt!KiDeliverApc+0xb3
f2dbf630 805270b6 00000000 00000000 f2dbf648 hal!HalpApcInterrupt+0xc5
f2dbf6b8 f5daad14 f4be1100 00000003 f5dc8940 nt!READ_REGISTER_ULONG+0x6
WARNING: Stack unwind information not available. Following frames may be wrong.
f2dbf6c4 f5dc8940 85f056f0 85a10008 00000100 nv4_mini+0x55d14
00000003 00000000 00000000 00000000 00000000 nv4_mini+0x73940
STACK_COMMAND: .thread ffffffff85831c10 ; kb
FOLLOWUP_IP:
nv4_mini+55d14
f5daad14 ?? ???
SYMBOL_STACK_INDEX: 6
FOLLOWUP_NAME: MachineOwner
SYMBOL_NAME: nv4_mini+55d14
MODULE_NAME: nv4_mini
IMAGE_NAME: nv4_mini.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4410cb0a
FAILURE_BUCKET_ID: 0xEA_IMAGE_nv4_mini.sys_DATE_3_10_2006
BUCKET_ID: 0xEA_IMAGE_nv4_mini.sys_DATE_3_10_2006
Followup: MachineOwner
---------