BSOD DPC Watchdog - Windows 8.1 x64

tigger2014

Member
Joined
Jan 24, 2015
Posts
10
Hi there, ive recently fitted an SSD to my laptop as my previous hard drive failed. I think the ssd has been in around 3 weeks and i dont recal any BSOD's occurring in the first week and a half. however im now getting them seemingly randomly.

· OS - Windows 8.1, 8, 7, Vista ? 8.1
· x86 (32-bit) or x64 ? x64
· What was original installed OS on system? windows 7
· Is the OS an OEM version (came pre-installed on system) or full retail version (YOU purchased it from retailer)? No i purchased it.
· Age of system (hardware) 4-5 yeats
· Age of OS installation - fresh install from 2 days ago.


· CPU
· Video Card: Intel mobile HD 4 first gen


· Acer
· Aspire 5732z


· Laptop


hope ive answered all the questions and thanks to anyone who can have a look into this.

i ran memtest and it faced no issues either.

Thanks


View attachment SysnativeFileCollectionApp.zip View attachment perfmon.zip
 
It looks like it didnt upload the memory dump, however its 340MB so i presume its a full memory dump. I have change it to make kernel memory dumps instead now. I hope thats correct and ill re run the tool when i have another BSOD.
 
It looks like it didnt upload the memory dump, however its 340MB so i presume its a full memory dump.

Could you actually please upload this to OneDrive or something similar and paste the link here?
 
A small update, the same BSOD occured today and the memory dump is another 300MB, shall i upload it as well?

Not at this time, no.

DPC_WATCHDOG_VIOLATION (133)

This bug check indicates that the DPC watchdog executed, either because it detected a single long-running deferred procedure call (DPC), or because the system spent a prolonged time at an interrupt request level (IRQL) of DISPATCH_LEVEL or above.

Code:
1: kd> .bugcheck
Bugcheck code 00000133
Arguments 00000000`00000001 00000000`00001e00 00000000`00000000 00000000`00000000

Bad news is 0x1 first argument, which implies that this is a matter of DPCs from various drivers and not just one culprit driver. Therefore this is going to be relatively difficult to debug off of call stack alone.

Code:
1: kd> k
Child-SP          RetAddr           Call Site
ffffd001`1074cc88 fffff802`e87ab41e nt!KeBugCheckEx
ffffd001`1074cc90 fffff802`e86bb2a1 nt! ?? ::FNODOBFM::`string'+0x2c46e
ffffd001`1074cd20 fffff802`e8dba7b5 nt!KeClockInterruptNotify+0x91
ffffd001`1074cf40 fffff802`e86ff4b3 hal!HalpTimerClockIpiRoutine+0x15
ffffd001`1074cf70 fffff802`e876ff2a nt!KiCallInterruptServiceRoutine+0xa3
ffffd001`1074cfb0 fffff802`e877089b nt!KiInterruptSubDispatchNoLockNoEtw+0xea
ffffd001`0e23b960 fffff802`e8658056 nt!KiInterruptDispatchNoLockNoEtw+0xfb
ffffd001`0e23baf0 fffff802`e86561ea nt!KiDeferredReadyThread+0x11f6
ffffd001`0e23bc40 fffff802`e86dff57 nt!KeSetEvent+0x2aa
ffffd001`0e23bd00 fffff802`e86dfe9b nt!ExpWakePushLock+0xb7
ffffd001`0e23bd30 fffff802`e86775aa nt!ExfTryToWakePushLock+0x23
ffffd001`0e23bd60 fffff800`026d206b nt!ExReleasePushLockExclusiveEx+0x4a
ffffd001`0e23bda0 fffff800`026cac35 dxgkrnl!DXGCONTEXT::Render+0x24b
ffffd001`0e23c8f0 fffff802`e877a2b3 dxgkrnl!DxgkRender+0x325
ffffd001`0e23cc00 00007ffa`fda017fa nt!KiSystemServiceCopyEnd+0x13

Regardless, our driver for the moment within the stack is the Direct X kernel.

Code:
1: kd> ub fffff800`026d206b
dxgkrnl!DXGCONTEXT::Render+0x22d:
fffff800`026d204d 4533e4          xor     r12d,r12d
fffff800`026d2050 4c63f0          movsxd  r14,eax
fffff800`026d2053 4885c9          test    rcx,rcx
fffff800`026d2056 7419            je      dxgkrnl!DXGCONTEXT::Render+0x251 (fffff800`026d2071)
fffff800`026d2058 4883c168        add     rcx,68h
fffff800`026d205c 418d542401      lea     edx,[r12+1]
fffff800`026d2061 4c896108        mov     qword ptr [rcx+8],r12
fffff800`026d2065 ff1525f0fbff    call    qword ptr [dxgkrnl!_imp_ExReleasePushLockExclusiveEx (fffff800`02691090)]

