Issue

Christopher
Technical Support
StableBit DrivePool
2.1.1.561
Windows 8.1 (64 bit)
Public
Alex

Here's the issue:

   0.000000  fffff88001ae3e40 0000000 RUNNING    nt!KeBugCheckEx
                                        nt! ?? ::FNODOBFM::`string'+0x142f2
                                        nt!KeUpdateRunTime+0x51
                                        hal!HalpTimerClockInterrupt+0x50
                                        nt!KiInterruptDispatchLBControl+0x1ce
                                        nt!KxWaitForSpinLockAndAcquire+0x23
                                        nt!KiAcquireSpinLockInstrumented+0x65
                                        SCSIPORT!ScsiPortTickHandler+0x30
                                        nt!IopTimerDispatch+0x190
                                        nt!KiProcessExpiredTimerList+0x22a
                                        nt!KiExpireTimerTable+0xa9
                                        nt!KiTimerExpiration+0xc8
                                        nt!KiRetireDpcList+0x1f6
                                        nt!KiIdleLoop+0x5a
                            [fffffa80096ce7c0 System]
   4.00003c  fffffa8009755740 ffef9282 RUNNING    hal!HalpTscQueryCounter+0x2
                                        hal!HalpTimerStallExecutionProcessor+0x131
                                        3wareDrv+0xe44c
                                        3wareDrv+0xcc71
                                        3wareDrv+0xcf00
                                        3wareDrv+0x4447
                                        3wareDrv+0x1dc7
                                        SCSIPORT!SpStartIoSynchronized+0x1f0
                                        nt!KeSynchronizeExecution+0x42
                                        SCSIPORT!SpReceiveScatterGather+0x76c
                                        hal!HalBuildScatterGatherListV2+0x2a8
                                        SCSIPORT!ScsiPortStartIo+0x551
                                        nt!IoStartPacket+0xab
                                        SCSIPORT!ScsiPortFdoDispatch+0x37f
                                        SCSIPORT!ScsiPortPdoScsi+0x219
                                        SCSIPORT!SpSendSrbSynchronous+0x151
                                        SCSIPORT!IssueInquiry+0x11f
                                        SCSIPORT!SpInquireLogicalUnit+0x1e8
                                        SCSIPORT!SpScanTarget+0xa2
                                        SCSIPORT!SpScanAdapter+0x44c
                                        SCSIPORT!SpEnumerationWorker+0x61
                                        nt!ExpWorkerThread+0x142
                                        nt!PspSystemThreadStartup+0x59
                                        nt!KiStartSystemThread+0x16

SCSIPORT is running in thread fffff88001ae3e40 (seen above) and is attempting to perform some internal operation, but in order to perform this operation it has to wait until there is no ongoing I/O. But thread fffffa8009755740 is attempting to start I/O (SpStartIoSynchronized) and that calls into the 3wareDrv.sys, which is taking too long to process that request.

Starting in Windows 8 / Server 2012 the kernel will crash the system if any thread waits too long without allowing multi-tasking (as thread fffff88001ae3e40 is doing). This is called a DPC watchdog violation.

So the 2 drivers that are involved are ScsiPort and 3wareDrv.

3: kd> lmvm 3wareDrv
start             end                 module name
fffff880`00e00000 fffff880`00e28000   3wareDrv   (no symbols)           
    Loaded symbol image file: 3wareDrv.sys
    Image path: \SystemRoot\system32\DRIVERS\3wareDrv.sys
    Image name: 3wareDrv.sys
    Timestamp:        Tue Feb 19 16:10:49 2013 (5123EA59)
    CheckSum:         0002ABC8
    ImageSize:        00028000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4

Based on the stack:

fffff880`03116760 fffff880`00a1e404 : fffffa80`123e91a0 fffffa80`123e9101 fffff880`00a19100 fffffa80`123e91a0 : SCSIPORT!IssueInquiry+0x11f
fffff880`03116860 fffff880`00a1d20a : ffffffff`80001eb4 fffff880`03116ac9 00000000`00000001 fffff801`584e5630 : SCSIPORT!SpInquireLogicalUnit+0x1e8
fffff880`031169a0 fffff880`00a1d0e8 : fffffa80`09bb1760 fffff880`03116a00 fffffa80`09bb1760 fffffa80`09bb1700 : SCSIPORT!SpScanTarget+0xa2
fffff880`03116a40 fffff880`00a1cb75 : 00000000`00000000 ffffffff`80001eb4 00000000`00000000 fffffa80`123e91a0 : SCSIPORT!SpScanAdapter+0x44c
fffff880`03116b30 fffff801`5851efa1 : fffffa80`09755740 fffffa80`09bb1ca8 fffff801`5870d190 fffff801`584ead00 : SCSIPORT!SpEnumerationWorker+0x61

It looks like ScsiPort is simply trying to query the adapter for information. I can dig into the actual SRB to see what it's sending, but it's pretty clear to me that the issue is that 3wareDrv is not being responsive enough when handling I/O.

Covefs.sys is idling and not doing anything of interest.

NTFS is waiting for some I/O to complete (not pool related):

\Windows\System32\winevt\Logs\Microsoft-Windows-TaskScheduler%4Operational.evtx
\Windows\System32\winevt\Logs\Application.evtx
\Windows\System32\winevt\Logs\Microsoft-Windows-GroupPolicy%4Operational.evtx

It could be a hardware issue, or the driver needs an update.

Again, this dump was taken with covefs.sys from StableBit DrivePool 2.1.1.561.