BSOD HElp with NV4_DISP
-
BSOD Help with NV4_DISP
Hi, I have been getting the dreaded BSOD for some time now either showing and error with NV4_DISP or the IRQ greater than or less than error.
I mainly get the IRQ error when defragging and after deleting the relevant file that is crashing the defrag the problem goes away but the NV4_DISP error persists whenever I do intensive CPU / GPU activities like stress testing or gaming.
I have looked at this error and done hours of searching and investigating carrying out numerous "fixes" but the problem persists.
I am using an NVIDIA GEFORCE 6800 GPU with the latest NVIDIA drivers.
My system is
XP Pro SP2
AMD X2 (cool and quiet is off and the MS and AMD patches are in place)
MB is Asus A8N-SLI Premium (latest BIOS)
500w PSU
2 * 250 gig HDD
I am getting a new GPU (it will arrive in the next few days) but I am worried that this isn't the problem and it is related to some sort of conflict and that after replacing the card I will still have problems and have to carry on with my weeks of diagnostics...
Anyway, I have extracted the minidump and attach part of it here. I am no expert but would like to improve my "diagnostic" skills so if you can help me investigate further that would be great. What I would like to be able to do is follow the recommendations in the stack trace below to diagnose further and hopefully identify
The "offending thread"
"Do .thread then kb on it to find the offending thread"
-----------------------------------------------------------
Use !analyze -v to get detailed debugging information.
BugCheck 100000EA, {889c0bc0, 88a29370, f78c2cbc, 1}
*** ERROR: Symbol file could not be found. Defaulted to export symbols for nv4_disp.dll -
Probably caused by : nv4_disp.dll ( nv4_disp+48c93 )
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: 889c0bc0, Pointer to a stuck thread object. Do .thread then kb on it to find
the hung location.
Arg2: 88a29370, Pointer to a DEFERRED_WATCHDOG object.
Arg3: f78c2cbc, Pointer to offending driver name.
Arg4: 00000001, Number of times "intercepted" bugcheck 0xEA was hit (see notes).
Also from event viewer
Category 102
Even ID 1003
Error code 100000ea, parameter1 889c0bc0, parameter2 88a29370, parameter3 f78c2cbc, parameter4 00000001.
Though MS can offer no advice that seems to meet my circumstances for this issue.
Any help greatly appreciated.
Last edited by REP013; 01-06-2007 at 04:57 AM.
Reason: Add details from event viewer.
-
If you have not already please download the DebugWiz tool or also read this link:
http://www.d-a-l.com/help/showthread.php?t=50190
Then please post the full dump and or dumps as the more the better to diagnose.