It's calling ExReleasePushLockExclusiveEx.

Given we're dealing with Direct X, the actual offending driver is likely video related. Nothing on this stack worth talkin about really, so we can dump the raw stack to see what kind of stuff we can dig up from the bottom of the barrel.

Code:
1: kd> !thread
THREAD ffffe0005ace9080  Cid 0e9c.0ac4  Teb: 00007ff7dfe6e000 Win32Thread: fffff901407ba920 RUNNING on processor 1
Not impersonating
DeviceMap                 ffffc00098145b80
Owning Process            ffffe0005ac6d340       Image:         chrome.exe
Attached Process          N/A            Image:         N/A
Wait Start TickCount      194258         Ticks: 7520 (0:00:01:57.500)
Context Switch Count      521018         IdealProcessor: 1             
UserTime                  00:00:57.500
KernelTime                00:02:33.687
Win32 Start Address 0x00007ff7e00c8d44
Stack Init ffffd0010e23cd90 Current ffffd0010e23ca80
Base ffffd0010e23d000 Limit ffffd0010e237000 Call 0

Code:
1: kd> dps ffffd0010e237000 ffffd0010e23d000

...trimmed...

ffffd001`0e239928  fffff802`e8773afa nt!KiDpcInterrupt+0xca
ffffd001`0e239930  ffffe000`5802b010
ffffd001`0e239938  ffffe000`5ac6d340
ffffd001`0e239940  ffffc000`99a13820
ffffd001`0e239948  fffff802`e8773afa nt!KiDpcInterrupt+0xca
ffffd001`0e239950  00000000`00000000
ffffd001`0e239958  00001f80`002300e8
ffffd001`0e239960  00000000`00000006
ffffd001`0e239968  fffff800`032337e8*** ERROR: Symbol file could not be found.  Defaulted to export symbols for igdkmd64.sys - 
 igdkmd64!hybDriverEntry+0xa006d8

Two Intel x64 Graphics driver calls and then two DPC interrupts. DPC bug check, Intel Graphics driver before they fire.... coincidence?

It's a dual core processor, so we can also check the non-offending processor at the time of the crash.

