Okay, well, the bad news is regardless of passing diagnostics I am almost certain this is a hardware issue. I've tried to investigate every which way I personally can to see if this is a driver problem, but I don't see it.
Code:
0: kd> .bugcheck
Bugcheck code 0000000A
Arguments 00000000`48f61bff 00000000`00000002 00000000`00000000 fffff800`02fc0775
So we tried to access pageable memory at an IRQL that was too high, and the memory could have also been bad.
Code:
0: kd> kv
Child-SP RetAddr : Args to Child : Call Site
fffff800`00b99ff8 fffff800`02ec9e69 : 00000000`0000000a 00000000`48f61bff 00000000`00000002 00000000`00000000 : nt!KeBugCheckEx
fffff800`00b9a000 fffff800`02ec8ae0 : fffffa80`10adc9f0 00000001`00000000 00000000`00000000 fffff800`03049e80 : nt!KiBugCheckDispatch+0x69
fffff800`00b9a140 fffff800`02fc0775 : fffff800`03049e80 fffffa80`10969520 fffffa80`109695d8 fffffa80`109695d8 : nt!KiPageFault+0x260 (TrapFrame @ fffff800`00b9a140) // Trapframe for exception
fffff800`00b9a2d0 fffff800`02fc09ab : 00000000`0000006c 00000000`00000000 00000027`5b54800e 00000016`8b005fa6 : nt!PpmPerfRecordUtility+0x1f5
fffff800`00b9a340 fffff800`02f848bc : 00000000`00000000 00000000`00100100 fffff800`03049e80 fffff800`00b9a4c0 : nt!PpmCheckRecordAllUtility+0xfb
fffff800`00b9a3d0 fffff800`02fc1400 : 00000000`0034278e fffff800`00b9a4c0 00000000`00000001 fffff800`02ed364a : nt!PpmCheckRun+0x8c
fffff800`00b9a400 fffff800`02ed672c : fffffa80`11b6a410 00000000`00000000 fffffa80`40640a88 00000000`00000000 : nt!PpmCheckStart+0x40
fffff800`00b9a430 fffff800`02ed65c6 : fffff800`03070f70 00000000`00305f63 00000000`00000000 00000000`00000000 : nt!KiProcessTimerDpcTable+0x6c
fffff800`00b9a4a0 fffff800`02ed64ae : 00000073`2540ec91 fffff800`00b9ab18 00000000`00305f63 fffff800`0304cee8 : nt!KiProcessExpiredTimerList+0xc6
fffff800`00b9aaf0 fffff800`02ed6297 : 00000027`5b5472c1 00000027`00305f63 00000027`5b5472aa 00000000`00000063 : nt!KiTimerExpiration+0x1be
fffff800`00b9ab90 fffff800`02ec25ca : fffff800`03049e80 fffff800`03057cc0 00000000`00000001 fffff880`00000000 : nt!KiRetireDpcList+0x277
fffff800`00b9ac40 00000000`00000000 : fffff800`00b9b000 fffff800`00b95000 fffff800`00b9ac00 00000000`00000000 : nt!KiIdleLoop+0x5a
Code:
0: kd> .trap fffff800`00b9a140
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=0000000000002a30 rbx=0000000000000000 rcx=00000000000000e8
rdx=0000000000000000 rsi=0000000000000000 rdi=0000000000000000
rip=fffff80002fc0775 rsp=fffff80000b9a2d0 rbp=fffffa8010969520
r8=00000000000024b6 r9=000000000000006c r10=0000000000000000
r11=00000000000000e8 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0 nv up ei pl nz na po nc
nt!PpmPerfRecordUtility+0x1f5:
fffff800`02fc0775 490fafc0 imul rax,r8
Integer multiplication instruction, specifically multiplying both registers and storing the result in the first operand.
Code:
rax * r8 = value in (rax).
Small dump so we can't check the contents of either registers, but just looking at them, they both look really invalid to say the least.
Code:
0: kd> !irql
Debugger saved IRQL for processor 0x0 -- 2 (DISPATCH_LEVEL)
We were also at DISPATCH_LEVEL IRQL (2), so that's another problem. Bad memory + IRQL too high = 0xA bug check.
So what caused the bad contents + improper IRQL? Well, since it's a small dump, not much we can really do other than same guesswork based on the stack we can see.
Code:
0: kd> knL
*** Stack trace for last set context - .thread/.cxr resets it
# Child-SP RetAddr Call Site
00 fffff800`00b9a2d0 fffff800`02fc09ab nt!PpmPerfRecordUtility+0x1f5
01 fffff800`00b9a340 fffff800`02f848bc nt!PpmCheckRecordAllUtility+0xfb
02 fffff800`00b9a3d0 fffff800`02fc1400 nt!PpmCheckRun+0x8c
03 fffff800`00b9a400 fffff800`02ed672c nt!PpmCheckStart+0x40
04 fffff800`00b9a430 fffff800`02ed65c6 nt!KiProcessTimerDpcTable+0x6c
05 fffff800`00b9a4a0 fffff800`02ed64ae nt!KiProcessExpiredTimerList+0xc6
06 fffff800`00b9aaf0 fffff800`02ed6297 nt!KiTimerExpiration+0x1be
07 fffff800`00b9ab90 fffff800`02ec25ca nt!KiRetireDpcList+0x277
08 fffff800`00b9ac40 00000000`00000000 nt!KiIdleLoop+0x5a
The processor comes out of idle and straight away retires a DPC list, likely a response to another processor's IPI (inter-processor interrupt). From here we'd usually run a handy command called
!timer, but since it's a small dump...
Code:
0: kd> !timer
fffff78000000000: Unable to get shared data
Not too helpful, really.
Anyway, all of this timer stuff like (PpmCheckStart - executes algorithm that powers the PPM) is in direct relation to the performance check of your processor. Given we're pagefaulting during such activites is a really really big hint of a CPU problem, or motherboard. It's hardware is what I'm trying to unfortunately get at here.