Code:
1: kd> ~0
0: kd> k
Child-SP          RetAddr           Call Site
fffff802`ea07b9c0 fffff802`e8658e9e nt!KiDeferredReadyThread+0x11f6
fffff802`ea07bb10 fffff800`03908a37 nt!IopfCompleteRequest+0xb8e
fffff802`ea07bc50 fffff800`038d519f mouclass!MouseClassServiceCallback+0x3d3
fffff802`ea07bcf0 fffff800`038d369c Apfiltr+0x4319f
fffff802`ea07bd70 fffff800`038d26f4 Apfiltr+0x4169c
fffff802`ea07bda0 fffff800`038c3311 Apfiltr+0x406f4
fffff802`ea07be10 fffff800`038684dd Apfiltr+0x31311
fffff802`ea07bee0 fffff802`e86ff4b3 i8042prt!I8042MouseInterruptService+0x57ad
fffff802`ea07bf70 fffff802`e876fce8 nt!KiCallInterruptServiceRoutine+0xa3
fffff802`ea07bfb0 fffff802`e877003b nt!KiInterruptSubDispatch+0x108
ffffd001`100e6960 fffff802`e8652232 nt!KiInterruptDispatch+0xfb
ffffd001`100e6af0 fffff802`e8651712 nt!KiSearchForNewThread+0x5f2
ffffd001`100e6b80 fffff802`e8651209 nt!KiSwapThread+0xd2
ffffd001`100e6c20 fffff802`e869c570 nt!KiCommitThreadWait+0x129
ffffd001`100e6ca0 fffff802`e86c93ee nt!ExfAcquirePushLockExclusiveEx+0x2e0
ffffd001`100e6d60 fffff800`027300aa nt!ExAcquirePushLockExclusiveEx+0x12e
ffffd001`100e6da0 fffff800`026cac35 dxgkrnl!DXGCONTEXT::Render+0x5e28a
ffffd001`100e78f0 fffff802`e877a2b3 dxgkrnl!DxgkRender+0x325
ffffd001`100e7c00 00007ffa`fda017fa nt!KiSystemServiceCopyEnd+0x13
0000003e`433ce238 00000000`00000000 0x00007ffa`fda017fa

We can see some ISR stuff regarding the i8042 port, specifically what turns out to be your Alps pointing device.



Few possibilites here:

1. You need to update your Intel grapics drivers as they're pretty old:

Code:
0: kd> lmvm igdkmd64
start             end                 module name
fffff800`02832000 fffff800`03255120   igdkmd64   (export symbols)       igdkmd64.sys
    Loaded symbol image file: igdkmd64.sys
    Image path: \SystemRoot\system32\DRIVERS\igdkmd64.sys
    Image name: igdkmd64.sys
    Timestamp:        Thu Oct 04 17:30:00 2012

Acer | Explore Beyond Limits

2. You need to update the drivers for your Alps device if available as they're pretty old too:

Code:
0: kd> lmvm Apfiltr
start             end                 module name
fffff800`03892000 fffff800`03905000   Apfiltr    (no symbols)           
    Loaded symbol image file: Apfiltr.sys
    Image path: \SystemRoot\system32\DRIVERS\Apfiltr.sys
    Image name: Apfiltr.sys
    Timestamp:        Tue Nov 13 05:24:50 2012
 
Thanks for the update patrick, the intel drivers i can deal with right away as windows update can grab them.

the Alps touch pad driver could actually be the offending thing here as i dont recall it happening before i installed it. Ill remove the Alps driver and update the Intel ones right away. Hopefully it solves my issue.

Thanks for taking the time to look into it for me. If all goes well ill be marking this as solved in a few days.

Tigger2014
 
Two days and its still been fine not a single BSOD and i was getting them at least twice a day so hopefully this is the end of it all.

Thanks for your help Patrick
 
PAGE_FAULT_IN_NONPAGED_AREA (50)

This indicates that invalid system memory has been referenced.

Code:
1: kd> .bugcheck
Bugcheck code 00000050
Arguments fffff800`ca8fc7d4 00000000`00000000 ffffe001`11429aa5 00000000`00000002

Code:
1: kd> r cr2
cr2=fffff800ca8fc7d4

Code:
1: kd> !pte fffff800ca8fc7d4
                                           VA fffff800ca8fc7d4
PXE at FFFFF6FB7DBEDF80    PPE at FFFFF6FB7DBF0018    PDE at FFFFF6FB7E0032A0    PTE at FFFFF6FC006547E0
contains 0000000000A04063  contains 0000000000A05063  contains 0000000000000000
pfn a04       ---DA--KWEV  pfn a05       ---DA--KWEV  not valid // Invalid

So why did ffffe001`11429aa5 attempt to write to fffff800`ca8fc7d4?

Code:
1: kd> kv
Child-SP          RetAddr           : Args to Child                                                           : Call Site
ffffd000`f6bbd968 fffff800`cadfd675 : 00000000`00000050 fffff800`ca8fc7d4 00000000`00000000 ffffd000`f6bbdbd0 : nt!KeBugCheckEx
ffffd000`f6bbd970 fffff800`cacd64a9 : 00000000`00000000 ffffe001`0ee25900 ffffd000`f6bbdbd0 ffffe001`00000005 : nt! ?? ::FNODOBFM::`string'+0x1e6c5
ffffd000`f6bbda10 fffff800`cadd8d2f : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!MmAccessFault+0x769
ffffd000`f6bbdbd0 ffffe001`11429aa5 : ffffe001`114308fe ffffe001`0ee6a740 00000000`00000000 ffffe001`0ee6a7b8 : nt!KiPageFault+0x12f (TrapFrame @ ffffd000`f6bbdbd0) // Here
ffffd000`f6bbdd68 ffffe001`114308fe : ffffe001`0ee6a740 00000000`00000000 ffffe001`0ee6a7b8 ffffe001`0ee6a6a0 : 0xffffe001`11429aa5
ffffd000`f6bbdd70 ffffe001`0ee6a740 : 00000000`00000000 ffffe001`0ee6a7b8 ffffe001`0ee6a6a0 00000000`00000012 : 0xffffe001`114308fe
ffffd000`f6bbdd78 00000000`00000000 : ffffe001`0ee6a7b8 ffffe001`0ee6a6a0 00000000`00000012 ffffe001`0ee6a7b8 : 0xffffe001`0ee6a740

Code:
1: kd> .trap ffffd000`f6bbdbd0
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=0000000000000000 rbx=0000000000000000 rcx=ffffe0010ee6a7b8
rdx=fffff800ca8fc7d4 rsi=0000000000000000 rdi=0000000000000000
rip=ffffe00111429aa5 rsp=ffffd000f6bbdd68 rbp=00000000fffffc60
 r8=0000000000001000  r9=0000000000000000 r10=0000000000001000
r11=0000000000001000 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei pl nz na po nc
ffffe001`11429aa5 450fb61411      movzx   r10d,byte ptr [r9+rdx] ds:fffff800`ca8fc7d4=??

The failing instruction that was the reason for the bug check (address ffffe001`11429aa5), the r9 register + the rdx register was dereferenced. rdx = fffff800ca8fc7d4 (our 1st argument). This all results in a write to fffff800`ca8fc7d4. So we're dereferencing rdx and then ultimately writing to it at the same time. r9 is null as it's volatile, therefore it's trashed across calls (normal behavior). We can't check its contents. Overall, the instruction itself was to copy the contents of the r9 register + rdx and then zero extend it to the r10d register.

Can you run 8 passes of Memtest, please?

Memtest86+:

Download Memtest86+ here:

Memtest86+ - Advanced Memory Diagnostic Tool

Which should I download?

You can either download the pre-compiled .ISO that you would burn to a CD and then boot from the CD, or you can download the auto-installer for the USB key. What this will do is format your USB drive, make it a bootable device, and then install the necessary files. Both do the same job, it's just up to you which you choose, or which you have available (whether it's CD or USB).

Do note that some older generation motherboards do not support USB-based booting, therefore your only option is CD (or Floppy if you really wanted to).

How Memtest works (you don't need to read, it's only for those interested in the specifics):

Memtest uses algorithms (specifically two), namely moving inversion & what is deemed Modulo-X. Essentially, the first algorithm fills the memory with a pattern. Starting at the low address, it checks to see if the pattern was changed (it should not have been), writes the patterns complement, increments the address, and repeats. Starting at the highest address (as opposed to the lowest), it follows the same checklist.

The reason for the second algorithm is due to a few limitations, with the first being that not all adjacent cells are being tested for interaction due to modern chips being 4 to 16 bits wide regarding data storage. With that said, patterns are used to go ahead and ensure that all adjacent cells have at least been written with all possible one and zero combinations.

The second is that caching, buffering and out of order execution will interfere with the moving inversions algorithm. However, the second algorithm used is not affected by this. For starting offsets of 0-20, the algorithm will write every 20th location with a pattern, write all other locations with the patterns complement, repeat the previous one (or more) times, and then check every 20th location for the previously mentioned pattern.

Now that you know how Memtest actually works, it's important to know that the tests it goes through all mean something different. It goes from Test 0 through Test 12, many of which use either one or the other algorithm discussed above, among many other things.

Any other questions, they can most likely be answered by reading this great guide here:

FAQ : please read before posting
 
Thanks for that, ill run memtest over the weekend however im 90% sure its graphics related but its just been a pain to work out why. Ill let you know how it goes
 

Has Sysnative Forums helped you? Please consider donating to help us support the site!

Back
Top